استخدام أداة الاستشعار المستندة إلى eBPF Microsoft Defender لنقطة النهاية على Linux

ينطبق على:

يوفر عامل تصفية حزم Berkeley الموسع (eBPF) Microsoft Defender لنقطة النهاية على Linux بيانات أحداث تكميلية لأنظمة تشغيل Linux. يمكن استخدام eBPF كتقنيات بديلة للتدقيق لأن eBPF يساعد في معالجة عدة فئات من المشكلات التي ينظر إليها مع موفر الحدث المدقق وهو مفيد في مجالات الأداء واستقرار النظام.

تشمل الفوائد الرئيسية ما يلي:

  • تقليل ضوضاء السجل ذات الصلة بالتدقيق على مستوى النظام
  • قواعد الأحداث المحسنة على مستوى النظام تتسبب بخلاف ذلك في حدوث تعارض بين التطبيقات
  • تقليل الحمل لمراقبة حدث الملف (قراءة/فتح الملف)
  • معدل نقل محسن للحدث وتقليل بصمة الذاكرة
  • الأداء المحسن لتكوينات محددة

كيفية عمل eBPF

باستخدام eBPF، تتدفق الأحداث التي تم الحصول عليها مسبقا من موفر الأحداث المدقق الآن من مستشعر eBPF. يساعد هذا في استقرار النظام، ويحسن استخدام وحدة المعالجة المركزية والذاكرة، ويقلل من استخدام القرص. أيضا، عند تمكين eBPF، يتم التخلص من جميع القواعد المخصصة ذات الصلة بالتدقيق، مما يساعد على تقليل إمكانية التعارضات بين التطبيقات. يتم تسجيل البيانات المتعلقة ب eBPF في ملف /var/log/microsoft/mdatp/microsoft_defender_core.log.

بالإضافة إلى ذلك، يستخدم مستشعر eBPF قدرات نواة Linux دون الحاجة إلى استخدام وحدة kernel التي تساعد على زيادة استقرار النظام.

ملاحظة

يتم استخدام eBPF بالاقتران مع التدقيق، بينما يتم استخدام التدقيق فقط لأحداث تسجيل دخول المستخدم ويلتقط هذه الأحداث دون أي قواعد مخصصة ويتدفقها تلقائيا. كن على علم بأنه ستتم إزالة التدقيق تدريجيا في الإصدارات المستقبلية.

المتطلبات الأساسية للنظام

يتم دعم مستشعر eBPF Microsoft Defender لنقطة النهاية على Linux على الحد الأدنى التالي من التوزيع وإصدارات النواة:

توزيع Linux إصدار التوزيع إصدار Kernel
اوبونتو 16.04 4.15.0
ف يدورا 33 5.8.15
Centos 7.6 3.10.0-957.10
SLES 15 5.3.18-18.47
Rhel 7.6 3.10.0-957.10
ديبيان 9.0 4.19.0
Oracle Linux RHCK 7.9 3.10.0-1160
Oracle Linux UEK 7.9 5.4
Amazon Linux 2 2 5.4.261-174.360

ملاحظة

Oracle Linux 8.8 مع إصدار kernel 5.15.0-0.30.20.el8uek.x86_64، 5.15.0-0.30.20.1.el8uek.x86_64 سيؤدي إلى توقف النواة عند تمكين eBPF كموفر نظام فرعي تكميلي. يجب عدم استخدام إصدار kernel هذا لوضع eBPF. راجع قسم استكشاف الأخطاء وإصلاحها والتشخيص للحصول على خطوات التخفيف.

استخدام eBPF

يتم تمكين مستشعر eBPF تلقائيا لجميع العملاء بشكل افتراضي لإصدارات العامل "101.23082.0006" وما فوق. يحتاج العملاء إلى التحديث إلى الإصدارات المدعومة المذكورة أعلاه لتجربة الميزة. عند تمكين مستشعر eBPF على نقطة نهاية، يقوم Defender لنقطة النهاية على تحديثات Linux supplementary_events_subsystem إلى ebpf.

تمييز النظام الفرعي ebpf في الأمر mdatp health

في حالة رغبتك في تعطيل eBPF يدويا، يمكنك تشغيل الأمر التالي:

sudo mdatp config ebpf-supplementary-event-provider --value [enabled/disabled]

يمكنك أيضا تحديث ملف mdatp_managed.json:

{
    "features": {
        "ebpfSupplementaryEventProvider": "disabled"
    }
}

راجع الارتباط للحصول على نموذج ملف json مفصل - تعيين تفضيلات Microsoft Defender لنقطة النهاية على Linux.

هام

إذا قمت بتعطيل eBPF، يقوم موفر الحدث التكميلي بالتبديل مرة أخرى إلى المدقق. في حالة عدم تمكين eBPF أو عدم دعمه على أي نواة معينة، سيتم التبديل تلقائيا إلى التدقيق والاحتفاظ بجميع القواعد المخصصة المدققة.

يمكنك أيضا التحقق من حالة eBPF (ممكن/معطل) على نقاط نهاية Linux باستخدام التتبع المتقدم في مدخل Microsoft Defender. الخطوات هي كما يلي:

  1. انتقل إلى مدخل Microsoft Defender وسجل الدخول.

  2. في جزء التنقل، انتقل إلى التتبع>المتقدم.

  3. ضمن التتبع المتقدم، انتقل إلى Defender Vulnerability Management.

  4. قم بتشغيل الاستعلام التالي: DeviceTvmInfoGathering.

  5. في الإخراج، في العمود Additional fields ، حدد Show more، ثم ابحث عن EBPF STATUS: true.

الوضع غير القابل للتغيير ل Auditd

بالنسبة للعملاء الذين يستخدمون التدقيق في الوضع غير القابل للتغيير، يلزم إعادة التشغيل بعد تمكين eBPF من أجل مسح قواعد التدقيق المضافة بواسطة Microsoft Defender لنقطة النهاية. هذا قيد في الوضع غير القابل للتغيير للتدقيق، والذي يتجمد ملف القواعد ويحظر التحرير/الكتابة فوقها. تم حل هذه المشكلة مع إعادة التشغيل. بعد إعادة التشغيل، قم بتشغيل الأمر أدناه للتحقق مما إذا تم مسح قواعد التدقيق.

% sudo auditctl -l

يجب ألا يظهر إخراج الأمر أعلاه أي قواعد أو أي قواعد أضافها المستخدم. في حالة عدم إزالة القواعد، قم بتنفيذ الخطوات التالية لمسح ملف قواعد التدقيق.

  1. التبديل إلى وضع ebpf
  2. إزالة الملف /etc/audit/rules.d/mdatp.rules
  3. إعادة تشغيل الجهاز

استكشاف الأخطاء وإصلاحها والتشخيصات

يمكنك التحقق من حالة صحة العامل عن طريق تشغيل mdatp الأمر health. تأكد من دعم مستشعر eBPF ل Defender لنقطة النهاية على Linux عن طريق التحقق من إصدار kernel الحالي باستخدام سطر الأوامر التالي:

uname -a

المشاكل المعروفة

  1. قد يؤدي تمكين eBPF على إصدار RHEL 8.1 باستخدام SAP إلى ذعر النواة. للتخفيف من هذه المشكلة، يمكنك اتخاذ إحدى الخطوات التالية:

    • استخدم إصدار توزيعة أعلى من RHEL 8.1.
    • قم بالتبديل إلى الوضع المدقق إذا كنت بحاجة إلى استخدام إصدار RHEL 8.1.
  2. قد يؤدي استخدام Oracle Linux 8.8 مع إصدار kernel 5.15.0-0.30.20.el8uek.x86_64، 5.15.0-0.30.20.1.el8uek.x86_64 إلى ذعر النواة. للتخفيف من هذه المشكلة، يمكنك اتخاذ إحدى الخطوات التالية:

    • استخدم إصدار kernel أعلى أو أقل من 5.15.0-0.30.20.el8uek.x86_64، 5.15.0-0.30.20.1.el8uek.x86_64 على Oracle Linux 8.8 إذا كنت تريد استخدام eBPF كموفر نظام فرعي تكميلي. لاحظ أن الحد الأدنى لإصدار kernel ل Oracle Linux هو RHCK 3.10.0 وOracle Linux UEK هو 5.4.
    • التبديل إلى الوضع المدقق إذا كنت بحاجة إلى استخدام نفس إصدار kernel
sudo mdatp config  ebpf-supplementary-event-provider  --value disabled

تساعد المجموعتين التاليتين من البيانات في تحليل المشكلات المحتملة وتحديد خيارات الحل الأكثر فعالية.

  1. اجمع حزمة تشخيص من أداة محلل العميل باستخدام الإرشادات التالية: استكشاف مشكلات الأداء وإصلاحها Microsoft Defender لنقطة النهاية على Linux.

  2. اجمع حزمة تشخيص تصحيح الأخطاء عندما يستخدم Defender لنقطة النهاية موارد عالية باستخدام الإرشادات التالية: Microsoft Defender لنقطة النهاية على موارد Linux.

استكشاف مشكلات الأداء وإصلاحها

إذا رأيت زيادة في استهلاك الموارد عن طريق Microsoft Defender على نقاط النهاية الخاصة بك، فمن المهم تحديد العملية/نقطة التركيب/الملفات التي تستهلك معظم استخدام وحدة المعالجة المركزية/الذاكرة ثم تطبيق الاستثناءات الضرورية. بعد تطبيق استثناءات AV المحتملة، إذا كان wdavdaemon (العملية الأصل) لا يزال يستهلك الموارد، فاستخدم الأمر ebpf-statistics للحصول على أعلى عدد استدعاءات النظام:

sudo mdatp diagnostic  ebpf-statistics
Output
Monitor 20 seconds
Top file paths:
/var/log/microsoft/mdatp/microsoft_defender.log : 10
/var/log/microsoft/mdatp/rotated/microsoft_defender.log00001 : 2
/var/log/microsoft/mdatp/rotated/microsoft_defender.log : 1
/home/gargank/tmp-stress-ng-rename-13550-31/stress-ng-rename-13550-31-374993 : 1
/home/gargank/tmp-stress-ng-rename-13550-31/stress-ng-rename-13550-31-374991 : 1
/home/gargank/tmp-stress-ng-rename-13550-31/stress-ng-rename-13550-31-374989 : 1
/home/gargank/tmp-stress-ng-rename-13550-31/stress-ng-rename-13550-31-374987 : 1
/home/gargank/tmp-stress-ng-rename-13550-31/stress-ng-rename-13550-31-374985 : 1
/home/gargank/tmp-stress-ng-rename-13550-31/stress-ng-rename-13550-31-374983 : 1
/home/gargank/tmp-stress-ng-rename-13550-31/stress-ng-rename-13550-31-374981 : 1

Top initiator paths:
/usr/bin/stress-ng : 50000
/opt/microsoft/mdatp/sbin/wdavdaemon : 13

Top syscall ids:
82 : 1699333
90 : 10
87 : 3

في الإخراج أعلاه، يمكنك أن ترى أن stress-ng هي أعلى عملية تولد عددا كبيرا من الأحداث وقد تؤدي إلى مشكلات في الأداء. على الأرجح، يقوم stress-ng بإنشاء استدعاء النظام بالمعرف 82. يمكنك إنشاء تذكرة باستخدام Microsoft لاستبعاد هذه العملية. في المستقبل كجزء من التحسينات القادمة، لديك المزيد من التحكم لتطبيق مثل هذه الاستثناءات من جانبك.

لا يمكن ترحيل الاستثناءات المطبقة على المدقق أو نسخها إلى eBPF. المخاوف الشائعة مثل السجلات الصاخبة، وذعر النواة، وsyscalls الصاخبة يتم الاعتناء بها بالفعل من قبل eBPF داخليا. في حالة رغبتك في إضافة أي استثناءات أخرى، قم بالتواصل مع Microsoft للحصول على الاستثناءات الضرورية المطبقة.

راجع أيضًا