Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Нормализованное содержимое безопасности в Microsoft Sentinel включает правила аналитики, запросы охоты и книги, которые работают с унифицировывающим анализатором нормализации.
Вы можете найти нормализованное, стандартное содержимое в Microsoft Sentinel коллекциях и решениях, создать собственное нормализованное содержимое или изменить существующее пользовательское содержимое для использования нормализованных данных.
В этой статье объясняется, как преобразовать существующие правила аналитики Microsoft Sentinel для использования нормализованных данных с помощью расширенной информационной модели безопасности (ASIM).
Чтобы понять, как нормализованное содержимое вписывается в архитектуру ASIM, см. схему архитектуры ASIM.
Изменение пользовательского содержимого для использования нормализации
Чтобы включить нормализацию пользовательского содержимого Microsoft Sentinel, выполните следующие действия:
Измените запросы, чтобы использовать все объединяющие средства синтаксического анализа , относящиеся к запросу.
Измените имена полей в запросе, чтобы использовать имена полей нормализованной схемы .
Если применимо, измените условия, чтобы использовать нормализованные значения полей в запросе.
Пример нормализации для правил аналитики
Например, рассмотрим правило аналитики редкого клиента, наблюдаемого с высоким числом обратных запросов 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
Нормализованная версия, не зависящая от источника, имеет следующие отличия:
imDnsВместо_Im_Dnsсредства синтаксического анализа Infoblox используются нормализованные средства синтаксического анализа.Нормализованные средства синтаксического анализа извлекает только события запроса 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
Дополнительные сведения о следующих элементах, используемых в предыдущих примерах, см. в документации kusto:
- оператор let
- оператор where
- Оператор extend
- Оператор join
- Оператор summarize
- Функция isnotempty()
- Агрегатная функция count()
Дополнительные сведения о KQL см. в статье Общие сведения о язык запросов Kusto (KQL).
Другие ресурсы
Связанные материалы
- Обзор расширенной информационной модели безопасности (ASIM)
- Средства синтаксического анализа расширенной информационной модели безопасности (ASIM)
- Схемы расширенной информационной модели безопасности (ASIM)
- Содержимое расширенной информационной модели безопасности (ASIM)
- Вебинар глубокого погружения по Microsoft Sentinel нормализации синтаксического анализа и нормализованного содержимого