Esaminare la baseline del sistema operativo (in base al benchmark CIS)
Eseguire indagini di base e avanzate in base alle raccomandazioni di base del sistema operativo.
Analisi delle raccomandazioni di sicurezza della baseline del sistema operativo di base
È possibile esaminare le raccomandazioni della baseline del sistema operativo passando a Defender per IoT nel portale di Azure. Per altre informazioni, vedere Come analizzare le raccomandazioni sulla sicurezza.
Analisi avanzata delle raccomandazioni sulla sicurezza della baseline del sistema operativo
Questa sezione descrive come comprendere meglio i risultati dei test di base del sistema operativo e l'esecuzione di query sugli eventi in Azure Log Analytics.
Prerequisiti:
L'analisi avanzata delle raccomandazioni sulla sicurezza della baseline del sistema operativo è supportata solo tramite Azure Log Analytics ed è necessario connettere Defender per IoT a un'area di lavoro Log Analytics prima di continuare.
Per altre informazioni, vedere Configurare la soluzione basata su agente di Microsoft Defender per IoT.
Per eseguire query sugli eventi di sicurezza IoT in Log Analytics per gli avvisi:
Nell'area di lavoro Log Analytics passare a Log>AzureSecurityOfThings>SecurityAlert.
Nell'editor di query a destra immettere una query KQL per visualizzare gli avvisi da visualizzare.
Selezionare Esegui per visualizzare gli avvisi corrispondenti alla query.
Ad esempio:
Nota
Oltre agli avvisi, è anche possibile usare questa stessa procedura per eseguire query per consigli o dati di eventi non elaborati.
Query utili per analizzare le risorse di base del sistema operativo
Nota
Assicurarsi di sostituire <device-id>
con i nomi specificati nel dispositivo in ognuna delle query seguenti.
Recuperare le informazioni più recenti
Errore della flotta di dispositivi: eseguire questa query per recuperare le informazioni più recenti sui controlli non riusciti nella flotta di dispositivi:
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
Errore specifico del dispositivo : eseguire questa query per recuperare le informazioni più recenti sui controlli non riusciti in un dispositivo specifico:
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
Errore specifico del dispositivo : eseguire questa query per recuperare le informazioni più recenti sui controlli che presentano un errore in un dispositivo specifico:
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
Aggiornare l'elenco di dispositivi per la flotta di dispositivi che non ha superato un controllo specifico: eseguire questa query per recuperare l'elenco aggiornato dei dispositivi (nell'intera flotta di dispositivi) che non ha superato un controllo specifico:
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;
Passaggi successivi
Esaminare le raccomandazioni sulla sicurezza.