Referencia del esquema de normalización de sesión web del Modelo de información de seguridad avanzada (ASIM): versión preliminar pública

El esquema de normalización de sesión web se usa para describir la actividad de una red IP. Por ejemplo, los servidores web, los servidores web y las puertas de enlace de seguridad web notifican las actividades de red IP.

Para más información sobre la normalización en Microsoft Sentinel, consulte Normalización y Modelo avanzado de información de seguridad (ASIM).

Importante

El esquema de normalización de red está actualmente en VERSIÓN PRELIMINAR. Esta característica se ofrece sin contrato de nivel de servicio y no se recomienda para cargas de trabajo de producción.

En la página Términos de uso complementarios para las Versiones preliminares de Microsoft Azure se incluyen términos legales adicionales que se aplican a las características de Azure que se encuentran en versión beta, versión preliminar o que todavía no se han publicado para su disponibilidad general.

Información general del esquema

El esquema de normalización de sesión web representa cualquier sesión de red HTTP y es específicamente adecuado para proporcionar compatibilidad con tipos de origen comunes, entre ellos:

  • Servidores web
  • Proxies web
  • Puertas de enlace de seguridad web

El esquema de sesión web de ASIM representa la actividad de los protocolos HTTP y HTTPS. Puesto que el esquema representa la actividad del protocolo, se rige por RFC y listas de parámetros asignados oficialmente, a las que se hace referencia en este artículo cuando corresponda.

El esquema de sesión web no representa eventos de auditoría de dispositivos de origen. Por ejemplo, el esquema de sesión web no puede representar un evento que modifique una directiva de puerta de enlace de seguridad web.

Dado que las sesiones HTTP son sesiones de nivel de aplicación que usan TCP/IP como sesión de capa de red subyacente, el esquema de sesión web es un superconjunto del esquema de sesión web de ASIM.

Los campos más importantes de un esquema de sesión web son:

  • Url, que informa de la dirección URL que el cliente solicitó al servidor.
  • SrcIpAddr (con el alias IpAddr), que representa la dirección IP desde la que se generó la solicitud.
  • Campo EventResultDetails, que normalmente informa del código de estado HTTP.

Los eventos de sesión web también pueden incluir la información del usuario y proceso para el usuario y el proceso que inicia la solicitud.

Analizadores

Para más información sobre los analizadores de ASIM,consulte la introducción a los analizadores de ASIM.

Unificación de analizadores

Para usar analizadores que unifiquen todos los analizadores predeterminados de ASIM y asegurarse de que el análisis se ejecuta en todos los orígenes configurados, use el analizador de filtrado _Im_WebSession o el analizador sin parámetros _ASim_WebSession.

También puede usar los analizadores ImWebSession y ASimWebSession implementados en el área de trabajo mediante su implementación desde el repositorio de Microsoft Sentinel en GitHub. Para más información, vea Analizadores de ASIM integrados y analizadores implementados por el área de trabajo.

Analizadores integrados específicos del origen

Para obtener la lista de analizadores de sesiones web que proporciona Microsoft Sentinel, consulte la lista de analizadores de ASIM

Adición de sus propios analizadores normalizados

Al implementar analizadores personalizados para el modelo de información de sesión web, asigne un nombre a las funciones KQL con la sintaxis siguiente:

  • vimWebSession<vendor><Product> para analizadores parametrizados
  • ASimWebSession<vendor><Product> para analizadores regulares

Filtrado de parámetros del analizador

Los analizadores im y vim* admiten parámetros de filtrado. Aunque estos analizadores son opcionales, pueden mejorar el rendimiento de las consultas.

Están disponibles los siguientes parámetros de filtrado:

Nombre Tipo Descripción
starttime datetime Filtre solo las sesiones web que se iniciaron en este momento, o después.
endtime datetime Filtre solo las sesiones web que empezaron a ejecutarse en este momento o antes.
srcipaddr_has_any_prefix dinámico Filtre solo las sesiones web para las que el prefijo del campo de dirección IP de origen es uno de los valores enumerados. La lista de valores puede incluir direcciones IP y prefijos de dirección IP. Los prefijos deben terminar por ., por ejemplo: 10.0.. La longitud de la lista se limita a 10 000 elementos.
ipaddr_has_any_prefix dinámico Filtre solo las sesiones de red cuyo prefijo del campo de dirección IP de destino o del campo de dirección IP de origen se encuentre en uno de los valores enumerados. Los prefijos deben terminar por ., por ejemplo: 10.0.. La longitud de la lista se limita a 10 000 elementos.

El campo ASimMatchingIpAddr se establece con uno de los valores SrcIpAddr, DstIpAddro Both para reflejar los campos o campos coincidentes.
url_has_any dinámico Filtre solo las sesiones web para las que el campo URL tenga cualquiera de los valores enumerados. El analizador puede omitir el esquema de la dirección URL pasada como parámetro, si el origen no lo notifica. Si se especifica y la sesión no es una sesión web, no se devolverá ningún resultado. La longitud de la lista se limita a 10 000 elementos.
httpuseragent_has_any dinámico Filtre solo las sesiones web para las que el campo del agente de usuario tenga cualquiera de los valores enumerados. Si se especifica y la sesión no es una sesión web, no se devolverá ningún resultado. La longitud de la lista se limita a 10 000 elementos.
eventresultdetails_in dinámico Filtre solo las sesiones web para las que el código de estado HTTP, almacenado en el campo EventResultDetails, sea cualquiera de los valores enumerados.
eventresult string Filtre solo las sesiones de red con un valor de EventResult específico.

Algunos parámetros pueden aceptar la lista de valores de tipo dynamic o un único valor de cadena. Para pasar una lista literal a parámetros que esperan un valor dinámico, use explícitamente un literal dinámico. Por ejemplo: dynamic(['192.168.','10.'])

Por ejemplo, para filtrar solo sesiones web para una lista especificada de nombres de dominio, use:

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

Detalles del esquema

El modelo de información de sesión web está alineado con el esquema de entidades de red de OSSEM y el esquema de entidades HTTP de OSSEM.

Para cumplir los procedimientos recomendados del sector, el esquema de sesión web usa los descriptores Src y Dst para identificar los dispositivos de origen y destino de sesión, sin incluir el token Dvc en el nombre del campo.

Así, por ejemplo, el nombre de host y la dirección IP del dispositivo de origen se denominan SrcHostname y SrcIpAddr, respectivamente, y no SrcDvcHostname y SrcDvcIpAddr. El prefijo Dvc solo se usa para el dispositivo intermediario o de informes, según corresponda.

Los campos que describen el usuario y la aplicación asociados a los dispositivos de origen y destino también usan los descriptores Src y Dst.

Otros esquemas de ASIM suelen usar Target en lugar de Dst.

Campos comunes de ASIM

Importante

Los campos comunes a todos los esquemas se describen detalladamente en el artículo Campos comunes de ASIM.

Campos comunes con directrices específicas

La lista siguiente solo enumera los campos que tienen directrices específicas para los eventos de sesión web.

Campo Clase Tipo Descripción
Mandatory Enumerated Describe la operación notificada por el registro. Los valores permitidos son:
- HTTPsession: Indica una sesión de red usada para HTTP o HTTPS, normalmente informada por un dispositivo intermediario, como un proxy o una pasarela de seguridad web.
- WebServerSession: Indica una solicitud HTTP notificada por un servidor web. Un evento de este tipo suele tener menos información relacionada con la red. La URL comunicada no debe incluir un esquema y un nombre de servidor, sino solo la ruta de acceso y la parte de parámetros de la URL.
- ApiRequest: Indica una solicitud HTTP notificada asociada a una llamada API, normalmente notificada por un servidor de aplicaciones. Un evento de este tipo suele tener menos información relacionada con la red. Cuando la notifica el servidor de aplicaciones, la URL notificada no debe incluir un esquema y un nombre de servidor, sino solo la ruta de acceso y la parte de parámetros de la URL.
EventResult Mandatory Enumerated Describe el resultado del evento, normalizado en uno de los siguientes valores:
- Success
- Partial
- Failure
- NA (no aplicable)

En una sesión HTTP, Success se define como un código de estado inferior a 400 y Failure se define como un código de estado mayor que 400. Para ver una lista de códigos de estado HTTP, consulte W3 Org.

El origen solo puede proporcionar un valor para el campo EventResultDetails, que se debe analizar para obtener el valor EventResult.
EventResultDetails Recomendado String El código de estado HTTP.

Nota: El valor se puede proporcionar en el registro de origen usando términos diferentes, que se deben normalizar con estos valores. El valor original debe almacenarse en el campo EventOriginalResultDetails.
EventSchema Mandatory String El nombre del esquema que se documenta aquí es WebSession.
EventSchemaVersion Mandatory String Versión del esquema. La versión del esquema que se documenta aquí el la versión 0.2.6.
Campos dvc En el caso de los eventos de sesión web, los campos del dispositivo hacen referencia al sistema que informa del evento de sesión web. Se trata normalmente de un dispositivo intermediario para los eventos HTTPSession, y del servidor web o de aplicaciones de destino para los eventos WebServerSession y ApiRequest.

Todos los campos comunes

Los campos que aparecen en la tabla siguiente son comunes a todos los esquemas de ASIM. Cualquier directriz especificada anteriormente invalida las directrices generales para el campo. Por ejemplo, un campo podría ser opcional en general, pero obligatorio para un esquema específico. Para obtener más información sobre cada campo, consulte el siguiente artículo sobre los campos comunes de ASIM.

Clase Fields
Mandatory - EventCount
- EventStartTime
- EventEndTime
- -
- -
- -
- EventVendor
- EventSchema
- EventSchemaVersion
- Dvc
Recomendado - EventResultDetails
- -
- EventUid
- DvcIpAddr
- DvcHostname
- DvcDomain
- DvcDomainType
- DvcFQDN
- -
- -
- DvcAction
Opcionales - EventMessage
- -
- EventOriginalUid
- -
- -
- -
- -
- EventProductVersion
- EventReportUrl
- EventOwner
- DvcZone
- DvcMacAddr
- DvcOs
- DvcOsVersion
- DvcOriginalAction
- -
- -
- DvcDescription
- DvcScopeId
- DvcScope

Campos de sesión de red

Las sesiones HTTP son sesiones de capa de aplicación que usan TCP/IP como sesión de capa de red subyacente. El esquema de sesión web es un superconjunto del esquema de sesión web de ASIM y todos los campos de esquema de red también se incluyen en el esquema de sesión web.

El siguiente esquema de sesión de red de ASIM tiene instrucciones específicas cuando se usa para un evento de sesión web:

  • El alias User debe hacer referencia a SrcUsername y no a DstUsername.
  • El campo EventOriginalResultDetails puede contener cualquier resultado notificado por el origen, además del código de estado HTTP almacenado en EventResultDetails.
  • En el caso de las sesiones web, el campo de destino principal es el campo url. DstDomain es opcional en lugar de recomendado. En concreto, si no está disponible, no es necesario extraerla de la dirección URL del analizador.
  • Los campos NetworkRuleName y NetworkRuleNumber pasan a llamarse RuleName y RuleNumber respectivamente.

Normalmente, los dispositivos intermedios notifican eventos de sesión web que finalizan la conexión HTTP desde el cliente e inician una nueva conexión, que actúa como proxy, con el servidor. Para representar el dispositivo intermedio, use los campos de dispositivo intermedio del esquema de sesión de red deASIM.

Campos de sesión HTTP

Los siguientes son campos adicionales que son específicos de las sesiones HTTP:

Campo Clase Tipo Descripción
Url Mandatory String La URL de la solicitud HTTP, incluidos los parámetros. En el caso de los eventos de HTTPSession, la dirección URL puede incluir el esquema y debe incluir el nombre del servidor. Para WebServerSession y para ApiRequest, la URL no suele incluir el esquema y el servidor, que se encuentran en los campos NetworkApplicationProtocol y DstFQDN respectivamente.

Ejemplo: https://contoso.com/fo/?k=v&amp;q=u#f
UrlCategory Opcional String Agrupación definida de una dirección URL o la parte de dominio de esta. Normalmente, las puertas de enlace de seguridad web proporcionan la categoría, que se basa en el contenido del sitio al que apunta la dirección URL.

Ejemplo: motores de búsqueda, sitios para adultos, noticias, publicidad y dominios aparcados.
UrlOriginal Opcional String Valor original de la dirección URL, cuando el dispositivo de informes ha modificado la dirección URL; se proporcionan ambos valores.
HttpVersion Opcional String La versión de la solicitud HTTP.

Ejemplo: 2.0
HttpRequestMethod Recomendado Enumerated Método HTTP. Los valores se definen en RFC 7231 y RFC 5789, e incluyen GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE y PATCH.

Ejemplo: GET
HttpStatusCode Alias El código de estado HTTP. Alias de EventResultDetails.
HttpContentType Opcional String Encabezado de tipo de contenido de respuesta HTTP.

Nota: El campo HttpContentType puede incluir el formato de contenido y parámetros adicionales, como la codificación usada para obtener el formato real.

Ejemplo: text/html; charset=ISO-8859-4
HttpContentFormat Opcional String Parte del formato de contenido de HttpContentType

Ejemplo: text/html
HttpReferrer Opcional String Encabezado de referencia HTTP.

Nota: ASIM, en sincronización con OSSEM, usa la ortografía correcta para el origen de referencia, y no la original del encabezado HTTP.

Ejemplo: https://developer.mozilla.org/docs
HttpUserAgent Opcional String Encabezado del agente de usuario HTTP.

Ejemplo:
Mozilla/5.0 (Windows NT 10.0; WOW64)
AppleWebKit/537.36 (KHTML, como Gecko)
Chrome/83.0.4103.97 Safari/537.36
UserAgent Alias Alias de HttpUserAgent
HttpRequestXff Opcionales Dirección IP Encabezado HTTP X-Forwarded-For.

Ejemplo: 120.12.41.1
HttpRequestTime Opcional Entero Cantidad de tiempo, en milisegundos, que se tardó en enviar la solicitud al servidor, si procede.

Ejemplo: 700
HttpResponseTime Opcional Entero Cantidad de tiempo, en milisegundos, que se tardó en recibir una respuesta en el servidor, si procede.

Ejemplo: 800
HttpHost Opcional String Servidor web virtual al que se ha dirigido la solicitud HTTP. Este valor se suele basar en el encabezado host HTTP.
FileName Opcional String En el caso de las cargas HTTP, el nombre del archivo cargado.
FileMD5 Opcionales MD5 Para cargas HTTP, el hash MD5 del archivo cargado.

Ejemplo: 75a599802f1fa166cdadb360960b1dd0
FileSHA1 Opcionales SHA1 Para cargas HTTP, el hash SHA1 del archivo cargado.

Ejemplo:
d55c5a4df19b46db8c54
c801c4665d3338acdab0
FileSHA256 Opcionales SHA256 Para cargas HTTP, el hash SHA256 del archivo cargado.

Ejemplo:
e81bb824c4a09a811af17deae22f22dd
2e1ec8cbb00b22629d2899f7c68da274
FileSHA512 Opcionales SHA512 Para cargas HTTP, el hash SHA512 del archivo cargado.
Hash Alias Alias para el campo Hash disponible.
FileHashType Opcionales Enumerated Tipo del hash en el campo Hash. Los valores posibles incluyen MD5, SHA1, SHA256 y SHA512.
FileSize Opcional long Con cargas HTTP, el tamaño en bytes del archivo cargado.
FileContentType Opcional String Con cargas HTTP, el tipo de contenido del archivo cargado.

Otros campos

Si uno de los puntos de conexión de la sesión web notifica el evento, puede que se incluya información sobre el proceso que inició o finalizó la sesión. En tales casos, el esquema de eventos de proceso de ASIM para normalizar esta información.

Actualizaciones del esquema

El esquema de sesión web se basa en el esquema de sesión de red. Por lo tanto, las actualizaciones del esquema de sesión de red también se aplican al esquema de sesión web.

A continuación se muestran los cambios en la versión 0.2.5 del esquema:

  • Se ha agregado el campo HttpHost.

A continuación se muestran los cambios en la versión 0.2.6 del esquema:

  • Se ha cambiado el tipo de FileSize de Integer a Long.

Pasos siguientes

Para más información, consulte: