Partilhar via


Modificar o conteúdo para usar o ASIM (Advanced Security Information Model) (visualização pública)

O conteúdo de segurança normalizado no Microsoft Sentinel inclui regras de análise, consultas de caça e pastas de trabalho que funcionam com analisadores de normalização unificadores.

Você pode encontrar conteúdo normalizado e pronto para uso nas galerias e soluções do Microsoft Sentinel, criar seu próprio conteúdo normalizado ou modificar conteúdo personalizado existente para usar dados normalizados.

Este artigo explica como converter regras de análise existentes do Microsoft Sentinel para usar dados normalizados com o ASIM (Advanced Security Information Model).

Para entender como o conteúdo normalizado se encaixa na arquitetura ASIM, consulte o diagrama de arquitetura ASIM.

Gorjeta

Assista também ao webinar Deep Dive sobre a normalização de analisadores e conteúdo normalizado do Microsoft Sentinel ou revise os slides. Para obter mais informações, veja Passos seguintes.

Importante

ASIM está atualmente em pré-visualização. Os Termos Suplementares do Azure Preview incluem termos legais adicionais que se aplicam a funcionalidades do Azure que estão em versão beta, pré-visualização ou ainda não disponibilizadas para disponibilidade geral.

Modificar conteúdo personalizado para usar a normalização

Para permitir que seu conteúdo personalizado do Microsoft Sentinel use a normalização:

  • Modifique suas consultas para usar quaisquer analisadores unificadores relevantes para a consulta.

  • Modifique os nomes de campo em sua consulta para usar os nomes de campo de esquema normalizado.

  • Quando aplicável, altere as condições para usar os valores normalizados dos campos em sua consulta.

Exemplo de normalização para regras de análise

Por exemplo, considere o cliente Rare observado com alta regra analítica de DNS de contagem reversa de DNS, que funciona em eventos DNS enviados por servidores DNS Infoblox:

let threshold = 200;
InfobloxNIOS
| where ProcessName =~ "named" and Log_Type =~ "client"
| where isnotempty(ResponseCode)
| where ResponseCode =~ "NXDOMAIN"
| summarize count() by Client_IP, bin(TimeGenerated,15m)
| where count_ > threshold
| join kind=inner (InfobloxNIOS
    | where ProcessName =~ "named" and Log_Type =~ "client"
    | where isnotempty(ResponseCode)
    | where ResponseCode =~ "NXDOMAIN"
    ) on Client_IP
| extend timestamp = TimeGenerated, IPCustomEntity = Client_IP

O código a seguir é a versão agnóstica de origem, que usa normalização para fornecer a mesma deteção para qualquer fonte que forneça eventos de consulta DNS. O exemplo a seguir usa analisadores ASIM internos:

_Im_Dns(responsecodename='NXDOMAIN')
| summarize count() by SrcIpAddr, bin(TimeGenerated,15m)
| where count_ > threshold
| join kind=inner (imDns(responsecodename='NXDOMAIN')) on SrcIpAddr
| extend timestamp = TimeGenerated, IPCustomEntity = SrcIpAddr

Para usar analisadores ASIM implantados no espaço de trabalho, substitua a primeira linha pelo seguinte código:

imDns(responsecodename='NXDOMAIN')

Diferenças entre analisadores internos e implantados no espaço de trabalho

As duas opções no exemplo acima são funcionalmente idênticas. A versão normalizada, independente da fonte, tem as seguintes diferenças:

  • Os _Im_Dns analisadores normalizados ou imDnsnormalizados são usados em vez do analisador Infoblox.

  • Os analisadores normalizados buscam apenas eventos de consulta DNS, portanto, não há necessidade de verificar o tipo de evento, conforme executado pelo where ProcessName =~ "named" and Log_Type =~ "client" na versão Infoblox.

  • O SrcIpAddr campo é usado em vez de Client_IP.

  • A filtragem de parâmetros do analisador é usada para ResponseCodeName, eliminando a necessidade de cláusulas explícitas where .

Nota

Além de suportar qualquer fonte de DNS normalizada, a versão normalizada é mais curta e fácil de entender.

Se o esquema ou os analisadores não oferecerem suporte a parâmetros de filtragem, as alterações serão semelhantes, exceto que as condições de filtragem serão mantidas da consulta original. Por exemplo:

let threshold = 200;
imDns
| where isnotempty(ResponseCodeName)
| where ResponseCodeName =~ "NXDOMAIN"
| summarize count() by SrcIpAddr, bin(TimeGenerated,15m)
| where count_ > threshold
| join kind=inner (imDns
    | where isnotempty(ResponseCodeName)
    | where ResponseCodeName =~ "NXDOMAIN"
    ) on SrcIpAddr
| extend timestamp = TimeGenerated, IPCustomEntity = SrcIpAddr

Veja mais informações sobre os seguintes itens usados nos exemplos anteriores, na documentação do Kusto:

Para obter mais informações sobre o KQL, consulte Visão geral da Kusto Query Language (KQL).

Outros recursos:

Próximos passos

Este artigo discute o conteúdo do ASIM (Advanced Security Information Model).

Para obter mais informações, consulte: