تعديل المحتوى لاستخدام نموذج معلومات الأمان المتقدم (ASIM)

تحويل محتوى Microsoft Sentinel لاستخدام البيانات المطبعة بواسطة ASIM

يتضمن محتوى الأمان الذي تمت تسويته في Microsoft Sentinel قواعد التحليلات واستعلامات التتبع والمصنفات التي تعمل مع توحيد محللات التسوية.

يمكنك العثور على المحتوى العادي الجاهز في المعارض Microsoft Sentinel وكتالوج الحلول Microsoft Sentinel أو إنشاء المحتوى الذي تمت تسويته أو تعديل المحتوى المخصص الموجود لاستخدام البيانات التي تمت تسويتها.

توضح هذه المقالة كيفية تحويل قواعد تحليلات Microsoft Sentinel الحالية لاستخدام البيانات التي تمت تسويتها ASIM مع نموذج معلومات الأمان المتقدم (ASIM).

لفهم كيفية ملاءمة المحتوى الذي تمت تسويته داخل بنية ASIM، راجع الرسم التخطيطي لبنية ASIM.

تعديل المحتوى المخصص لاستخدام التسوية

لتمكين محتوى Microsoft Sentinel المخصص لاستخدام التسوية:

  • قم بتعديل الاستعلامات لاستخدام أي محللات ASIM الموحدة ذات الصلة بالاستعلام.

  • قم بتعديل أسماء الحقول في الاستعلام الخاص بك لاستخدام أسماء حقول المخططات التي تمت تسويتها ASIM .

  • عند الاقتضاء، قم بتغيير الشروط لاستخدام القيم التي تمت تسويتها للحاويات في الاستعلام الخاص بك.

نموذج التسوية لقواعد التحليلات

على سبيل المثال، ضع في اعتبارك العميل النادر الذي تمت ملاحظته مع عدد بحث DNS العكسي العالي قاعدة تحليلية DNS، والتي تعمل على أحداث DNS المرسلة بواسطة خوادم Infoblox DNS:

let threshold = 200;
InfobloxNIOS
| where ProcessName =~ "named" and Log_Type =~ "client"
| where isnotempty(ResponseCode)
| where ResponseCode =~ "NXDOMAIN"
| summarize count() by Client_IP, bin(TimeGenerated,15m)
| where count_ > threshold
| join kind=inner (InfobloxNIOS
    | where ProcessName =~ "named" and Log_Type =~ "client"
    | where isnotempty(ResponseCode)
    | where ResponseCode =~ "NXDOMAIN"
    ) on Client_IP
| extend timestamp = TimeGenerated, IPCustomEntity = Client_IP

التعليمات البرمجية التالية هي الإصدار غير المحدد المصدر، والذي يستخدم التسوية لتوفير نفس الكشف لأي مصدر يوفر أحداث استعلام DNS. يستخدم المثال التالي محللات ASIM المضمنة:

_Im_Dns(responsecodename='NXDOMAIN')
| summarize count() by SrcIpAddr, bin(TimeGenerated,15m)
| where count_ > threshold
| join kind=inner (imDns(responsecodename='NXDOMAIN')) on SrcIpAddr
| extend timestamp = TimeGenerated, IPCustomEntity = SrcIpAddr

يحتوي الإصدار العادي غير المحدد المصدر على الاختلافات التالية:

  • _Im_Dns يتم استخدام المحللات أو imDnsالتي تمت تسويتها بدلا من محلل Infoblox.

  • تجلب المحللات التي تمت تسويتها أحداث استعلام DNS فقط، لذلك ليست هناك حاجة للتحقق من نوع الحدث، كما يتم تنفيذه بواسطة where ProcessName =~ "named" and Log_Type =~ "client" في إصدار Infoblox.

  • SrcIpAddr يتم استخدام الحقل بدلا من Client_IP.

  • يتم استخدام تصفية معلمة المحلل ل ResponseCodeName، مما يلغي الحاجة إلى عبارات صريحة where .

ملاحظة

بصرف النظر عن دعم أي مصدر DNS تمت تسويته، يكون الإصدار الذي تمت تسويته أقصر وأسهل في الفهم.

إذا لم يدعم المخطط أو المحللات معلمات التصفية، فإن تغييرات الاستعلام المطلوبة لتطبيع القاعدة متشابهة، باستثناء أن شروط التصفية يتم الاحتفاظ بها من الاستعلام الأصلي. على سبيل المثال:

let threshold = 200;
imDns
| where isnotempty(ResponseCodeName)
| where ResponseCodeName =~ "NXDOMAIN"
| summarize count() by SrcIpAddr, bin(TimeGenerated,15m)
| where count_ > threshold
| join kind=inner (imDns
    | where isnotempty(ResponseCodeName)
    | where ResponseCodeName =~ "NXDOMAIN"
    ) on SrcIpAddr
| extend timestamp = TimeGenerated, IPCustomEntity = SrcIpAddr

راجع المزيد من المعلومات حول عناصر KQL التالية المستخدمة في أمثلة تسوية استعلام DNS، في وثائق Kusto:

لمزيد من المعلومات حول KQL، راجع نظرة عامة على لغة استعلام Kusto (KQL).

الموارد الأخرى:

لمزيد من المعلومات، راجع الموارد التالية: