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