Справочник по схеме нормализации DNS в расширенной информационной модели безопасности (ASIM) (общедоступная предварительная версия)

Информационная модель службы доменных имен (DNS) служит для описания событий, передаваемых DNS-сервером или системой безопасности DNS, и используется в Microsoft Sentinel для реализации не зависящих от источника возможностей анализа.

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

Важно!

В настоящее время схема нормализации службы доменных имен (DNS) предоставляется в предварительной версии. Эта функция предоставляется без соглашения об уровне обслуживания, и ее не рекомендуется использовать в среде для производственных рабочих нагрузок.

Предварительная версия дополнительных условий использования Azure включают дополнительные юридические условия, применимые к функциям Azure, которые находятся в бета-версии, предварительной версии или еще не общедоступны по другим причинам.

Общее представление схемы

Схема DNS ASIM представляет действие протокола DNS. Как DNS-серверы, так и устройства, отправляющие DNS-запросы на DNS-сервер, регистрируют действия DNS. Действия протокола DNS включают в себя DNS-запросы, обновления DNS-сервера и массовую передачу данных DNS. Поскольку схема представляет действие протокола, она регулируется RFC и официально назначенными списками параметров, которые упоминаются в этой статье, когда это необходимо. Схема DNS не представляет события аудита DNS-сервера.

Наиболее важное действие, сообщаемое DNS-серверами, — это запрос DNS, для которого для поля EventType задается значение Query.

Наиболее важные поля в событии DNS:

  • DnsQuery — сообщает имя домена, для которого был выдан запрос.

  • SrcIpAddr (псевдоним IpAddr) — представляет IP-адрес, из которого был создан запрос. DNS-серверы обычно предоставляют поле SrcIpAddr, однако DNS-клиенты иногда могут предоставлять его, указывая только поле SrcHostname.

  • EventResultDetails — сообщает, был ли запрос успешным, и, если нет, почему.

  • Если доступно, DnsResponseName, поле, которое содержит ответ, предоставленный сервером для запроса. ASIM не требует синтаксического анализа ответа, и его формат может различаться в разных источниках.

    Чтобы использовать это поле в не зависящем от источника содержимом, выполните поиск по содержимому с помощью операторов has или contains.

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

Рекомендации по сбору событий службы доменных имен

Уникальность протокола службы доменных имен (DNS) заключается в том, что он может пересекать большое количество компьютеров. Кроме того, поскольку DNS использует протокол UDP, запросы и ответы не связаны друг с другом напрямую.

На следующем рисунке показан упрощенный поток обработки запросов DNS, включающий четыре сегмента. Реальный запрос может быть более сложным и затрагивать дополнительные сегменты.

Simplified DNS request flow.

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

Наиболее важным для протоколирования сегментом является отправляемый клиенту ответ. В нем предоставляются запросы доменных имен, результаты поиска и IP-адрес клиента. Несмотря на то, что многие системы DNS протоколируют только этот сегмент, также имеет смысл включать в журнал события из других сегментов. Например, в атаках с подделкой записей кэша DNS часто используются фальшивые ответы от вышестоящего сервера.

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

Например, вы можете изменить запрос, используя следующую нормализацию:

_Im_Dns | where SrcIpAddr != "127.0.0.1" and EventSubType == "response"

Средства синтаксического анализа

Дополнительные сведения о средствах синтаксического анализа ASIM см. в обзоре средств синтаксического анализа ASIM.

Средства синтаксического анализа вне коробки

Чтобы использовать средства синтаксического анализа, которые объединяют все средства синтаксического анализа ASIM вне коробки и убедитесь, что анализ выполняется во всех настроенных источниках, используйте унифицированный синтаксический анализатор _Im_Dns в качестве имени таблицы в запросе.

Список средств синтаксического анализа DNS Microsoft Sentinel содержит список средств синтаксического анализа ASIM.

Добавление собственных нормализованных средств синтаксического анализа

При реализации пользовательских средств синтаксического анализа для информационной модели Dns назовите функции KQL с помощью формата vimDns<vendor><Product>. Ознакомьтесь со статьей "Управление средствами синтаксического анализа ASIM", чтобы узнать, как добавить пользовательские средства синтаксического анализа в средство синтаксического анализа DNS.

Параметры фильтрации средств синтаксического анализа

Средства синтаксического анализа DNS поддерживают фильтрацию параметров. Хотя эти параметры являются необязательными, они могут повысить производительность запросов.

Доступны следующие параметры фильтрации:

Имя. Тип Описание
starttime datetime Фильтрация только тех запросов DNS, которые выполнялись в указанное время или после него.
endtime datetime Фильтрация только тех запросов DNS, выполнение которых завершилось в указанное время или раньше.
srcipaddr строка Фильтрация только запросов DNS с этого исходного IP-адреса.
domain_has_any dynamic/string Фильтрация только тех запросов DNS, где domain (или query) имеют любое из перечисленных доменных имен (в том числе как часть домена событий). Длина списка ограничена 10 000 элементов.
responsecodename строка Фильтрация только тех запросов DNS, для которых название кода ответа соответствует указанному значению.
Пример: NXDOMAIN
response_has_ipv4 строка Фильтрация только тех запросов DNS, в которых поле ответа содержит указанный IP-адрес или префикс IP-адреса. Используйте этот параметр, если требуется выполнять фильтрацию по одному IP-адресу или префиксу.

При этом результаты не будут возвращены для источников, которые не предоставляют ответ.
response_has_any_prefix по строкам Фильтрация только тех запросов DNS, в которых поле ответа содержит любой из перечисленных IP-адресов или префиксов IP-адреса. Префиксы должны заканчиваться на ., например: 10.0..

Используйте этот параметр, если требуется выполнять фильтрацию по списку IP-адресов или префиксов.

При этом результаты не будут возвращены для источников, которые не предоставляют ответ. Длина списка ограничена 10 000 элементов.
eventtype строка Фильтрация только по запросам DNS указанного типа. Если не указать значение, будут возвращены только запросы на поиск.

Например, чтобы выполнить фильтрацию только по запросам DNS за последний день, для которых не удалось разрешить доменное имя, используйте:

_Im_Dns (responsecodename = 'NXDOMAIN', starttime = ago(1d), endtime=now())

Чтобы выполнить фильтрацию только по запросам DNS для указанного списка доменных имен, используйте:

let torProxies=dynamic(["tor2web.org", "tor2web.com", "torlink.co"]);
_Im_Dns (domain_has_any = torProxies)

Некоторые параметры могут принимать оба списка значений типа dynamic или одно строковое значение. Чтобы передать список литералов в параметры, которые предполагают динамическое значение, явно используйте динамический литерал. Пример: dynamic(['192.168.','10.'])

Нормализованное содержимое

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

Сведения о схеме

Информационная модель DNS соответствует схеме сущности DNS OSSEM.

Дополнительные сведения см. в справочнике по параметрам DNS Администрации адресного пространства Интернет (IANA).

Общие поля ASIM

Важно!

Поля, общие для всех схем, подробно описаны в статье Общие поля ASIM.

Общие поля с конкретными рекомендациями

В следующем списке упоминаются поля, имеющие определенные рекомендации по обработке событий DNS:

Поле Class Тип Description
EventType Обязательно Enumerated Указывает на операцию, о которой сообщает эта запись.

Для записей DNS в качестве этого значения необходимо использовать код операции DNS.

Пример: Query
EventSubType Необязательно Enumerated request или response.

Поскольку для большинства источников протоколируются только ответы, это поле часто имеет значение response.
EventResultDetails Обязательно Enumerated Для событий DNS в этом поле содержится код ответа DNS.

Примечания
– Администрации адресного пространства Интернет (IANA) не определяет регистр значений, поэтому в рамках аналитики требуется выполнять нормализацию регистра.
– Если источник содержит только цифровой код отклика, а не имя кода отклика, средство синтаксического анализа должно использовать таблицу подстановки для дополнения этого значения.
– Если эта запись представляет запрос, а не ответ, задайте значение NA (Неприменимо).

Пример: NXDOMAIN
EventSchemaVersion Обязательно Строка Версия схемы, описанной здесь, — 0.1.7.
EventSchema Обязательно Строка В настоящем документе представлена версия с именем Dns.
Поля Dvc - - Для событий DNS поля устройства ссылаются на систему, которая сообщает о событии DNS.

Все общие поля

Поля, представленные в таблице ниже, являются общими для всех схем ASIM. Все указанные выше рекомендации переопределяют общие рекомендации для поля. Например, поле может быть необязательным в целом, но обязательным для конкретной схемы. Дополнительные сведения о каждом поле см. в разделе Общие поля ASIM.

Class Поля
Обязательно - EventCount
- EventStartTime
- EventEndTime
- EventType
- EventResult
- EventProduct
- EventVendor
- EventSchema
- EventSchemaVersion
- Dvc
Рекомендуемая конфигурация - EventResultDetails
- EventSeverity
- EventUid
- DvcIpAddr
- DvcHostname
- DvcDomain
- DvcDomainType
- DvcFQDN
- DvcId
- DvcIdType
- DvcAction
Необязательно - EventMessage
- EventSubType
- EventOriginalUid
- EventOriginalType
- EventOriginalSubType
- EventOriginalResultDetails
- EventOriginalSeverity
- EventProductVersion
- EventReportUrl
- EventOwner
- DvcZone
- DvcMacAddr
- DvcOs
- DvcOsVersion
- DvcOriginalAction
- DvcInterface
- AdditionalFields
- DvcDescription
- DvcScopeId
- DvcScope

Поля исходной системы

Поле Класс Тип Описание
Src Псевдоним Строка Уникальный идентификатор исходного устройства.

Это поле может быть псевдонимом полей SrcDvcId, SrcHostname или SrcIpAddr.

Пример: 192.168.12.1
SrcIpAddr Рекомендуемая конфигурация IP-адрес IP-адрес клиента, отправившего DNS-запрос. Для рекурсивного DNS-запроса это значение обычно будет устройством отчетов, и в большинстве случаев задано значение 127.0.0.1.

Пример: 192.168.12.1
SrcPortNumber Необязательно Целое число Исходный порт для запроса DNS.

Пример: 54312
IpAddr Псевдоним Псевдоним для SrcIpAddr
SrcGeoCountry Необязательно Страна/регион Страна, связанная с исходным IP-адресом.

Пример: USA
SrcGeoRegion Необязательно Регион Регион, связанный с исходным IP-адресом.

Пример: Vermont
SrcGeoCity Необязательно City Город, связанный с исходным IP-адресом.

Пример: Burlington
SrcGeoLatitude Необязательно Широта Географическая широта, связанная с исходным IP-адресом.

Пример: 44.475833
SrcGeoLongitude Необязательно Долгота Географическая долгота, связанная с исходным IP-адресом.

Пример: 73.211944
SrcRiskLevel Необязательно Целое число Связанный с источником уровень риска. Значение должно находиться в диапазоне от 0 до 100, при этом 0 означает благоприятный результат, а 100 — высокий риск.

Пример: 90
SrcOriginalRiskLevel Необязательно Целое число Уровень риска, связанный с источником, как сообщается устройством отчетов.

Пример: Suspicious
SrcHostname Рекомендуемая конфигурация Строка Имя узла исходного устройства, включая сведения о домене.

Пример: DESKTOP-1282V4D
Hostname Псевдоним Псевдоним для SrcHostname
SrcDomain Рекомендуемая конфигурация Строка Домен исходного устройства.

Пример: Contoso
SrcDomainType Условный Enumerated Тип SrcDomain, если он известен. Возможные значения включают:
- Windows (например, contoso)
- FQDN (например, microsoft.com)

Является обязательным при использовании SrcDomain.
SrcFQDN Необязательно Строка Имя узла исходного устройства, включая сведения о домене, если они доступны.

Примечание. Это поле поддерживает как традиционные форматы FQDN, так и формат домен\имя_узла Windows. Поле SrcDomainType отражает используемый формат.

Пример: Contoso\DESKTOP-1282V4D
SrcDvcId Необязательно Строка Идентификатор исходного устройства, как указано в записи.

Пример: ac7e9755-8eae-4ffc-8a02-50ed7a2216c3
SrcDvcScopeId Необязательно Строка Облачная платформа область идентификатор устройства. SrcDvcScopeId сопоставляется с идентификатором подписки в Azure и идентификатором учетной записи в AWS.
SrcDvcScope Необязательно Строка Облачная платформа область принадлежит устройству. SrcDvcScope сопоставляется с идентификатором подписки в Azure и идентификатором учетной записи в AWS.
SrcDvcIdType Условный Enumerated Тип SrcDvcId, если он известен. Возможные значения включают:
- AzureResourceId
- MDEid

Если доступно несколько идентификаторов, используйте первый из списка и сохраните остальные в полях SrcDvcAzureResourceId и SrcDvcMDEid соответственно.

Примечание. Это поле является обязательным, если используется SrcDvcId.
SrcDeviceType Необязательно Enumerated Тип исходного устройства. Возможные значения включают:
- Computer
- Mobile Device
- IOT Device
- Other
SrcDescription Необязательно Строка Текст описания, связанный с устройством. Например: Primary Domain Controller.

Поля исходного пользователя

Поле Класс Тип Описание
SrcUserId Необязательно Строка Считываемое компьютером буквенно-цифровое, уникальное представление исходного пользователя. Дополнительные сведения и альтернативные поля для дополнительных идентификаторов см. в разделе Сущность пользователя.

Пример: S-1-12-1-4141952679-1282074057-627758481-2916039507
SrcUserScope Необязательно Строка Область, например клиент Microsoft Entra, в котором определены SrcUserId и SrcUsername. или дополнительные сведения и список разрешенных значений см. в разделе UserScope в статье "Обзор схемы".
SrcUserScopeId Необязательно Строка Идентификатор область, например идентификатор каталога Microsoft Entra, в котором определены SrcUserId и SrcUsername. Дополнительные сведения и список разрешенных значений см. в разделе UserScopeId в статье "Обзор схемы".
SrcUserIdType Условный UserIdType Тип идентификатора, который хранится в поле SrcUserId. Дополнительные сведения и список допустимых значений см. в разделе UserIdType в статье Общие сведения о схеме.
SrcUsername Необязательно Имя пользователя Имя исходного пользователя, включая сведения о домене, если они доступны. Подробнее см. в статье Сущность пользователя.

Пример: AlbertE
SrcUsernameType Условный UsernameType Указывает тип имени пользователя, хранящегося в поле SrcUsername . Дополнительные сведения и список допустимых значений см. в разделе UsernameType в статье Общие сведения о схеме.

Пример: Windows
Пользователь Псевдоним Псевдоним для SrcUsername
SrcUserType Необязательно UserType Тип исходного пользователя. Дополнительные сведения и список допустимых значений см. в разделе UserType в статье Общие сведения о схеме.

Пример: Guest
SrcUserSessionId Необязательно Строка Уникальный идентификатор сеанса входа Actor.

Пример: 102pTUgC3p8RIqHvzxLCHnFlg
SrcOriginalUserType Необязательно Строка Начальный тип исходного пользователя, если он указан источником.

Поля исходного процесса

Поле Класс Тип Описание
SrcProcessName Необязательно Строка Имя файла процесса, который инициировал DNS-запрос. Это имя обычно считается именем процесса.

Пример: C:\Windows\explorer.exe
Обработать Псевдоним Псевдоним для SrcProcessName

Пример: C:\Windows\System32\rundll32.exe
SrcProcessId Необязательно Строка Идентификатор процесса (PID), который инициировал DNS-запрос.

Пример: 48610176

Примечание. Тип определяется как строка для поддержки различных систем, но в Windows и Linux это значение должно быть числовым.

Если вы используете компьютер с Windows или Linux и применяете другой тип, обязательно преобразуйте эти значения. Например, если вы использовали шестнадцатеричное значение, преобразуйте его в десятичное.
SrcProcessGuid Необязательно Строка Созданный уникальный идентификатор (GUID) процесса, который инициировал DNS-запрос.

Пример: EF3BD0BD-2B74-60C5-AF5C-010000001E00

Поля системы назначения

Поле Класс Тип Описание
Dst Псевдоним Строка Уникальный идентификатор сервера, получившего DNS-запрос.

Это поле может быть псевдонимом для полей DstDvcId, DstHostname или DstIpAddr.

Пример: 192.168.12.1
DstIpAddr Необязательно IP-адрес IP-адрес сервера, получившего DNS-запрос. Для обычного DNS-запроса это значение обычно будет устройством отчетов, и в большинстве случаев задано значение 127.0.0.1.

Пример: 127.0.0.1
DstGeoCountry Необязательно Страна/регион Страна, связанная с IP-адресом назначения. Дополнительные сведения см. в разделе Логические типы.

Пример: USA
DstGeoRegion Необязательно Регион Регион или состояние, связанное с целевым IP-адресом. Дополнительные сведения см. в разделе Логические типы.

Пример: Vermont
DstGeoCity Необязательно City Город, связанный с IP-адресом назначения. Дополнительные сведения см. в разделе Логические типы.

Пример: Burlington
DstGeoLatitude Необязательно Широта Широта географической координаты, связанная с IP-адресом назначения. Дополнительные сведения см. в разделе Логические типы.

Пример: 44.475833
DstGeoLongitude Необязательно Долгота Долгота географической координаты, связанная с IP-адресом назначения. Дополнительные сведения см. в разделе Логические типы.

Пример: 73.211944
DstRiskLevel Необязательно Целое число Связанный с назначением уровень риска. Значение должно быть настроено в диапазоне от 0 до 100, где 0 означает благоприятный результат, а 100 — высокий риск.

Пример: 90
DstOriginalRiskLevel Необязательно Целое число Уровень риска, связанный с назначением, как сообщается устройством отчетов.

Пример: Malicious
DstPortNumber Необязательно Целое число Номер порта назначения.

Пример: 53
DstHostname Необязательно Строка Имя узла устройства назначения, включая сведения о домене. Если имя устройства недоступно, сохраните в этом поле соответствующий IP-адрес.

Пример: DESKTOP-1282V4D

Примечание: Это значение обязательно, если указано поле DstIpAddr.
DstDomain Необязательно Строка Домен устройства назначения.

Пример: Contoso
DstDomainType Условный Enumerated Тип DstDomain, если он известен. Возможные значения включают:
- Windows (contoso\mypc)
- FQDN (learn.microsoft.com)

Является обязательным при использовании DstDomain.
DstFQDN Необязательно Строка Имя узла устройства назначения, включая сведения о домене, если они доступны.

Пример: Contoso\DESKTOP-1282V4D

Примечание. Это поле поддерживает как традиционные форматы FQDN, так и формат домен\имя_узла Windows. DstDomainType отражает используемый формат.
DstDvcId Необязательно Строка Идентификатор устройства назначения, как указано в записи.

Пример: ac7e9755-8eae-4ffc-8a02-50ed7a2216c3
DstDvcScopeId Необязательно Строка Облачная платформа область идентификатор устройства. DstDvcScopeId сопоставляется с идентификатором подписки в Azure и идентификатором учетной записи в AWS.
DstDvcScope Необязательно Строка Облачная платформа область принадлежит устройству. DstDvcScope сопоставляется с идентификатором подписки в Azure и идентификатором учетной записи в AWS.
DstDvcIdType Условный Enumerated Тип DstDvcId, если он известен. Возможные значения включают:
- AzureResourceId
- MDEidIf

Если доступно несколько идентификаторов, используйте первый из списка выше и сохраните остальные в полях DstDvcAzureResourceId или DstDvcMDEid соответственно.

Является обязательным при использовании DstDeviceId.
DstDeviceType Необязательно Enumerated Тип устройства назначения. Возможные значения включают:
- Computer
- Mobile Device
- IOT Device
- Other
DstDescription Необязательно Строка Текст описания, связанный с устройством. Например: Primary Domain Controller.

Определенные поля DNS

Поле Класс Тип Описание
DnsQuery Обязательно Строка Домен, который пытается разрешить запрос.

Примечания
– Некоторые источники отправляют допустимые запросы FQDN в другом формате. Например, в самом протоколе DNS в конце запроса присутствует точка (.), которую нужно удалить.
– Хотя протокол DNS ограничивает тип значения в этом поле именем FQDN, большинство DNS-серверов разрешают любое значение, поэтому это поле не ограничивается только значениями FQDN. Наиболее примечательно то, что недопустимые значения FQDN в поле запроса могут использоваться при атаках через DNS-туннелирование.
– Хотя протокол DNS позволяет выполнять несколько операций запроса в рамках одного запроса, этот сценарий используется крайне редко. Если запрос содержит несколько операций запроса, сохраните в этом поле первый из них, а затем, при необходимости, сохраните остальные в поле AdditionalFields.

Пример: www.malicious.com
Domain Псевдоним Псевдоним для DnsQuery.
DnsQueryType Необязательно Целое число Коды типов записей ресурсов DNS.

Пример: 28
DnsQueryTypeName Рекомендуемая конфигурация Enumerated Названия типов записей ресурсов DNS.

Примечания
– Администрации адресного пространства Интернет (IANA) не определяет регистр значений, поэтому при необходимости в рамках аналитики выполните нормализацию регистра.
– Значение ANY поддерживается для кода отклика 255.
– Значение TYPExxxx поддерживается для несопоставленных кодов ответа, где xxxxобозначает числовое значение кода отклика, получаемое от сервера BIND DNS.
– Если источник предоставляет только цифровой код типа запроса, а не его имя, средство синтаксического анализа должно использовать таблицу подстановки для дополнения этого значения.

Пример: AAAA
DnsResponseName Необязательно Строка Содержимое ответа в том виде, в котором оно включено в запись.

Данные ответа DNS не согласованы между различными устройствами отчетов, сложны для синтаксического анализа и имеют меньше значений для не зависящей от источника аналитики. Поэтому для информационной модели не требуются синтаксический анализ и нормализация, а в Microsoft Sentinel используется вспомогательная функция для предоставления сведений об ответе. Дополнительные сведения см. в статье Обработка ответа DNS.
DnsResponseCodeName Псевдоним Псевдоним для EventResultDetails
DnsResponseCode Необязательно Целое число Цифровой код ответа DNS.

Пример: 3
TransactionIdHex Рекомендуемая конфигурация Строка Уникальный идентификатор запроса DNS, назначенный DNS-клиентом в шестнадцатеричном формате. Обратите внимание, что это значение является частью протокола DNS и оно отличается от DnsSessionId, идентификатора сеанса сетевого уровня, обычно назначенного устройством создания отчетов.
NetworkProtocol Необязательно Enumerated Транспортный протокол, используемый событием разрешения в сети. Может иметь значение UDP или TCP. В большинстве случаев для DNS используется значение UDP.

Пример: UDP
NetworkProtocolVersion Необязательно Enumerated Версия NetworkProtocol. При его использовании для различения версии IP используйте значения IPv4 и IPv6.
DnsQueryClass Необязательно Целое число Идентификатор класса DNS.

На практике используется только класс IN (идентификатор 1), поэтому это поле не имеет смысла.
DnsQueryClassName Необязательно Строка Имя класса DNS.

На практике используется только класс IN (идентификатор 1), поэтому это поле не имеет смысла.

Пример: IN
DnsFlags Необязательно Строка Поле флагов, предоставленное передающим устройством. Если сведения о флагах предоставляются в нескольких полях, их следует объединить с использованием запятой в качестве разделителя.

Поскольку флаги DNS довольно сложно анализировать и они реже используются в аналитике, анализ и нормализация необязательны. Microsoft Sentinel может использовать вспомогательную функцию для предоставления сведений о флагах. Дополнительные сведения см. в статье Обработка ответа DNS.

Пример: ["DR"]
DnsNetworkDuration Необязательно Целое число Время в миллисекундах, необходимое для завершения запроса DNS.

Пример: 1500
Длительность Псевдоним Псевдоним для DnsNetworkDuration
DnsFlagsAuthenticated Необязательно Логическое значение Флаг DNS AD, относящийся к DNSSEC, указывает в ответе, что все данные, включенные в разделы ответа и полномочий, были проверены сервером в соответствии с политикой этого сервера. Дополнительные сведения см. в Разделе 6.1 RFC 3655.
DnsFlagsAuthoritative Необязательно Логическое значение Флаг DNS AA указывает, является ли ответ сервера полномочным
DnsFlagsCheckingDisabled Необязательно Логическое значение Флаг DNS CD, связанный с DNSSEC, указывает в запросе, что непроверенные данные приемлемы для системы, отправляющей запрос. Дополнительные сведения см. в Разделе 6.1 RFC 3655.
DnsFlagsRecursionAvailable Необязательно Логическое значение Флаг DNS RA указывает в ответе, что данный сервер поддерживает рекурсивные запросы.
DnsFlagsRecursionDesired Необязательно Логическое значение Флаг DNS RD указывает в запросе, что клиент хочет, чтобы сервер использовал рекурсивные запросы.
DnsFlagsTruncated Необязательно Логическое значение Флаг DNS TC указывает на то, что ответ был усечен, поскольку превысил максимальный размер ответа.
DnsFlagsZ Необязательно Логическое значение Флаг DNS Z — это устаревший флаг DNS, о котором могут сообщать старые системы DNS.
DnsSessionId Необязательно строка Идентификатор сеанса DNS, сообщаемый устройством составления отчетов. Это значение отличается от TransactionIdHex, уникального идентификатора запроса DNS, присвоенного DNS-клиентом.

Пример: EB4BFA28-2EAD-4EF7-BC8A-51DF4FDF5B55
SessionId Псевдоним Псевдоним для DnsSessionId
DnsResponseIpCountry Необязательно Страна/регион Страна, связанная с одним из IP-адресов в ответе DNS. Дополнительные сведения см. в разделе Логические типы.

Пример: USA
DnsResponseIpRegion Необязательно Регион Регион или состояние, связанное с одним из IP-адресов в ответе DNS. Дополнительные сведения см. в разделе Логические типы.

Пример: Vermont
DnsResponseIpCity Необязательно City Город, связанный с одним из IP-адресов в ответе DNS. Дополнительные сведения см. в разделе Логические типы.

Пример: Burlington
DnsResponseIpLatitude Необязательно Широта Широта географической координаты, связанной с одним из IP-адресов в ответе DNS. Дополнительные сведения см. в разделе Логические типы.

Пример: 44.475833
DnsResponseIpLongitude Необязательно Долгота Долгота географической координаты, связанной с одним из IP-адресов в ответе DNS. Дополнительные сведения см. в разделе Логические типы.

Пример: 73.211944

Поля проверки

Следующие поля используются для представления проверки, которую выполняет устройство безопасности DNS. Поля, связанные с угрозами, представляют отдельную угрозу, связанную с исходным адресом, целевым адресом, одним из IP-адресов в ответе или доменом запроса DNS. Если несколько угроз были определены как одна угроза, сведения о дополнительных IP-адресах могут сохраняться в поле AdditionalFields.

Поле Класс Тип Описание
UrlCategory Необязательно Строка Источник событий DNS также может искать категорию запрошенных доменов. Это поле называется UrlCategory в соответствии со схемой сети Microsoft Sentinel.

В качестве псевдонима в соответствии со схемой DNS добавляется поле DomainCategory.

Пример: Educational \\ Phishing
DomainCategory Псевдоним Псевдоним для UrlCategory.
NetworkRuleName Необязательно Строка Имя или идентификатор правила, который определил угрозу.

Пример: AnyAnyDrop
NetworkRuleNumber Необязательно Целое число Число правил, определяющих угрозу.

Пример: 23
Правило Псевдоним Строка Значение NetworkRuleName или значение NetworkRuleNumber. Если используется значение NetworkRuleNumber, тип должен быть преобразован в строку.
ThreatId Необязательно Строка Идентификатор угрозы или вредоносной программы, определенной в сетевом сеансе.

Пример: Tr.124
ThreatCategory Необязательно Строка Если источник событий DNS также предоставляет сведения о безопасности для DNS, может вычисляться событие DNS. Например, может выполняться поиск IP-адреса или домена в базе данных аналитики угроз, а также назначаться категория угрозы для домена или IP-адреса.
ThreatIpAddr Необязательно IP-адрес IP-адрес, для которого была обнаружена угроза. Поле ThreatField содержит имя поля, которое представляет ThreatIpAddr. Если угроза определена в поле Domain, это поле должно быть пустым.
ThreatField Условный Enumerated Поле, для которого была обнаружена угроза. Имеет значение SrcIpAddr, DstIpAddr, Domain или DnsResponseName.
ThreatName Необязательно Строка Имя обнаруженной угрозы, полученное от устройства, сообщившего о ней.
ThreatConfidence Необязательно Целое число Уровень достоверности для обнаруженной угрозы, нормализованный до диапазона значений от 0 до 100.
ThreatOriginalConfidence Необязательно Строка Исходный уровень достоверности для обнаруженной угрозы, полученный от устройства, сообщившего о ней.
ThreatRiskLevel Необязательно Целое число Уровень риска, связанный с обнаруженной угрозой, нормализованный до диапазона значения от 0 до 100.
ThreatOriginalRiskLevel Необязательно Строка Исходный уровень риска для обнаруженной угрозы, полученный от устройства, сообщившего о ней.
ThreatIsActive Необязательно Логическое значение Значение true, если обнаруженная угроза считается активной.
ThreatFirstReportedTime Необязательно datetime Время первого обнаружения угрозы для этого IP-адреса или домена.
ThreatLastReportedTime Необязательно datetime Время последнего обнаружения угрозы для этого IP-адреса или домена.

Устаревшие псевдонимы и поля

Следующие поля представляют собой псевдонимы, которые поддерживаются для обеспечения обратной совместимости. Они были удалены из схемы 31 декабря 2021 года.

  • Query (псевдоним для DnsQuery)
  • QueryType (псевдоним для DnsQueryType)
  • QueryTypeName (псевдоним для DnsQueryTypeName)
  • ResponseName (псевдоним для DnsReasponseName)
  • ResponseCodeName (псевдоним для DnsResponseCodeName)
  • ResponseCode (псевдоним для DnsResponseCode)
  • QueryClass (псевдоним для DnsQueryClass)
  • QueryClassName (псевдоним для DnsQueryClassName)
  • Flags (псевдоним для DnsFlags)
  • SrcUserDomain

Обновления схемы

Ниже приведены изменения в версии 0.1.2 схемы:

  • Добавлено поле EventSchema.
  • Добавлено выделенное поле флагов, которое дополняет комбинированное поле Флаги: DnsFlagsAuthoritative, DnsFlagsCheckingDisabled, DnsFlagsRecursionAvailable, DnsFlagsRecursionDesired, DnsFlagsTruncated и DnsFlagsZ.

Ниже приведены изменения в версии 0.1.3 схемы:

  • Теперь схема явно документирует поля Src*, Dst*, Process* и User*.
  • Добавлены дополнительные поля Dvc* для сопоставления с последним определением общих полей.
  • Добавлены Src и Dst в качестве псевдонимов к основному идентификатору для систем источника и назначения.
  • Как псевдонимы для него добавлены необязательные DnsNetworkDuration и Duration.
  • Добавлены необязательные поля "Географическое расположение" и "Уровень риска".

Ниже приведены изменения в версии схемы 0.1.4:

  • Добавлены необязательные поля ThreatIpAddr, ThreatField, ThreatOriginalConfidenceThreatConfidenceThreatOriginalRiskLevelThreatName, ThreatIsActiveи . ThreatFirstReportedTimeThreatLastReportedTime

Изменения в схеме версии 0.1.5:

  • Добавлены поля SrcUserScope, SrcUserSessionId, DstDvcScopeIdSrcDvcScopeDstDvcScopeSrcDvcScopeId, DvcScopeIdи .DvcScope

Изменения в схеме версии 0.1.6:

  • Добавлены поля DnsResponseIpCountry, DnsResponseIpRegion, DnsResponseIpCity, DnsResponseIpLatitude и DnsResponseIpLongitude.

Изменения в схеме версии 0.1.7:

  • Добавлены поля SrcDescription, SrcOriginalRiskLevel, NetworkProtocolVersionDstOriginalRiskLevelDstDescriptionRuleRuleNameSrcUserScopeIdRuleNumberи .ThreatId

Несоответствия, связанные с источником

Цель нормализации — обеспечение того, чтобы все источники предоставляли согласованную телеметрию. Источник, который не предоставляет требуемые данные телеметрии, например обязательные поля схемы, невозможно нормализовать. Однако нормализацию можно выполнить для источников, которые обычно предоставляют всю необходимую телеметрию, даже если при этом имеются некоторые несоответствия. Такие несоответствия могут повлиять на полноту результатов запроса.

В следующей таблице перечислены известные несоответствия:

Оригинал Несоответствия
DNS-сервер Microsoft, данные которого были собраны с помощью соединителя DNS и агента Log Analytics Соединитель не предоставляет обязательное поле DnsQuery для исходного события с идентификатором 264 (ответ на динамическое обновление). Данные доступны в источнике, однако соединитель их не пересылает.
Corelight Zeek Corelight Zeek не может предоставлять обязательное поле DnsQuery. Такое поведение наблюдалось в некоторых случаях, когда в качестве названия кода ответа DNS задавалось значение NXDOMAIN.

Обработка ответа DNS

В большинстве случаев протоколируемые события DNS не включают сведения об ответе, которые иногда могут быть очень подробными. Если ваша запись содержит больше сведений об ответе, используйте для их сохранения поле ResponseName ответа.

Также можно реализовать дополнительную функцию KQL с именем _imDNS<vendor>Response_, которая получает неразобранный ответ и возвращает динамическое значение, имеющее следующую структуру:

[
    {
        "part": "answer"
        "query": "yahoo.com."
        "TTL": 1782
        "Class": "IN"
        "Type": "A"
        "Response": "74.6.231.21"
    }
    {
        "part": "authority"
        "query": "yahoo.com."
        "TTL": 113066
        "Class": "IN"
        "Type": "NS"
        "Response": "ns5.yahoo.com"
    }
    ...
]

Поля в каждом словаре этого динамического значения соответствуют полям в каждом ответе DNS. Запись part должна включать answer, authority или additional в соответствии с тем, к какой части ответа относится словарь.

Совет

Чтобы обеспечить оптимальную производительность, вызывайте функцию imDNS<vendor>Response только при необходимости и только после выполнения первоначальной фильтрации.

Обработка флагов DNS

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

Также можно реализовать дополнительную функцию KQL с именем _imDNS<vendor>Flags_, которая получает непроанализированный ответ или выделенные поля флагов и возвращает динамический список логических значений, представляющих каждый флаг, в следующем порядке:

  • Проверка подлинности выполнена (AD)
  • Заслуживает доверия (AA)
  • Проверка отключена (CD)
  • Доступна рекурсия (RA)
  • Рекурсия желательна (RD)
  • Усечено (TC)
  • Z

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

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