Recomendação de investigar a linha de base do SO (com base na referência da CIS)

Realize investigações básicas e avançadas com base nas recomendações de linha de base do SO (sistema operacional).

Investigação básica da recomendação de segurança de linha de base do SO

Você pode investigar as recomendações de linha de base do SO navegando até o Defender para IoT no portal do Azure. Para obter mais informações, consulte como Investigar as recomendações de segurança.

Investigação avançada da recomendação de segurança de linha de base do SO

Esta seção descreve como entender melhor os resultados do teste de linha de base do SO e consultar eventos no Azure Log Analytics.

Pré-requisitos:

A investigação de recomendação de segurança de linha de base avançada do sistema operacional só tem suporte usando o Azure Log Analytics e você deve conectar o Defender for IoT a um espaço de trabalho do Log Analytics antes de continuar.

Para obter mais informações, consulte Configurar o Microsoft Defender para solução baseada em agente IoT.

Para consultar seus eventos de segurança de IoT no Log Analytics para alertas:

  1. No seu espaço de trabalho do Log Analytics, vá para Logs>AzureSecurityOfThings>SecurityAlert.

  2. No editor de consultas à direita, insira uma consulta KQL para exibir os alertas que você deseja ver.

  3. Selecione Executar para exibir os alertas que correspondem à sua consulta.

Por exemplo:

Captura de tela do espaço de trabalho do Log Analytics com uma consulta de alerta do Defender for I o T.

Observação

Além dos alertas, você também pode usar esse mesmo procedimento para consultar recomendações ou dados brutos de eventos.

Consultas úteis para investigar os recursos de linha de base do SO

Observação

Certifique-se de substituir <device-id> pelos nomes que você deu ao dispositivo em cada uma das consultas a seguir.

Recuperar as informações mais recentes

  • Falha de frota de dispositivo: execute essa consulta para recuperar as informações mais recentes sobre verificações que falharam na frota do dispositivo:

    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
    
  • Falha de dispositivo específico – execute essa consulta para recuperar as informações mais recentes sobre verificações que falharam em um dispositivo específico:

    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
    
  • Erro de dispositivo específico – execute esta consulta para recuperar as informações mais recentes sobre verificações que resultam em um erro em um dispositivo específico:

    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
    
  • Atualizar a lista de dispositivos para a frota do dispositivo que falhou em uma verificação específica - execute esta consulta para recuperar a lista atualizada de dispositivos (em toda a frota do dispositivo) que falhou em uma verificação 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;
    

Próximas etapas

Investigar as recomendações de segurança.