
Zeek Plugin الذي يكتشف محاولات CallStranger (CVE-2020-12695) (http://callstranger.com/)
تحاول هذه الحزمة اكتشاف محاولات استغلال CallStranger (CVE-2020-12695) وتسريب البيانات. تقوم بذلك من خلال البحث عن ثلاثة أشياء رئيسية:
SUBSCRIBE UPnP مع عنوان URL للإشعار يحتوي على عنوان IP ليس عنوان RFC1918 أو local_nets. قد يكون هذا مقدمة لتضخيم DDoS أو تسريب البياناتNOTIFY UPnP موجهة إلى عنوان غير RFC1918 أو local_nets. قد يشير هذا إلى تضخيم DDoS نشط أو تسريب البياناتSUBSCRIBE UPnP مع عنوان URL للإشعار أطول من CallStrangerDetector::exfiltration_threshold بايت. قد يشير هذا إلى تسريب البيانات عبر UPnPيفترض الوحدة أن موقعك لا يحتوي عادةً على أوامر SUBSCRIBE أو NOTIFY UPnP موجهة إلى الإنترنت وأنه ليس لديك أجهزة UPnP مكشوفة على الإنترنت. إذا كان أي من هذه الأمور صحيحًا، فسوف ترى نتائج إيجابية خاطئة. يمكنك إضافة عناوين IP محددة تسبب نتائج إيجابية خاطئة إلى مجموعة CallStrangerDetector::ignore_subnets لتجاهلها.
لاستخدام هذا البرنامج النصي على ملف PCAP، ما عليك سوى استنساخ مستودع Git وتشغيل Zeek باستخدام zeek -Cr your.pcap scripts/__load__.zeek
لتثبيت الحزمة، استنسخ مستودع Git ونفذ zkg install . من دليل الحزمة
سيضيف الوحدة إشعارات إلى notice.log إذا اكتشف نشاطًا مشابهًا لـ CallStranger. الإشعارات هي كالتالي:
CallStranger_Data_Exfiltration_Attempt: تمت ملاحظة محاولة لجعل جهاز UPnP يسرب حركة المرورCallStranger_Data_Exfiltration_Success: تمت ملاحظة جهاز UPnP يحتمل أنه يسرب بياناتCallStranger_UPnP_Request_Callback_To_External_Host: تمت ملاحظة محاولة لجعل جهاز UPnP يتصل مرة أخرى بمضيف خارجيCallStranger_UPnP_To_External_Host: تمت ملاحظة جهاز UPnP يتصل مرة أخرى بمضيف خارجيهناك ثلاثة خيارات تهيئة يمكنك ضبطها:
CallStrangerDetector::exfiltration_threshold: عدد البايتات التي يجب ملاحظتها في عنوان URL لاستدعاء UPnP لتصنيفها كتسريب بيانات.CallStrangerDetector::ignore_subnets: مجموعة من الشبكات الفرعية التي يجب تجاهلها في اكتشافات UPnP. استخدم هذا إذا كان لديك نتائج إيجابية خاطئة حيث يعبر UPnP الإنترنت بشكل شرعي.CallStrangerDetector::strict_upnp_protocol_detection: يتحكم هذا المنطق (boolean) في ما إذا كان البرنامج النصي سيكون أكثر صرامة عند محاولة تحديد أوامر SUBSCRIBE الخاصة بـ UPnP. يقوم بذلك من خلال طلب ملاحظة رأس "NT" (نوع الإشعار). القيمة الافتراضية هي false لأن رأس NT لا يفعل شيئًا في الواقع، إنه مطلوب فقط بواسطة مواصفات UPnP. إذا كان لديك حركة مرور SUBSCRIBE غير UPnP، فقد تضطر إلى ضبط هذا على trueلقد اختبرت هذا ضد حركة مرور UPnP المحلية وباستخدام كود إثبات المفهوم المقدم من مؤلف CallStranger (https://github.com/yunuscadirci/CallStranger). إذا كان لديك أي مشكلات، يرجى فتح مشكلة على GitHub أو الاتصال بنا. شكرًا!