
حزمة Zeek لكشف CVE-2020-0601
يمكن لهذا السكربت اكتشاف محاولات استغلال الثغرة CVE-2020-0601. يقوم بإجراء فحص بسيط لمعرفة ما إذا كان منحنى معروف مستخدمًا في شهادة - إذا لم يكن الأمر كذلك يتم رفع إشعار.
مثال على إشعار في notice.log:
1579043477.791522 CHhAvVGS1DHFjwGM9 192.241.209.49 46110 192.241.202.21 4433 F37z6n1B8zn1fZjpj application/x-x509-user-cert 192.241.202.21:4433/tcp tcp CVE_2020_0601::Unknown_X509_Curve ECC certificate with unknown curve; potential CVE-2020-0601 exploit attempt - 192.241.209.49 192.241.202.21 4433 - - Notice::ACTION_LOG 3600.000000 - - - - -
لتسجيل الشهادات المشبوهة، يرجى استخدام
redef CVE_2020_0601::log_certs = T;
في ملف local.zeek الخاص بك لتفعيل الاستخراج. بمجرد تفعيل هذا، سيتم تسجيل الشهادات المشبوهة في ملف جديد باسم cve-2020-0601-certs.log.
يتطلب هذا السكربت تثبيت OpenSSL الذي يحول تلقائيًا المنحنيات الصريحة إلى أسماء أثناء تحليل الشهادة. العديد من إصدارات OpenSSL التي توفرها توزيعات Linux المختلفة لا تفعل ذلك على ما يبدو؛ أنا حاليًا غير متأكد قليلاً من سبب ذلك.
استخدام إصدارات OpenSSL ذات سلوك مختلف سيؤدي إلى عدد أكبر من الإيجابيات الكاذبة. ستتحقق اختبارات هذه الحزمة من سلوك OpenSSL أثناء التثبيت؛ إذا فشل اختبار "explicit.zeek" فإن إصدار OpenSSL الخاص بك لا يعمل كما هو مطلوب.
في هذه الحالة، سيقوم السكربت بالتنبيه على جميع الشهادات التي تحتوي على تعريفات منحنيات صريحة أيضًا؛ يجب أن تكون هذه نادرة جدًا جدًا، ولكنها ليست مشكلة في حد ذاتها.
توجد نسخة ثانية من هذه الإضافة متاحة على https://github.com/0xxon/cve-2020-0601-plugin. تستخدم النسخة الثانية أدوات OpenSSL للتحقق مباشرة من منحنى الشهادة. ومع ذلك، تتطلب نسخة الإضافة OpenSSL 1.1.x - وتتطلب بناء كود C++ وتحميله في تثبيت Zeek الخاص بك.
مزايا نسخة الإضافة على https://github.com/0xxon/cve-2020-0601-plugin هي دقة أعلى - مع إشعارات أكثر تحديدًا تعطي معلومات أكثر عن محاولة استغلال تم العثور عليها. العيوب معظمها هي صعوبة أكبر في التثبيت.
على الرغم من أن هذه الإضافة تكتشف بنجاح كود POC المعروف، فمن الممكن (ولكن غير محتمل) أن لا يتم اكتشاف متغير آخر من الهجوم.