Справочник по схеме нормализации 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, включающий четыре сегмента. Реальный запрос может быть более сложным и затрагивать дополнительные сегменты.
Поскольку сегменты запросов и ответов не связаны друг с другом напрямую в потоке запросов 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 | Необязательно | Город | Город, связанный с исходным 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 | Необязательно | Город | Город, связанный с 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 | Необязательно | Город | Город, связанный с одним из 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
(псевдоним дляDnsResponseName
)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
,ThreatOriginalConfidence
ThreatConfidence
ThreatOriginalRiskLevel
ThreatName
,ThreatIsActive
и .ThreatFirstReportedTime
ThreatLastReportedTime
Изменения в схеме версии 0.1.5:
- Добавлены поля
SrcUserScope
,SrcUserSessionId
,DstDvcScopeId
SrcDvcScope
DstDvcScope
SrcDvcScopeId
,DvcScopeId
и .DvcScope
Изменения в схеме версии 0.1.6:
- Добавлены поля
DnsResponseIpCountry
,DnsResponseIpRegion
,DnsResponseIpCity
,DnsResponseIpLatitude
иDnsResponseIpLongitude
.
Изменения в схеме версии 0.1.7:
- Добавлены поля
SrcDescription
,SrcOriginalRiskLevel
,NetworkProtocolVersion
DstOriginalRiskLevel
DstDescription
Rule
RuleName
SrcUserScopeId
RuleNumber
и .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
Дальнейшие действия
Дополнительные сведения см. в разделе:
- Посмотрите веб-семинар ASIM или слайды.
- Обзор расширенной информационной модели безопасности (ASIM)
- Схемы расширенной информационной модели безопасности (ASIM)
- Средства синтаксического анализа расширенной информационной модели безопасности (ASIM)
- Содержимое расширенной информационной модели безопасности (ASIM)