التحقيق في توصية خط الأساس لنظام التشغيل (استنادا إلى معيار رابطة الدول المستقلة)
قم بإجراء التحقيقات الأساسية والمتقدمة استنادا إلى توصيات خط الأساس لنظام التشغيل.
ملاحظة
تم استبدال تجربة Microsoft Defender for IoT القديمة تحت IoT Hub بتجربة Defender for IoT المستقلة الجديدة الخاصة بنا ، في منطقة Defender for IoT في بوابة Azure. لن يتم دعم التجربة القديمة ضمن IoT Hub بعد 31 مارس 2023.
التحقيق في التوصية الأمنية الأساسية لنظام التشغيل الأساسي
يمكنك التحقيق في توصيات خط الأساس لنظام التشغيل من خلال الانتقال إلى Defender for IoT في مدخل Azure. لمزيد من المعلومات، راجع كيفية التحقيق في توصيات الأمان.
التحقيق المتقدم في توصية أمان خط الأساس لنظام التشغيل
يوضح هذا القسم كيفية فهم نتائج اختبار خط الأساس لنظام التشغيل بشكل أفضل، والاستعلام عن الأحداث في Azure Log Analytics.
يتم دعم التحقيق في توصية أمان خط الأساس المتقدم لنظام التشغيل فقط باستخدام تحليلات السجل. الاتصال Defender for IoT إلى مساحة عمل Log Analytics قبل المتابعة. لمزيد من المعلومات حول توصيات الأمان الأساسية المتقدمة لنظام التشغيل، راجع كيفية تكوين Microsoft Defender للحل المستند إلى وكيل إنترنت الأشياء.
للاستعلام عن أحداث أمان إنترنت الأشياء في Log Analytics للتنبيهات:
انتقل إلى صفحة التنبيهات .
حدد التحقيق في التوصيات في مساحة عمل Log Analytics.
للاستعلام عن أحداث أمان إنترنت الأشياء في Log Analytics للحصول على التوصيات:
انتقل إلى صفحة التوصيات.
حدد التحقيق في التوصيات في مساحة عمل Log Analytics.
حدد إظهار تفاصيل قواعد خط الأساس لنظام التشغيل (OS) من صفحة العرض السريع لتفاصيل التوصية للاطلاع على تفاصيل جهاز معين.
للاستعلام عن أحداث أمان إنترنت الأشياء في مساحة عمل Log Analytics مباشرة:
انتقل إلى صفحة السجلات .
حدد التحقيق في التنبيهات أو حدد الخيار التحقيق في التنبيهات في Log Analytics من أي توصية أمان أو تنبيه.
استعلامات مفيدة للتحقيق في موارد خط أساس نظام التشغيل
ملاحظة
تأكد من الاستبدال <device-id> بالاسم (الأسماء) الذي أعطيته لجهازك في كل من الاستعلامات التالية.
استرداد أحدث المعلومات
فشل أسطول الأجهزة: قم بتشغيل الاستعلام التالي لاسترداد أحدث المعلومات حول عمليات التحقق التي فشلت عبر أسطول الأجهزة:
let lastDates = SecurityIoTRawEvent | where RawEventName == "Baseline" | summarize TimeStamp=max(TimeStamp) by DeviceId; lastDates | join kind=inner (SecurityIoTRawEvent) on TimeStamp, DeviceId | extend event = parse_json(EventDetails) | where event.BaselineCheckResult == "FAIL" | project DeviceId, event.BaselineCheckId, event.BaselineCheckDescriptionفشل جهاز معين - قم بتشغيل الاستعلام التالي لاسترداد أحدث المعلومات حول عمليات التحقق التي فشلت على جهاز معين:
let id = SecurityIoTRawEvent | extend IoTRawEventId = extractjson("$.EventId", EventDetails, typeof(string)) | where TimeGenerated <= now() | where RawEventName == "Baseline" | where DeviceId == "<device-id>" | summarize arg_max(TimeGenerated, IoTRawEventId) | project IoTRawEventId; SecurityIoTRawEvent | extend IoTRawEventId = extractjson("$.EventId", EventDetails, typeof(string)), extraDetails = todynamic(EventDetails) | where IoTRawEventId == toscalar(id) | where extraDetails.BaselineCheckResult == "FAIL" | project DeviceId, CceId = extraDetails.BaselineCheckId, Description = extraDetails.BaselineCheckDescriptionخطأ جهاز معين - قم بتشغيل هذا الاستعلام لاسترداد أحدث المعلومات حول عمليات التحقق التي تحتوي على خطأ على جهاز معين:
let id = SecurityIoTRawEvent | extend IoTRawEventId = extractjson("$.EventId", EventDetails, typeof(string)) | where TimeGenerated <= now() | where RawEventName == "Baseline" | where DeviceId == "<device-id>" | summarize arg_max(TimeGenerated, IoTRawEventId) | project IoTRawEventId; SecurityIoTRawEvent | extend IoTRawEventId = extractjson("$.EventId", EventDetails, typeof(string)), extraDetails = todynamic(EventDetails) | where IoTRawEventId == toscalar(id) | where extraDetails.BaselineCheckResult == "ERROR" | project DeviceId, CceId = extraDetails.BaselineCheckId, Description = extraDetails.BaselineCheckDescriptionتحديث قائمة الأجهزة لأسطول الأجهزة الذي فشل في إجراء فحص محدد - قم بتشغيل هذا الاستعلام لاسترداد قائمة الأجهزة المحدثة (عبر أسطول الأجهزة) التي فشلت في فحص محدد:
let lastDates = SecurityIoTRawEvent | where RawEventName == "Baseline" | summarize TimeStamp=max(TimeStamp) by DeviceId; lastDates | join kind=inner (SecurityIoTRawEvent) on TimeStamp, DeviceId | extend event = parse_json(EventDetails) | where event.BaselineCheckResult == "FAIL" | where event.BaselineCheckId contains "6.2.8" | project DeviceId;