Partager via


Examiner une recommandation de base du système d’exploitation (basée sur le test d’évaluation CIS)

Effectuez des investigations de base et avancées à partir des recommandations de base du système d’exploitation.

Investigation d’une recommandation de base de sécurité du système d’exploitation

Vous pouvez examiner les recommandations de base du système d’exploitation en accédant à Defender pour IoT dans le Portail Azure. Pour plus d’informations, consultez l’article expliquant comment examiner des recommandations de sécurité.

Investigation d’une recommandation avancée de sécurité du système d’exploitation

Cette section décrit comment mieux comprendre les résultats des tests de base du système d’exploitation et interroger les événements dans Azure Log Analytics.

Prérequis :

L’investigation avancée de la recommandation de sécurité de base du système d’exploitation est prise en charge uniquement à l’aide d’Azure Log Analytics et vous devez connecter Defender pour IoT à un espace de travail Log Analytics avant de continuer.

Pour plus d’informations, consultez Configurer une solution basée sur un agent Microsoft Defender pour IoT.

Pour interroger vos événements de sécurité IoT dans Log Analytics pour des alertes :

  1. Dans votre espace de travail Log Analytics, accédez à Journaux>AzureSecurityOfThings>SecurityAlert.

  2. Dans l’éditeur de requête à droite, entrez une requête KQL pour afficher les alertes que vous souhaitez afficher.

  3. Sélectionnez Exécuter pour afficher les alertes qui correspondent à votre requête.

Par exemple :

Capture d’écran de l’espace de travail Log Analytics avec une requête d’alerte Defender pour IoT.

Notes

En plus des alertes, vous pouvez également utiliser cette même procédure pour interroger des recommandations ou des données d’événement brutes.

Requêtes utiles pour examiner les ressources de base du système d’exploitation

Notes

Veillez à remplacer <device-id> par le ou les noms que vous avez donnés à votre appareil dans chacune des requêtes suivantes.

Récupérer les dernières informations

  • Échec d’une flotte d’appareils : exécutez cette requête pour obtenir les dernières informations sur les vérifications qui ont échoué dans la flotte d’appareils :

    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
    
  • Défaillance d’un appareil spécifique :exécutez cette requête pour obtenir les dernières informations sur les vérifications qui ont échoué sur un appareil spécifique :

    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
    
  • Erreur d’appareil spécifique : exécutez cette requête pour récupérer les dernières informations sur les vérifications comportant une erreur sur un appareil spécifique :

    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
    
  • Mettre à jour la liste des appareils d’une flotte d’appareils qui ont échoué à un test spécifique : exécutez cette requête pour récupérer la liste mise à jour des appareils (dans la flotte d’appareils) qui ont échoué à un test spécifique :

    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;
    

Étapes suivantes

Investiguer les recommandations de sécurité.