Untersuchen erweiterter Sicherheitsempfehlungen zur Betriebssystembaseline
In diesem Abschnitt wird beschrieben, wie Sie die Testergebnisse zur Betriebssystembaseline besser verstehen und Ereignisse in Azure Log Analytics abfragen.
Voraussetzungen:
Die erweiterte Sicherheitsempfehlungen für das erweiterte Betriebssystem werden nur mithilfe von Azure Log Analytics unterstützt und Sie müssen Defender für IoT mit einem Log Analytics-Arbeitsbereich verbinden, bevor Sie fortfahren.
So fragen Sie IoT-Sicherheitsereignisse in Log Analytics für Warnungen ab:
Wechseln Sie in Ihrem Log Analytics-Arbeitsbereich zu Logs>AzureSecurityOfThings>SecurityAlert.
Geben Sie im Abfrage-Editor rechts eine KQL-Abfrage ein, um die Warnungen anzuzeigen, die angezeigt werden sollen.
Wählen Sie Ausführen aus, um die Warnungen anzuzeigen, die Ihrer Abfrage entsprechen.
Beispiel:
Hinweis
Zusätzlich zu Warnungen können Sie diese Prozedur auch verwenden, um Empfehlungen oder rohe Ereignisdaten abzufragen.
Hilfreiche Abfragen zum Untersuchen der Ressourcen der Betriebssystembaseline
Hinweis
Ersetzen Sie in den folgenden Abfragen <device-id> durch den/die Namen, die Sie Ihrem Gerät gegeben haben.
Abrufen der aktuellsten Informationen
Fehler der Geräteflotte: Führen Sie diese Abfrage aus, um die neuesten Informationen zu fehlerhaften Überprüfungen abzurufen, die in der Geräteflotte aufgetreten sind:
Kusto
let lastDates = SecurityIoTRawEvent |
where RawEventName == "Baseline" |
summarize TimeStamp=max(TimeStamp) by DeviceId;
lastDates | joinkind=inner (SecurityIoTRawEvent) on TimeStamp, DeviceId |
extend event = parse_json(EventDetails) |
where event.BaselineCheckResult == "FAIL" |
project DeviceId, event.BaselineCheckId, event.BaselineCheckDescription
Gerätespezifische Ausfälle: Führen Sie die folgende Abfrage aus, um die neuesten Informationen zu fehlerhaften Überprüfungen bei einem bestimmten Gerät abzurufen:
Kusto
let id = SecurityIoTRawEvent |
extend IoTRawEventId = extractjson("$.EventId", EventDetails, typeof(string)) |
where TimeGenerated <= now() |
where RawEventName == "Baseline" |
where DeviceId == "<device-id>" |
summarizearg_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
Gerätespezifische Fehler: Führen Sie die folgende Abfrage aus, um die neuesten Informationen zu Überprüfungen abzurufen, bei denen ein Fehler bei einem bestimmten Gerät erkannt wurde:
Kusto
let id = SecurityIoTRawEvent |
extend IoTRawEventId = extractjson("$.EventId", EventDetails, typeof(string)) |
where TimeGenerated <= now() |
where RawEventName == "Baseline" |
where DeviceId == "<device-id>" |
summarizearg_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
Aktualisieren der Geräteliste für die Geräteflotte mit einer bestimmten fehlerhaften Überprüfung: Führen Sie diese Abfrage aus, um eine aktualisierte Liste der Geräte (in der Geräteflotte) abzurufen, bei denen eine bestimmte Überprüfung fehlerhaft war:
Kusto
let lastDates = SecurityIoTRawEvent |
where RawEventName == "Baseline" |
summarize TimeStamp=max(TimeStamp) by DeviceId;
lastDates | joinkind=inner (SecurityIoTRawEvent) on TimeStamp, DeviceId |
extend event = parse_json(EventDetails) |
where event.BaselineCheckResult == "FAIL" |
where event.BaselineCheckId contains"6.2.8" |
project DeviceId;