Investigación de la recomendación de línea base del sistema operativo (basada en el punto de referencia CIS)

Realice investigaciones básicas y avanzadas en función de las recomendaciones de línea base del sistema operativo.

Nota

La experiencia heredada de Microsoft Defender para IoT en IoT Hub se ha reemplazado por nuestra nueva experiencia independiente de Defender para IoT, en el área de Defender para IoT de Azure Portal. La experiencia heredada en IoT Hub no se admitirá después del 31 de marzo de 2023.

Investigación básica de la recomendación de seguridad del sistema operativo

Para investigar las recomendaciones de línea de base del sistema operativo, vaya a Defender para IoT en Azure Portal. Para más información, consulte cómo investigar las recomendaciones de seguridad.

Investigación de las recomendaciones avanzadas de seguridad del sistema operativo

En esta sección se describe cómo conocer mejor los resultados de las pruebas de la línea base del sistema operativo y consultar eventos en Azure Log Analytics.

Requisitos previos:

La investigación de las recomendaciones avanzadas de seguridad de línea base del sistema operativo solo se admite mediante Azure Log Analytics y debe conectar Defender para IoT a un área de trabajo de Log Analytics antes de continuar.

Para obtener más información, consulte Configuración de soluciones basadas en el agente de Microsoft Defender para IoT.

Para consultar las alertas de los eventos de seguridad de IoT en Log Analytics:

  1. En el área de trabajo de Log Analytics, vaya a Registros>AzureSecurityOfThings>SecurityAlert.

  2. En el editor de consultas de la derecha, escriba una consulta KQL para mostrar las alertas que quiere ver.

  3. Seleccione Ejecutar para mostrar las alertas que coinciden con la consulta.

Por ejemplo:

Captura de pantalla del área de trabajo de Log Analytics con una consulta de alerta de Defender para I o T.

Nota:

Además de las alertas, también puede usar este mismo procedimiento para consultar recomendaciones o datos de eventos sin procesar.

Consultas útiles para investigar los recursos de línea base del sistema operativo

Nota:

Asegúrese de reemplazar <device-id> por los nombres que asignó al dispositivo en cada una de las siguientes consultas.

Recuperación de la información más reciente

  • Error de flota de dispositivos: ejecute la siguiente consulta para recuperar la información más reciente sobre las comprobaciones que produjeron error en la flota de dispositivos:

    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
    
  • Error de dispositivo específico: ejecute la siguiente consulta para recuperar la información más reciente sobre las comprobaciones que generaron error en un dispositivo concreto:

    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
    
  • Error de dispositivo específico: ejecute la siguiente consulta para recuperar la información más reciente sobre las comprobaciones que generaron error en un dispositivo concreto:

    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
    
  • Actualizar la lista de dispositivos de la flota de dispositivos que no ha superado una comprobación concreta: ejecute esta consulta para recuperar la lista actualizada de dispositivos (en la flota del dispositivo) que no han podido realizar una comprobación específica:

    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;
    

Pasos siguientes

Investigación de recomendaciones de seguridad.