
استفد من برنامج تشغيل استدعاء WFP شرعي لمنع وكلاء EDR من إرسال القياس عن بُعد
مؤلف مشارك: @oops4git(https://github.com/oops4git)
يستفيد EDRPrison من برنامج تشغيل استدعاء WFP (WFP callout driver) شرعي، وهو WinDivert، لإسكات أنظمة EDR بفعالية. مستوحىً من أدوات مثل Shutter وFireBlock وEDRSilencer، يركز هذا المشروع على تقنيات التهرب القائمة على الشبكة. وعلى عكس الأدوات السابقة، يقوم EDRPrison بتثبيت وتحميل برنامج تشغيل استدعاء WFP خارجي شرعي بدلاً من الاعتماد فقط على WFP المدمج. بالإضافة إلى ذلك، فهو يمنع حركة المرور الصادرة من عمليات EDR عن طريق إضافة عوامل تصفية (filters) وقت التشغيل ديناميكيًا دون التفاعل المباشر مع عمليات EDR أو ملفاتها التنفيذية.
باختصار، يمتلك EDRPrison الميزات والقدرات الرئيسية التالية:
يُرجى الرجوع إلى المقالة لمزيد من التفاصيل التقنية: https://winslow1984.com/books/malware/page/edrprison-borrow-a-legitimate-driver-to-mute-edr-agent
يلزم امتيازات مرتفعة لتشغيل EDRPrison بنجاح. يتكوّن EDRPrison من المكونات الثلاثة التالية:
يقدّم EDRPrison العديد من التحسينات والترقيات مقارنةً بالأدوات السابقة، مما يجعله أداة أكثر متانة وتخفيًا للتهرب من EDR القائم على الشبكة:
نظرًا للموارد المتاحة لدي، اختبرت EDRPrison ضد Elastic Endpoint وMicrosoft Defender for Endpoint (MDE) على خادمي الفعلي حتى الآن.
العمليات ذات الصلة بـ Elastic Endpoint وMDE مضمّنة بشكل ثابت (hardcoded) في الكود المصدري. أثناء الاختبارات، لم يتم اكتشاف البرنامج الرئيسي ولا WinDivert من قبل الأنظمة الأمنية.
اختبرت بعض عيّنات البرمجيات الخبيثة الشائعة، مثل Mimikatz. لا يزال من الممكن اكتشاف هذه العيّنات لأنه حتى بدون الاتصال بالإنترنت، تحتفظ أنظمة EDR بقدرات اكتشاف أساسية مثل التوقيعات المستندة إلى التجزئة (hash). بعد تنفيذ البرمجية الخبيثة، زاد عدد الحزم، مما يشير إلى أنها احتوت على بيانات تنبيه.

في حين تحدث بعض عمليات الكشف محليًا، فإنها لا تظهر في لوحة تحكم EDR. بدون الاتصال بالإنترنت، لا تستطيع أنظمة EDR الاستفادة من القدرات المتقدمة مثل التعلم الآلي والحوسبة السحابية لمنع هجمات البرمجيات الخبيثة الأكثر تعقيدًا.


عدّل مقتطف الكود التالي لتضمين عمليات EDR إضافية بشكل ثابت.
static void initData()
{
processDictionary.TryAdd("MsMpEng.exe", 1);
processDictionary.TryAdd("MsSense.exe", 1);
processDictionary.TryAdd("SenseIR.exe", 1);
processDictionary.TryAdd("SenseNdr.exe", 1);
processDictionary.TryAdd("SenseCncProxy.exe", 1);
processDictionary.TryAdd("SenseSampleUploader.exe", 1);
processDictionary.TryAdd("elastic-endpoint.exe", 1);
processDictionary.TryAdd("elastic-agent.exe", 1);
}
يمكن استخدام الأساليب التالية لاكتشاف استخدام EDRPrison أو التخفيف من حدته. ومع ذلك، اعتمادًا على البيئة، قد تؤدي بعض عمليات الكشف هذه إلى نتائج إيجابية كاذبة (FP).
إذا لم يكن برنامج تشغيل WinDivert مثبتًا بالفعل على النظام، فسيقوم EDRPrison بتثبيت برنامج تشغيل الاستدعاء عند أول تشغيل. سيقوم كل من نظام التشغيل وبيانات القياس عن بُعد بتسجيل هذا الحدث.
يتطلب EDRPrison والبرامج الأخرى المعتمدة على WinDivert وجود WinDivert64.sys وWinDivert.dll على القرص. يمكن أن تساعد مراقبة هذه الملفات في اكتشاف مثل هذه البرامج.
أدوات مثل WinDivertTool يمكنها اكتشاف العمليات التي تستخدم حاليًا منصة تصفية Windows (WFP).

تمتلك Elastic قاعدة اكتشاف يمكنها تحديد إجراءات إسقاط أو حظر الحزم ضد عمليات البرامج الأمنية، مما قد يشير إلى وجود EDRPrison.
تساعد أداة WFPExplorer المسؤولين في مراجعة جلسات WFP النشطة والاستدعاءات وعوامل التصفية المسجلة.




من الممكن أن تكون ميزة مستقبلية محتملة تضيف حمايات إضافية لتثبيت برامج التشغيل، مما يعزز الأمان ضد الاستخدام غير المصرح به لبرامج تشغيل مثل WinDivert.
من منظور الفريق الأحمر، يمكن استخدام عدة استراتيجيات لتجاوز الاكتشافات المذكورة أعلاه، اعتمادًا على التكوينات الأمنية للبيئة.
إذا كان WinDivert يُعتبر ضارًا في البيئة، يمكن استخدام برامج تشغيل بديلة موقّعة ومفتوحة المصدر. يجب أن يكون لهذه البدائل سجل أقل من الاستخدام الضار، وأن تظل تدعم اعتراض الحزم وإعادة حقنها وتقنيات المعالجة الأخرى.
في البيئات التي تكون فيها برامج التشغيل الخارجية غير مصرح بها ما لم تتم الموافقة عليها، من الصعب لكنه ممكن إجراء هندسة عكسية لبرنامج تشغيل استدعاء WFP مثبت أو مدمج. من خلال إعادة استخدام وظائف الاستدعاء الخاصة به، يمكن لأعضاء الفريق الأحمر الاستفادة من برامج التشغيل الموجودة. تتضمن العديد من حلول البرامج الأمنية برامج تشغيل استدعاء WFP خاصة بها يمكن إعادة توظيفها.
بدلًا من حظر أو إسقاط الحزم المعترضة، يمكن لأعضاء الفريق الأحمر إعادة توجيهها أو تمريرها عبر بروكسي. يمكن لهذه الطريقة تجنب قواعد الاكتشاف التي تركز على إجراءات إسقاط أو حظر الحزم، مع تحقيق التداخل المطلوب مع عمليات EDR.
الموارد التالية ألهمتني وساعدتني كثيرًا أثناء بحثي. أتقدّم بالشكر لجميع المؤلفين:
https://github.com/netero1010/EDRSilencer
https://github.com/dsnezhkov/shutter
https://www.mdsec.co.uk/2023/09/nighthawk-0-2-6-three-wise-monkeys/
https://github.com/amjcyber/EDRNoiseMaker
https://www.securityartwork.es/2024/06/17/edr-silencer-2/
https://windowsir.blogspot.com/2024/01/edrsilencer.html
https://github.com/TechnikEmpire/HttpFilteringEngine
https://reqrypt.org/windivert.html
https://learn.microsoft.com/en-us/defender-cloud-apps/network-requirements
https://github.com/microsoft/windows-driver-samples/tree/main/network/trans/WFPSampler