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

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

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

Обзор схемы

Схема нормализации веб-сеанса представляет любой сетевой сеанс HTTP и подходит для поддержки распространенных типов источников, включая:

  • Веб-серверы
  • Веб-прокси
  • Шлюзы веб-безопасности

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

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

Так как http-сеансы — это сеансы прикладного уровня, использующие TCP/IP в качестве базового сеанса сетевого уровня, схема веб-сеанса — это супер набор схемы сетевого сеанса ASIM.

Наиболее важные поля в схеме веб-сеанса:

  • URL-адрес, который передает URL-адрес, запрошенный клиентом на сервере.
  • SrcIpAddr (псевдоним IpAddr), представляющий IP-адрес, с которого был создан запрос.
  • Поле EventResultDetails , которое обычно сообщает код состояния HTTP.

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

Парсеров

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

Объединение синтаксического анализа

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

Встроенные средства синтаксического анализа для конкретного источника

Список средств синтаксического анализа веб-сеансов, Microsoft Sentinel предоставляет встроенные средства синтаксического анализа, см. в списке средств синтаксического анализа ASIM.

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

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

  • vimWebSession<vendor><Product> для параметризованных синтаксических анализаторов
  • ASimWebSession<vendor><Product> для обычных синтаксического анализа

Фильтрация параметров средства синтаксического анализа

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

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

Имя Тип Описание
Starttime datetime Отфильтруйте только веб-сеансы, которые были запущены в это время или позже. Этот параметр фильтрует TimeGenerated поле, которое является стандартным конструктором для времени события, независимо от сопоставления полей EventStartTime и EventEndTime специфичного для средства синтаксического анализа.
время окончания datetime Фильтрация только веб-сеансов, которые начали выполняться в это время или раньше. Этот параметр фильтрует TimeGenerated поле, которое является стандартным конструктором для времени события, независимо от сопоставления полей EventStartTime и EventEndTime специфичного для средства синтаксического анализа.
srcipaddr_has_any_prefix Динамический Фильтрация только веб-сеансов, для которых префикс поля исходного IP-адреса находится в одном из перечисленных значений. Список значений может включать IP-адреса и префиксы IP-адресов. Префиксы должны заканчиваться .на , например: 10.0.. Длина списка ограничена 10 000 элементов.
ipaddr_has_any_prefix Динамический Фильтрация только сетевых сеансов, для которых поле IP-адреса назначения или префикс поля исходного IP-адреса находится в одном из перечисленных значений. Префиксы должны заканчиваться .на , например: 10.0.. Длина списка ограничена 10 000 элементов.

Поле ASimMatchingIpAddr задается с одним из значений SrcIpAddr, DstIpAddrили Both для отражения соответствующих полей или полей.
url_has_any Динамический Фильтрация только веб-сеансов, для которых поле URL-адреса содержит любое из перечисленных значений. Средство синтаксического анализа может игнорировать схему URL-адреса, переданного в качестве параметра, если источник не сообщает об этом. Если задано значение и сеанс не является веб-сеансом, результат не будет возвращен. Длина списка ограничена 10 000 элементов.
httpuseragent_has_any Динамический Фильтровать только веб-сеансы, для которых поле агента пользователя содержит любое из перечисленных значений. Если задано значение и сеанс не является веб-сеансом, результат не будет возвращен. Длина списка ограничена 10 000 элементов.
eventresultdetails_in Динамический Фильтрация только веб-сеансов, для которых код состояния HTTP, хранящийся в поле EventResultDetails , является любым из перечисленных значений.
eventresult string Фильтрация только сетевых сеансов с определенным значением EventResult .
eventresultdetails_has_any Динамический Объявлено в канонических параметрах парсера Web Session, но в настоящее время не применяется и не пересылается запросом, развернутым imWebSession в рабочем пространстве. Используйте eventresultdetails_in фильтрацию по HTTP-коду статуса.

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

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

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

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

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

В соответствии с лучшими отраслевыми методиками схема веб-сеанса использует дескрипторы Src и Dst для идентификации устройств источника и назначения сеанса без включения маркера Dvc в имя поля.

Например, имя узла исходного устройства и IP-адрес имеют имена SrcHostname и SrcIpAddr соответственно, а не имя узла SrcDvc и SrcDvcIpAddr. Префикс Dvc используется только для отчеты или промежуточного устройства, если применимо.

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

Другие схемы ASIM обычно используют target вместо Dst.

Общие поля ASIM

Важно!

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

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

В следующем списке перечислены поля с определенными рекомендациями по событиям веб-сеанса.

Поле Класс Тип Описание
Eventtype Обязательный Перечисленных Описывает операцию, сообщаемую записью. Допустимые значения:
- HTTPsession: обозначает сетевой сеанс, используемый для HTTP или HTTPS, обычно сообщаемый промежуточным устройством, например прокси-сервером или шлюзом веб-безопасности.
- WebServerSession: обозначает HTTP-запрос, сообщаемый веб-сервером. Такое событие обычно содержит меньше сведений, связанных с сетью. Сообщаемые URL-адреса должны включать не схему и имя сервера, а только часть URL-адреса пути и параметров.
- ApiRequest: обозначает HTTP-запрос, связанный с вызовом API, обычно сообщаемый сервером приложений. Такое событие обычно содержит меньше сведений, связанных с сетью. При отправке сервером приложений URL-адрес должен включать не схему и имя сервера, а только путь и параметры, которые являются частью URL-адреса.
EventResult Обязательный Перечисленных Описывает результат события, нормализованный до одного из следующих значений:
- Success
- Partial
- Failure
- NA (неприменимо)

Для сеанса Success HTTP определяется как код состояния ниже , а 400Failure определяется как код состояния выше 400. Список кодов состояния HTTP см. в разделе W3 Org.

Источник может предоставить только значение для поля EventResultDetails , которое необходимо проанализировать, чтобы получить значение EventResult .
EventOutcomeПодробности Рекомендуемый Перечисленных Код состояния HTTP, определенный консорциумом World Wide Web

Примечание. Значение может быть указано в исходной записи с использованием разных терминов, которые должны быть нормализованы для этих значений. Исходное значение должно храниться в поле EventOriginalResultDetails .
EventSchema Обязательный Перечисленных Имя схемы, описанной здесь, — WebSession.
EventSchemaVersion Обязательный SchemaVersion (String) Версия схемы. Версия схемы, описанная здесь: 1.0.0
Поля Dvc Для событий веб-сеанса поля устройства относятся к системе, сообщая о событии веб-сеанса. Обычно это промежуточное устройство для HTTPSession событий, а также целевой веб-сервер или сервер приложений для WebServerSession событий и ApiRequest .

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

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

Class Fields
Обязательный - EventCount
- EventStartTime
- EventEndTime
- Eventtype
- EventResult
- EventProduct
- EventVendor
- EventSchema
- EventSchemaVersion
- DVC
Рекомендуемый - EventOutcomeПодробности
- СобытиеСерьёзность
- EventUid
- DvcIpAddr
- DvcHostname
- DvcDomain
- DvcDomainType
- DvcFQDN
- DvcId
- DvcIdType
- DvcAction
Необязательный - EventMessage
- EventSubType
- EventOriginalUid
- EventOriginalType
- EventOriginalSubType
- СобытиеОригиналРезультатПодробности
- СобытиеОригиналСерьёзность
- EventProductVersion
- EventReportUrl
- Владелец мероприятия
- DvcZone
- DvcMacAddr
- DvcOs
- DvcOsVersion
- DvcOriginalAction
- DvcInterface
- Дополнительные поля
- DvcОписание
- DvcScopeId
- DvcScope

Поля сетевого сеанса

Сеансы HTTP — это сеансы прикладного уровня, использующие TCP/IP в качестве базового сеанса сетевого уровня. Схема веб-сеанса — это супер набор схемы сетевого сеанса ASIM , и все поля схемы сети также включены в схему веб-сеанса.

Следующие поля схемы сетевого сеанса ASIM имеют определенные рекомендации при использовании для события веб-сеанса:

  • Псевдоним User должен ссылаться на SrcUsername , а не на DstUsername.
  • Поле EventOriginalResultDetails может содержать любой результат, сообщаемый источником, в дополнение к коду состояния HTTP, хранящемуся в EventResultDetails.
  • Для веб-сеансов основным целевым полем является поле URL-адреса. DstDomain является необязательным, а не рекомендуется. В частности, если он недоступен, нет необходимости извлекать его из URL-адреса в средстве синтаксического анализа.
  • Поля NetworkRuleName и NetworkRuleNumber переименовываются RuleName и RuleNumber соответственно.

События веб-сеанса обычно сообщаются промежуточными устройствами, которые завершают HTTP-подключение от клиента и инициируют новое соединение с сервером, выступая в качестве прокси-сервера. Чтобы представить промежуточное устройство, используйте поля схемы сетевого сеанса ASIM— промежуточное устройство.

Поля сеанса HTTP

Ниже приведены дополнительные поля, относящиеся к веб-сеансам.

Поле Класс Тип Описание
URL-адрес Обязательный URL-адрес (строка) URL-адрес HTTP-запроса, включая параметры. Для HTTPSession событий URL-адрес может включать схему и должен содержать имя сервера. Для WebServerSession и для ApiRequest URL-адреса обычно не включаются схема и сервер, которые можно найти в NetworkApplicationProtocol полях и DstFQDN соответственно.

Пример: https://contoso.com/fo/?k=v&amp;q=u#f
UrlCategory Необязательный String Определенное группирование URL-адреса или доменной части URL-адреса. Категория обычно предоставляется шлюзами веб-безопасности и основана на содержимом сайта, на который указывает URL-адрес.

Пример: поисковые системы, взрослые, новости, реклама и припаркованные домены.
UrlOriginal Необязательный URL-адрес (строка) Исходное значение URL-адреса, когда URL-адрес был изменен устройством создания отчетов, и указаны оба значения.
HttpVersion Необязательный String Версия HTTP-запроса.

Пример: 2.0
HttpRequestMethod Рекомендуемый Перечисленных Метод HTTP. Значения определены в RFC 7231 и RFC 5789 и включают GET, , HEADPOST, PUT, DELETE, , CONNECT, OPTIONS, TRACE, и PATCH.

Пример: GET
HttpStatusCode Alias Код состояния HTTP. Псевдоним EventResultDetails.
HttpContentType Необязательный String Заголовок типа контента HTTP Response.

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

Пример: text/html; charset=ISO-8859-4
HttpContentFormat Необязательный String Часть формата содержимого httpContentType

Пример: text/html
HttpReferrer Необязательный String Заголовок ссылок HTTP.

Примечание. ASIM при синхронизации с OSSEM использует правильное написание для ссылок, а не исходное написание заголовка HTTP.

Пример: https://developer.mozilla.org/docs
HttpUserAgent Необязательный String Заголовок агента пользователя HTTP.

Пример:
Mozilla/5.0(Windows NT 10.0; WOW64)
AppleWebKit/537.36 (KHTML, как Gecko)
Chrome/83.0.4103.97 Safari/537.36
UserAgent Alias Псевдоним httpUserAgent
HttpRequestXff Необязательный IP-адрес Заголовок HTTP X-Forwarded-For.

Пример: 120.12.41.1
HttpRequestTime Необязательный Integer Время в миллисекундах, затратимое на отправку запроса на сервер, если применимо.

Пример: 700
HttpResponseTime Необязательный Integer Время в миллисекундах, затратимое на получение ответа на сервере, если применимо.

Пример: 800
HttpHost Необязательный String Виртуальный веб-сервер, на который направлен HTTP-запрос. Это значение обычно основано на заголовке узла HTTP.
FileName Необязательный String Для отправки по протоколу HTTP — имя отправленного файла.
FileMD5 Необязательный MD5 Для отправки по протоколу HTTP — хэш MD5 отправленного файла.

Пример: 75a599802f1fa166cdadb360960b1dd0
FileSHA1 Необязательный SHA1 Для отправки по протоколу HTTP — хэш SHA1 отправленного файла.

Пример:
d55c5a4df19b46db8c54
c801c4665d3338acdab0
FileSHA256 Необязательный SHA256 Для отправки по протоколу HTTP — хэш SHA256 отправленного файла.

Пример:
e81bb824c4a09a811af17deae22f22dd
2e1ec8cbb00b22629d2899f7c68da274
FileSHA512 Необязательный SHA512 Для отправки по протоколу HTTP — хэш SHA512 отправленного файла.
Хэш Alias Псевдоним доступного поля Хэша.
HashType Условного Перечисленных Тип хэша в поле Хэш . Возможные значения: MD5, SHA1, SHA256и SHA512.
FileSize Необязательный Long Для отправки по протоколу HTTP — размер отправленного файла в байтах.
FileContentType Необязательный String Для отправки по протоколу HTTP — тип содержимого отправленного файла.
HttpCookie Необязательный String Содержимое заголовка файла cookie HTTP, отправляемого с клиента на сервер, содержащего пары "имя-значение" данных сеанса.

Пример: session_id=abc123; user_pref=dark_mode
HttpIsProxied Необязательный Логический Указывает, был ли HTTP-запрос отправлен через прокси-сервер.

Пример: true
HttpRequestBodyBytes Необязательный Long Размер текста HTTP-запроса в байтах без учета заголовков.

Пример: 1024
HttpRequestCacheControl Необязательный String Содержимое http-Cache-Control заголовка запроса, указывающего директивы кэширования от клиента.

Пример: no-cache
HttpRequestHeaderCount Необязательный Integer Количество http-заголовков, включенных в запрос.

Пример: 12
HttpResponseBodyBytes Необязательный Long Размер текста HTTP-ответа в байтах без учета заголовков.

Пример: 8192
HttpResponseCacheControl Необязательный String Содержимое http-Cache-Control заголовка ответа, указывающего директивы кэширования с сервера.

Пример: max-age=3600, public
HttpResponseExpires Необязательный String Содержимое заголовка ответа HTTP Expires, указывающее, когда истечет срок действия содержимого ответа.

Пример: Thu, 01 Dec 2024 16:00:00 GMT
HttpResponseHeaderCount Необязательный Integer Количество http-заголовков, включенных в ответ.

Пример: 15

Другие поля

Если событие сообщается одной из конечных точек веб-сеанса, оно может содержать сведения о процессе, который инициировал или завершил сеанс. В таких случаях для нормализации этих сведений используется схема события процесса ASIM .

Поля корреляции сущностей

Note

Участникам не нужно заполнять эти области. Соответствующие парсеры будут заполнять их при добавлении внутренней поддержки Microsoft.

Поле Класс Тип Описание
DstApplicationEntityKey Необязательный String Стабильный, детерминированный идентификатор строк, который уникально идентифицирует целевое приложение в одном пространстве имён. Этот системный уникальный идентификатор позволяет корреляцию с объектами в других событиях и инвентаризациях сущностей.
DstSystemEntityKey Необязательный String Стабильный детерминированный идентификатор строк, который уникально идентифицирует систему назначения в одном пространстве имён. Этот системный уникальный идентификатор позволяет корреляцию с объектами в других событиях и инвентаризациях сущностей.
DstUserAdditionalIds Необязательный Dynamic О структуре и использовании поля см. Поля с суффиксом AdditionalIds.
DstUserEntityKey Необязательный String Стабильный детерминированный идентификатор строки, который уникально идентифицирует получателя в одном пространстве имён. Этот системный уникальный идентификатор позволяет корреляцию с объектами в других событиях и инвентаризациях сущностей.
SrcApplicationEntityKey Необязательный String Стабильный, детерминированный идентификатор строк, который уникально идентифицирует исходное приложение в одном пространстве имён. Этот системный уникальный идентификатор позволяет корреляцию с объектами в других событиях и инвентаризациях сущностей.
SrcSystemEntityKey Необязательный String Стабильный, детерминированный идентификатор строк, который уникально идентифицирует исходную систему в одном пространстве имён. Этот системный уникальный идентификатор позволяет корреляцию с объектами в других событиях и инвентаризациях сущностей.
SrcUserAdditionalIds Необязательный Dynamic О структуре и использовании поля см. Поля с суффиксом AdditionalIds.
SrcUserEntityKey Необязательный String Стабильный детерминированный идентификатор строк, который уникально идентифицирует исходного пользователя в одном пространстве имён. Этот системный уникальный идентификатор позволяет корреляцию с объектами в других событиях и инвентаризациях сущностей.

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

Версия Изменения
0.2.5 Добавлено поле HttpHost.
0.2.6 Изменил тип FileSize с Целочисленных на Длинный.
0.2.7 Добавлены поля HttpCookie, , HttpIsProxiedHttpRequestBodyBytes, HttpRequestCacheControl, , HttpRequestHeaderCount, , HttpResponseBodyBytes, HttpResponseCacheControlHttpResponseExpiresи HttpResponseHeaderCount.
1.0.0 Добавлены поля корреляции сущностей.

Схема веб-сеанса основана на схеме сетевого сеанса. Поэтому обновления схемы сетевой сессии также применяются к схеме веб-сессии.