Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Информационная модель DNS используется для описания событий, сообщаемых DNS-сервером или системой безопасности DNS, и используется Microsoft Sentinel для включения аналитики, не зависящей от источника.
Дополнительные сведения см. в разделе Нормализация и расширенная информационная модель безопасности (ASIM).
Обзор схемы
Схема 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 — это уникальный протокол, который может пересекать большое количество компьютеров. Кроме того, так как DNS использует UDP, запросы и ответы не связаны друг с другом напрямую.
На следующем рисунке показан упрощенный поток запросов DNS, включающий четыре сегмента. Реальный запрос может быть более сложным, с большим числом сегментов.
Так как сегменты запросов и ответов не связаны друг с другом напрямую в потоке запросов 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>. Сведения о том, как добавить пользовательские средства синтаксического анализа в средство синтаксического анализа DNS, см. в статье Управление средствами синтаксического анализа ASIM .
Фильтрация параметров средства синтаксического анализа
Средства синтаксического анализа DNS поддерживают параметры фильтрации. Хотя эти параметры являются необязательными, они могут повысить производительность запроса.
Доступны следующие параметры фильтрации:
| Имя | Тип | Описание |
|---|---|---|
| Starttime | datetime | Отфильтруйте только DNS-запросы, которые были запущены в это время или позже. Этот параметр фильтрует TimeGenerated поле, которое является стандартным конструктором для времени события, независимо от сопоставления полей EventStartTime и EventEndTime специфичного для средства синтаксического анализа. |
| время окончания | datetime | Отфильтруйте только DNS-запросы, которые завершили выполнение в это время или раньше. Этот параметр фильтрует TimeGenerated поле, которое является стандартным конструктором для времени события, независимо от сопоставления полей EventStartTime и EventEndTime специфичного для средства синтаксического анализа. |
| srcipaddr | string | Отфильтруйте только DNS-запросы с этого исходного IP-адреса. |
| domain_has_any | dynamic/string | Фильтруйте только DNS-запросы, если domain (или query) содержит любое из перечисленных доменных имен, в том числе как часть домена события. Длина списка ограничена 10 000 элементов. |
| responsecodename | string | Фильтруйте только DNS-запросы, для которых имя кода ответа соответствует предоставленному значению. Пример: NXDOMAIN |
| response_has_ipv4 | string | Фильтрация только DNS-запросов, в которых поле ответа содержит указанный IP-адрес или префикс IP-адреса. Используйте этот параметр, если требуется выполнить фильтрацию по одному IP-адресу или префиксу. Результаты не возвращаются для источников, которые не предоставляют ответ. |
| response_has_any_prefix | Динамический | Фильтрация только DNS-запросов, в которых поле ответа содержит любой из перечисленных IP-адресов или префиксов IP-адресов. Префиксы должны заканчиваться .на , например: 10.0.. Используйте этот параметр, если требуется выполнить фильтрацию по списку IP-адресов или префиксов. Результаты не возвращаются для источников, которые не предоставляют ответ. Длина списка ограничена 10 000 элементов. |
| Eventtype | string | Фильтровать только 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:
| Field | Class | Тип | Описание |
|---|---|---|---|
| EventType | Обязательный | Перечисленных | Указывает операцию, сообщаемую записью. Для записей DNS это значение будет иметь код операции DNS. Пример: Query |
| EventSubType | Необязательный | Перечисленных | Возможные значения: request или response. Для большинства источников регистрируются только ответы, поэтому значение часто является ответом. |
| EventResultDetails | Обязательный | Перечисленных | Для событий DNS это поле содержит код ответа DNS. Примечания. — IANA не определяет регистр для значений, поэтому аналитика должна нормализовать случай. — Если источник предоставляет только числовый код ответа, а не имя кода ответа, средство синтаксического анализа должно включать таблицу подстановки для обогащения этим значением. — Если эта запись представляет запрос, а не ответ, задайте для параметра значение NA. Пример: NXDOMAIN |
| EventSchemaVersion | Обязательный | SchemaVersion (String) | Описанная здесь версия схемы — 0.1.7. |
| EventSchema | Обязательный | Перечисленных | Имя схемы, описанной здесь, — Dns. |
| Поля Dvc | - | - | Для событий DNS поля устройства относятся к системе, которая сообщает о событии DNS. |
Все общие поля
Поля, отображаемые в таблице ниже, являются общими для всех схем ASIM. Любое указанное выше руководство переопределяет общие рекомендации для поля. Например, поле может быть необязательным в целом, но обязательным для конкретной схемы. Дополнительные сведения о каждом поле см. в статье Общие поля ASIM .
| Class | Fields |
|---|---|
| Обязательный |
-
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 - Дополнительные поля - DvcDescription - DvcScopeId - DvcScope |
Поля исходной системы
| Поле | Класс | Тип | Описание |
|---|---|---|---|
| Src | Alias | String | Уникальный идентификатор исходного устройства. Это поле может быть псевдонимом полей SrcDvcId, SrcHostname или SrcIpAddr . Пример: 192.168.12.1 |
| SrcIpAddr | Рекомендуемый | IP-адрес | IP-адрес клиента, отправив dns-запрос. Для рекурсивного DNS-запроса это значение обычно будет устройством отчетов, и в большинстве случаев имеет значение 127.0.0.1. Пример: 192.168.12.1 |
| SrcPortNumber | Необязательный | Integer | Исходный порт DNS-запроса. Пример: 54312 |
| IpAddr | Alias | Псевдоним для SrcIpAddr | |
| SrcGeoCountry | Необязательный | Страна | Страна или регион, связанные с исходным IP-адресом. Пример: USA |
| SrcGeoRegion | Необязательный | Region | Регион, связанный с исходным IP-адресом. Пример: Vermont |
| SrcGeoCity | Необязательный | Город | Город, связанный с исходным IP-адресом. Пример: Burlington |
| SrcGeoLatitude | Необязательный | Latitude | Широта географической координаты, связанной с исходным IP-адресом. Пример: 44.475833 |
| SrcGeoLongitude | Необязательный | Longitude | Долгота географической координаты, связанной с исходным IP-адресом. Пример: 73.211944 |
| SrcRiskLevel | Необязательный | Integer | Уровень риска, связанный с источником. Значение должно быть скорректировано в диапазоне 0 до 100, с 0 для доброкачественных и 100 для высокого риска.Пример: 90 |
| SrcOriginalRiskLevel | Необязательный | String | Уровень риска, связанный с источником, о чем сообщает устройство отчетности. Пример: Suspicious |
| SrcHostname | Рекомендуемый | Hostname (String) | Имя узла исходного устройства, за исключением сведений о домене. Пример: DESKTOP-1282V4D |
| Hostname (Имя узла) | Alias | Псевдоним для SrcHostname | |
| SrcDomain | Рекомендуемый | Домен (строка) | Домен исходного устройства. Пример: Contoso |
| SrcDomainType | Условного | Перечисленных | Тип SrcDomain, если он известен. Возможные значения: - Windows (например, : contoso)- FQDN (например, : microsoft.com)Требуется, если используется SrcDomain . |
| SrcFQDN | Необязательный | Полное доменное имя (строка) | Имя узла исходного устройства, включая сведения о домене, если они доступны. Примечание. Это поле поддерживает как традиционный формат полного доменного имени, так и формат домен\имя узла Windows. Поле SrcDomainType отражает используемый формат. Пример: Contoso\DESKTOP-1282V4D |
| SrcDvcId | Необязательный | String | Идентификатор исходного устройства, как указано в записи. Пример: ac7e9755-8eae-4ffc-8a02-50ed7a2216c3 |
| SrcDvcScopeId | Необязательный | String | Идентификатор область облачной платформы, к которому принадлежит устройство. SrcDvcScopeId сопоставляется с идентификатором подписки на Azure и идентификатором учетной записи в AWS. |
| SrcDvcScope | Необязательный | String | Облачная платформа область, к которой принадлежит устройство. SrcDvcScope сопоставляется с идентификатором подписки на Azure и идентификатором учетной записи в AWS. |
| SrcDvcIdType | Условного | Перечисленных | Тип SrcDvcId, если он известен. Возможные значения: - AzureResourceId- MDEidЕсли доступно несколько идентификаторов, используйте первый из списка и сохраните остальные в SrcDvcAzureResourceId и SrcDvcMDEid соответственно. Примечание. Это поле является обязательным, если используется SrcDvcId . |
| SrcDeviceType | Необязательный | Перечисленных | Тип исходного устройства. Возможные значения: - Computer- Mobile Device- IOT Device- Other |
| SrcDescription | Необязательный | String | Описательный текст, связанный с устройством. Пример: Primary Domain Controller. |
Поля исходного пользователя
| Поле | Класс | Тип | Описание |
|---|---|---|---|
| SrcUserId | Необязательный | String | Машиночитаемое, буквенно-цифровое, уникальное представление исходного пользователя. Дополнительные сведения и альтернативные поля для дополнительных идентификаторов см. в разделе Сущность пользователя. Пример: S-1-12-1-4141952679-1282074057-627758481-2916039507 |
| SrcUserScope | Необязательный | String | Область, например клиент Microsoft Entra, в котором определены SrcUserId и SrcUsername. дополнительные сведения и список допустимых значений см. в статье UserScope в статье Общие сведения о схеме. |
| SrcUserScopeId | Необязательный | String | Идентификатор область, например Microsoft Entra идентификатор каталога, в котором определены SrcUserId и SrcUsername. Дополнительные сведения и список допустимых значений см. в разделе UserScopeIdстатьи Общие сведения о схеме. |
| SrcUserIdType | Условного | UserIdType | Тип идентификатора, хранящегося в поле SrcUserId . Дополнительные сведения и список допустимых значений см. в разделе UserIdTypeстатьи Общие сведения о схеме. |
| SrcUsername | Необязательный | Имя пользователя (строка) | Имя пользователя источника, включая сведения о домене, если они доступны. Дополнительные сведения см. в разделе Сущность пользователя. Пример: AlbertE |
| SrcUsernameType | Условного | UsernameType | Указывает тип имени пользователя, хранящегося в поле SrcUsername . Дополнительные сведения и список допустимых значений см. в статье UsernameType статьи Общие сведения о схеме. Пример: Windows |
| Пользователя | Alias | Псевдоним для SrcUsername | |
| SrcUserType | Необязательный | UserType | Тип исходного пользователя. Дополнительные сведения и список допустимых значений см. в статье UserType статьи Общие сведения о схеме. Пример: Guest |
| SrcUserSessionId | Необязательный | String | Уникальный идентификатор сеанса входа субъекта. Пример: 102pTUgC3p8RIqHvzxLCHnFlg |
| SrcOriginalUserType | Необязательный | String | Исходный тип пользователя источника, если он предоставлен источником. |
Поля исходного процесса
| Поле | Класс | Тип | Описание |
|---|---|---|---|
| SrcProcessName | Необязательный | String | Имя файла процесса, который инициировал DNS-запрос. Это имя обычно считается именем процесса. Пример: C:\Windows\explorer.exe |
| Процесс | Alias | Псевдоним для SrcProcessName Пример: C:\Windows\System32\rundll32.exe |
|
| SrcProcessId | Необязательный | String | Идентификатор процесса (PID) процесса, который инициировал DNS-запрос. Пример: 48610176 Примечание. Тип определяется как строка для поддержки различных систем, но в Windows и Linux это значение должно быть числовым. Если вы используете компьютер с Windows или Linux и используете другой тип, обязательно преобразуйте значения. Например, если вы использовали шестнадцатеричное значение, преобразуйте его в десятичное значение. |
| SrcProcessGuid | Необязательный | GUID (строка) | Созданный уникальный идентификатор (GUID) процесса, который инициировал DNS-запрос. Пример: EF3BD0BD-2B74-60C5-AF5C-010000001E00 |
Поля системы назначения
| Поле | Класс | Тип | Описание |
|---|---|---|---|
| Dst | Alias | String | Уникальный идентификатор сервера, который получил 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 | Необязательный | Region | Регион или состояние, связанное с IP-адресом назначения. Дополнительные сведения см. в разделе Логические типы. Пример: Vermont |
| DstGeoCity | Необязательный | Город | Город, связанный с IP-адресом назначения. Дополнительные сведения см. в разделе Логические типы. Пример: Burlington |
| DstGeoLatitude | Необязательный | Latitude | Широта географической координаты, связанной с IP-адресом назначения. Дополнительные сведения см. в разделе Логические типы. Пример: 44.475833 |
| DstGeoLongitude | Необязательный | Longitude | Долгота географической координаты, связанной с IP-адресом назначения. Дополнительные сведения см. в разделе Логические типы. Пример: 73.211944 |
| DstRiskLevel | Необязательный | Integer | Уровень риска, связанный с назначением. Значение должно быть скорректировано в диапазоне от 0 до 100, который 0 является безопасным, а 100 — высоким риском. Пример: 90 |
| DstOriginalRiskLevel | Необязательный | String | Уровень риска, связанный с назначением, о чем сообщает устройство отчетности. Пример: Malicious |
| DstPortNumber | Необязательный | Integer | Номер порта назначения. Пример: 53 |
| DstHostname | Необязательный | Hostname (String) | Имя узла конечного устройства, за исключением сведений о домене. Если имя устройства недоступно, сохраните соответствующий IP-адрес в этом поле. Пример: DESKTOP-1282V4DПримечание. Это значение является обязательным, если указано значение DstIpAddr . |
| DstDomain | Необязательный | Домен (строка) | Домен целевого устройства. Пример: Contoso |
| DstDomainType | Условного | Перечисленных | Тип DstDomain, если он известен. Возможные значения: - Windows (contoso\mypc)- FQDN (learn.microsoft.com)Требуется, если используется DstDomain . |
| DstFQDN | Необязательный | Полное доменное имя (строка) | Имя узла конечного устройства, включая сведения о домене, если они доступны. Пример: Contoso\DESKTOP-1282V4D Примечание. Это поле поддерживает как традиционный формат полного доменного имени, так и формат домен\имя узла Windows. DstDomainType отражает используемый формат. |
| DstDvcId | Необязательный | String | Идентификатор целевого устройства, как указано в записи. Пример: ac7e9755-8eae-4ffc-8a02-50ed7a2216c3 |
| DstDvcScopeId | Необязательный | String | Идентификатор область облачной платформы, к которому принадлежит устройство. DstDvcScopeId сопоставляется с идентификатором подписки на Azure и идентификатором учетной записи в AWS. |
| DstDvcScope | Необязательный | String | Облачная платформа область, к которой принадлежит устройство. Сопоставление DstDvcScope с идентификатором подписки на Azure и идентификатором учетной записи в AWS. |
| DstDvcIdType | Условного | Перечисленных | Тип DstDvcId, если он известен. Возможные значения: - AzureResourceId- MDEidIfЕсли доступно несколько идентификаторов, используйте первый из приведенного выше списка, а остальные сохраните в полях DstDvcAzureResourceId или DstDvcMDEid соответственно. Требуется, если используется DstDeviceId . |
| DstDeviceType | Необязательный | Перечисленных | Тип целевого устройства. Возможные значения: - Computer- Mobile Device- IOT Device- Other |
| DstDescription | Необязательный | String | Описательный текст, связанный с устройством. Пример: Primary Domain Controller. |
Поля, относящиеся к DNS
| Поле | Класс | Тип | Описание |
|---|---|---|---|
| DnsQuery | Обязательный | String | Домен, который пытается разрешить запрос. Примечания. — Некоторые источники отправляют допустимые запросы на полное доменное имя в другом формате. Например, в самом протоколе DNS запрос содержит точку (.) в конце, которую необходимо удалить. — Хотя протокол DNS ограничивает тип значения в этом поле полным доменным именем, большинство DNS-серверов разрешают любое значение, поэтому это поле не ограничивается только значениями полного доменного имени. В частности, атаки туннелирования DNS могут использовать недопустимые значения полного доменного имени в поле запроса. — Хотя протокол DNS позволяет выполнять несколько запросов в одном запросе, этот сценарий встречается редко, если он вообще найден. Если запрос содержит несколько запросов, сохраните первый из них в этом поле, а затем при необходимости сохраните остальные в поле Дополнительные поля . Пример: www.malicious.com |
| Домена | Alias | Псевдоним dnsQuery. | |
| DnsQueryType | Необязательный | Integer |
Коды типов записей ресурсов DNS. Пример: 28 |
| DnsQueryTypeName | Рекомендуемый | Перечисленных | Имена типов записей ресурсов DNS . Примечания. — IANA не определяет регистр значений, поэтому аналитика должна нормализовать регистр по мере необходимости. — Значение ANY поддерживается для кода ответа 255.— Значение TYPExxxx поддерживается для несопоставленных кодов ответа, где xxxx — числовое значение кода ответа, о котором сообщает DNS-сервер BIND.—Если источник предоставляет только код числового типа запроса, а не имя типа запроса, средство синтаксического анализа должно включать таблицу подстановки для обогащения этим значением. Пример: AAAA |
| DnsResponseName | Необязательный | String | Содержимое ответа, включенного в запись. Данные ответа DNS несогласованы на разных устройствах отчетности, сложны для анализа и имеют меньшее значение для аналитики, не зависящей от источника. Таким образом, информационная модель не требует синтаксического анализа и нормализации, и Microsoft Sentinel использует вспомогательную функцию для предоставления сведений об ответе. Дополнительные сведения см. в разделе Обработка ответа DNS. |
| DnsResponseCodeName | Alias | Псевдоним eventResultDetails | |
| DnsResponseCode | Необязательный | Integer |
Код числового ответа DNS. Пример: 3 |
| TransactionIdHex | Рекомендуемый | Шестнадцатеричный (string) | Уникальный идентификатор DNS-запроса, назначенный DNS-клиентом в шестнадцатеричном формате. Обратите внимание, что это значение является частью протокола DNS и отличается от DnsSessionId, идентификатора сеанса сетевого уровня, обычно присваиваемого устройством отчетов. |
| NetworkProtocol | Необязательный | Перечисленных | Транспортный протокол, используемый событием разрешения сети. Значение может быть UDP или TCP, и чаще всего для DNS задается значение UDP . Пример: UDP |
| NetworkProtocolVersion | Необязательный | Перечисленных | Версия NetworkProtocol. При его использовании для различения ip-версии используйте значения IPv4 и IPv6. |
| DnsQueryClass | Необязательный | Integer |
Идентификатор класса DNS. На практике используется только класс IN (идентификатор 1), поэтому это поле менее полезно. |
| DnsQueryClassName | Рекомендуемый | DnsQueryClassName (String) |
Имя класса DNS. На практике используется только класс IN (идентификатор 1), поэтому это поле менее полезно. Пример: IN |
| DnsFlags | Необязательный | String | Поле флагов, предоставленное устройством отчетов. Если сведения о флаге предоставляются в нескольких полях, сцепить их с помощью запятой в качестве разделителя. Так как флаги DNS сложны для анализа и реже используются аналитикой, синтаксический анализ и нормализация не требуются. Microsoft Sentinel может использовать вспомогательную функцию для предоставления сведений о флагах. Дополнительные сведения см. в разделе Обработка ответа DNS. Пример: ["DR"] |
| DnsNetworkDuration | Необязательный | Integer | Количество времени (в миллисекундах) для выполнения ЗАПРОСА DNS. Пример: 1500 |
| Duration | Alias | Псевдоним dnsNetworkDuration | |
| DnsFlagsAuthenticated | Необязательный | Логический | Флаг DNS AD , связанный с DNSSEC, указывает в ответе, что все данные, включенные в разделы ответа и центра ответа, были проверены сервером в соответствии с политиками этого сервера. Дополнительные сведения см. в разделе RFC 3655, раздел 6.1 . |
| DnsFlagsAuthoritative | Необязательный | Логический | Флаг DNS AA указывает, является ли ответ с сервера полномочным. |
| DnsFlagsCheckingDisabled | Необязательный | Логический | Флаг DNS CD , связанный с DNSSEC, указывает в запросе, что непроверенные данные приемлемы для системы, отправляющей запрос. Дополнительные сведения см. в разделе RFC 3655, раздел 6.1 . |
| DnsFlagsRecursionAvailable | Необязательный | Логический | Флаг DNS RA указывает в ответе, что этот сервер поддерживает рекурсивные запросы. |
| DnsFlagsRecursionDesired | Необязательный | Логический | Флаг DNS RD указывает в запросе, что этот клиент хотел бы, чтобы сервер использовал рекурсивные запросы. |
| DnsFlagsTruncated | Необязательный | Логический | Флаг DNS TC указывает, что ответ был усечен, так как он превысил максимальный размер ответа. |
| DnsFlagsZ | Необязательный | Логический | Флаг DNS Z является устаревшим флагом DNS, о котором могут сообщать старые системы DNS. |
| DnsSessionId | Необязательный | string | Идентификатор сеанса DNS, сообщаемый устройством отчетов. Это значение отличается от TransactionIdHex, уникального идентификатора ЗАПРОСА DNS, присвоенного DNS-клиентом. Пример: EB4BFA28-2EAD-4EF7-BC8A-51DF4FDF5B55 |
| Sessionid | Alias | Псевдоним dnsSessionId | |
| DnsResponseIpCountry | Необязательный | Страна | Страна или регион, связанные с одним из IP-адресов в ответе DNS. Дополнительные сведения см. в разделе Логические типы. Пример: USA |
| DnsResponseIpRegion | Необязательный | Region | Регион или состояние, связанное с одним из IP-адресов в ответе DNS. Дополнительные сведения см. в разделе Логические типы. Пример: Vermont |
| DnsResponseIpCity | Необязательный | Город | Город, связанный с одним из IP-адресов в ответе DNS. Дополнительные сведения см. в разделе Логические типы. Пример: Burlington |
| DnsResponseIpLatitude | Необязательный | Latitude | Широта географической координаты, связанной с одним из IP-адресов в ответе DNS. Дополнительные сведения см. в разделе Логические типы. Пример: 44.475833 |
| DnsResponseIpLongitude | Необязательный | Longitude | Долгота географической координаты, связанной с одним из IP-адресов в ответе DNS. Дополнительные сведения см. в разделе Логические типы. Пример: 73.211944 |
Поля проверки
Следующие поля используются для представления проверки, выполненной устройством безопасности DNS. Поля, связанные с угрозами, представляют собой одну угрозу, связанную либо с исходным адресом, адресом назначения, одним из IP-адресов в ответе или доменом ЗАПРОСА DNS. Если в качестве угрозы было определено несколько угроз, сведения о других IP-адресах могут храниться в поле AdditionalFields.
| Поле | Класс | Тип | Описание |
|---|---|---|---|
| UrlCategory | Необязательный | String | Источник событий DNS также может искать категорию запрошенных доменов. Поле называется UrlCategory для выравнивания с Microsoft Sentinel схемой сети. DomainCategory добавляется в качестве псевдонима, подходящего для DNS. Пример: Educational \\ Phishing |
| DomainCategory | Alias | Псевдоним urlCategory. | |
| RuleName | Необязательный | String | Имя или идентификатор правила, которое идентифицировало угрозу. Пример: AnyAnyDrop |
| RuleNumber | Необязательный | Integer | Номер правила, которое идентифицировало угрозу. Пример: 23 |
| Rule | Alias | String | Значение RuleName или значение RuleNumber. Если используется значение RuleNumber , тип следует преобразовать в строку. |
| RuleNumber | Необязательный | int | Номер правила, связанного с оповещением. Например. 123456 |
| RuleName | Необязательный | string | Имя или идентификатор правила, связанного с оповещением. Например. Server PSEXEC Execution via Remote Access |
| ThreatId | Необязательный | String | Идентификатор угрозы или вредоносных программ, определенных в сетевом сеансе. Пример: Tr.124 |
| ThreatCategory | Необязательный | String | Если источник событий DNS также обеспечивает безопасность DNS, он также может оценить событие DNS. Например, он может найти IP-адрес или домен в базе данных аналитики угроз и назначить домен или IP-адрес с помощью категории угроз. |
| ThreatIpAddr | Необязательный | IP-адрес | IP-адрес, для которого была обнаружена угроза. Поле ThreatField содержит имя поля ThreatIpAddr , представляющего . Если угроза определена в поле Домен , это поле должно быть пустым. |
| ThreatField | Условного | Перечисленных | Поле, для которого была обнаружена угроза. Значение равно SrcIpAddr, , DstIpAddrDomainили DnsResponseName. |
| ThreatName | Необязательный | String | Имя обнаруженной угрозы, сообщаемое устройством отчетности. |
| ThreatConfidence | Необязательный | ConfidenceLevel (Целое число) | Уровень достоверности обнаруженной угрозы, нормализованный до значения от 0 до 100. |
| ThreatOriginalConfidence | Необязательный | String | Исходный уровень достоверности обнаруженной угрозы, о чем сообщает устройство отчетности. |
| ThreatRiskLevel | Необязательный | RiskLevel (целое число) | Уровень риска, связанный с обнаруженной угрозой, нормализованный до значения от 0 до 100. |
| ThreatOriginalRiskLevel | Необязательный | String | Исходный уровень риска, связанный с обнаруженной угрозой, о чем сообщает устройство отчетности. |
| ThreatIsActive | Необязательный | Логический | Значение true, если обнаруженная угроза считается активной угрозой. |
| ThreatFirstReportedTime | Необязательный | datetime | При первом обнаружении IP-адреса или домена как угрозы. |
| ThreatLastReportedTime | Необязательный | datetime | В последний раз IP-адрес или домен были определены как угроза. |
Устаревшие псевдонимы и поля
Следующие поля представляют собой псевдонимы, которые поддерживаются для обеспечения обратной совместимости. Они были удалены из схемы 31 декабря 2021 г.
-
Query(псевдоним дляDnsQuery) -
QueryType(псевдоним дляDnsQueryType) -
QueryTypeName(псевдоним дляDnsQueryTypeName) -
ResponseName(псевдоним дляDnsResponseName) -
ResponseCodeName(псевдоним дляDnsResponseCodeName) -
ResponseCode(псевдоним дляDnsResponseCode) -
QueryClass(псевдоним дляDnsQueryClass) -
QueryClassName(псевдоним дляDnsQueryClassName) -
Flags(псевдоним дляDnsFlags) SrcUserDomain
Обновления схемы
Изменения в схеме версии 0.1.2:
- Добавлено поле
EventSchema. - Добавлено выделенное поле флага, которое дополняет объединенное поле Флаги:
DnsFlagsAuthoritative,DnsFlagsCheckingDisabled,DnsFlagsRecursionAvailable,DnsFlagsRecursionDesiredDnsFlagsTruncated, иDnsFlagsZ.
Изменения в схеме версии 0.1.3:
- Теперь схема явно документирует
Src*поля ,Dst*иProcess*User*. - Добавлены дополнительные
Dvc*поля в соответствии с последним определением общих полей. - Добавлены
SrcиDstв качестве псевдонимов для ведущего идентификатора для исходной и целевой систем. - Добавлены необязательный
DnsNetworkDurationиDuration, псевдоним. - Добавлены необязательные поля Географическое расположение и Уровень риска.
Изменения в схеме версии 0.1.4:
- Добавлены необязательные поля
ThreatIpAddr,ThreatField,ThreatName,ThreatConfidence,ThreatOriginalConfidence,ThreatOriginalRiskLevel,ThreatIsActive,ThreatFirstReportedTimeиThreatLastReportedTime.
Ниже перечислены изменения в схеме версии 0.1.5.
- Добавлены поля , , , , ,
DstDvcScopeId,DstDvcScope,DvcScopeIdиDvcScope.SrcDvcScopeSrcDvcScopeIdSrcUserSessionIdSrcUserScope
Изменения в схеме версии 0.1.6:
- Добавлены поля
DnsResponseIpCountry,DnsResponseIpRegion,DnsResponseIpCity,DnsResponseIpLatitudeиDnsResponseIpLongitude.
Изменения в схеме версии 0.1.7:
- Добавлены поля
SrcDescription, ,SrcOriginalRiskLevelDstDescription,DstOriginalRiskLevel, ,SrcUserScopeId, ,NetworkProtocolVersion,Rule,RuleName,RuleNumberиThreatId.
Расхождения в источнике
Целью нормализации является обеспечение согласованности данных телеметрии во всех источниках. Источник, не предоставляющий необходимые данные телеметрии, например обязательные поля схемы, не может быть нормализован. Однако источники, которые обычно предоставляют все необходимые данные телеметрии, даже если есть некоторые расхождения, можно нормализовать. Несоответствия могут повлиять на полноту результатов запроса.
В следующей таблице перечислены известные расхождения.
| Source | Расхождения |
|---|---|
| Microsoft DNS-сервер, собираемый с помощью соединителя 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
Связанные материалы
- Обзор расширенной информационной модели безопасности (ASIM)
- Схемы расширенной информационной модели безопасности (ASIM)
- Средства синтаксического анализа расширенной информационной модели безопасности (ASIM)
- Содержимое расширенной информационной модели безопасности (ASIM)
- Вебинар Azure Sentinel. Нормализация Model-Understanding информации в Azure Sentinel