Поделиться через


Изменение содержимого для использования расширенной информационной модели безопасности (ASIM) (общедоступная предварительная версия)

Нормализованное содержимое безопасности в Microsoft Sentinel включает правила аналитики, запросы охоты и книги, работающие с унифицирующими средствами синтаксического анализа для нормализации.

Вы можете найти нормализованное готовое содержимое в коллекциях и решениях Microsoft Sentinel, создать собственное нормализованное содержимое или изменить существующее пользовательское содержимое для использования нормализованных данных.

В этой статье объясняется, как преобразовать существующие правила анализа Microsoft Sentinel для использования нормализованных данных с расширенной информационной моделью безопасности (ASIM).

Чтобы понять, как нормализованное содержимое вписывается в архитектуру ASIM, изучите схему архитектуры ASIM.

Важно!

ASIM сейчас находится на стадии ПРЕДВАРИТЕЛЬНОЙ ВЕРСИИ. Предварительная версия дополнительных условий использования Azure включают дополнительные юридические условия, применимые к функциям Azure, которые находятся в бета-версии, предварительной версии или еще не общедоступны по другим причинам.

Изменение пользовательского содержимого для использования нормализации

Чтобы разрешить пользовательскому содержимому Microsoft Sentinel применять нормализацию:

Пример нормализации для правил аналитики

Например, рассмотрим правило аналитики DNS Редкий клиент с высоким уровнем обратного просмотра DNS, которое обрабатывает события DNS, отправляемые 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

Следующий код не зависит от источника и использует нормализацию для одинакового обнаружения данных из любого источника, из которого поступают события запроса DNS. В следующем примере используются встроенные средства синтаксического анализа ASIM:

_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

Чтобы использовать развернутые в рабочей области средства синтаксического анализа ASIM, замените первую строку следующим кодом:

imDns(responsecodename='NXDOMAIN')

Различия между встроенными средствами синтаксического анализа и средствами, развернутыми в рабочей области

Два варианта в приведенном выше примере функционально идентичны. Нормализованная версия, не зависящая от источника, имеет следующие отличия:

  • Вместо средства синтаксического анализа Infoblox используются нормализованные средства синтаксического анализа _Im_Dns или imDns.

  • Нормализованные средства синтаксического анализа извлекают только события запроса DNS, поэтому нет необходимости проверять тип события, как это делает where ProcessName =~ "named" and Log_Type =~ "client" в версии Infoblox.

  • Поле SrcIpAddr используется вместо Client_IP.

  • Фильтрация параметров средства синтаксического анализа используется для ResponseCodeName, устраняя необходимость в явных предложениях where.

Примечание

Помимо поддержки любого нормализованного источника DNS, нормализованная версия короче и проще для понимания.

Если схема или средства синтаксического анализа не поддерживают параметры фильтрации, то изменения схожи, за исключением того, что условия фильтрации сохраняются в исходном запросе. Пример:

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

Дальнейшие действия

В этой статье рассматривается содержимое модели расширенной информации о безопасности (ASIM).

Дополнительные сведения см. в разделе: