Referencia del esquema de normalización de sesión web del modelo de información de seguridad avanzada (ASIM)

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

Para obtener más información sobre la normalización en Microsoft Sentinel, vea Normalización y el modelo de información de seguridad avanzada (ASIM).

Introducción al esquema

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

  • Servidores web
  • Servidores proxy web
  • Puertas de enlace de seguridad web

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

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

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

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

  • Dirección 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 notifica el código de estado HTTP.

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

Analizadores

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

Unificar analizadores

Para usar analizadores que unifiquen todos los analizadores integrados de ASIM y asegúrese de que el análisis se ejecuta en todos los orígenes configurados, use el _Im_WebSession analizador.

Analizadores integrados y específicos del origen

Para obtener la lista de los analizadores de sesión web Microsoft Sentinel proporciona información general, consulte la lista de analizadores de ASIM.

Agregar sus propios analizadores normalizados

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

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

Filtrado de parámetros del analizador

Los im analizadores 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 Description
starttime datetime Filtre solo las sesiones web que se iniciaron en o después de este momento. Este parámetro filtra en el TimeGenerated campo, que es el designador estándar para la hora del evento, independientemente de la asignación específica del analizador de los campos EventStartTime y EventEndTime.
endtime datetime Filtre solo las sesiones web que empezaron a ejecutarse en o antes de este momento. Este parámetro filtra en el TimeGenerated campo, que es el designador estándar para la hora del evento, independientemente de la asignación específica del analizador de los campos EventStartTime y EventEndTime.
srcipaddr_has_any_prefix dinámico Filtre solo las sesiones web para las que el prefijo de campo de dirección IP de origen se encuentra en uno de los valores enumerados. La lista de valores puede incluir direcciones IP y prefijos de dirección IP. Los prefijos deben terminar con , .por ejemplo: 10.0.. La longitud de la lista está limitada a 10 000 elementos.
ipaddr_has_any_prefix dinámico Filtre solo las sesiones de red para las que el campo de dirección IP de destino o el prefijo del campo de dirección IP de origen se encuentran en uno de los valores enumerados. Los prefijos deben terminar con , .por ejemplo: 10.0.. La longitud de la lista está limitada 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 tiene 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 está limitada a 10 000 elementos.
httpuseragent_has_any dinámico Filtre solo las sesiones web para las que el campo agente de usuario tiene 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 está limitada 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 , es cualquiera de los valores enumerados.
eventresult string Filtre solo las sesiones de red con un valor EventResult específico.

Algunos parámetros pueden aceptar la lista de valores de tipo dynamic o un valor de cadena único. 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 las 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 se alinea con el esquema de entidad de red de OSSEM y el esquema de entidad HTTP de OSSEM.

Para cumplir con 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 la sesión, sin incluir el token Dvc en el nombre del campo.

Por ejemplo, el nombre de host y la dirección IP del dispositivo de origen se denominan SrcHostname y SrcIpAddr respectivamente, y no SrcDvcHostname ni SrcDvcIpAddr. El prefijo Dvc solo se usa para el dispositivo de informes o intermediario, 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 Destino en lugar de Dst.

Campos comunes de ASIM

Importante

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

Campos comunes con directrices específicas

En la lista siguiente se mencionan los campos que tienen directrices específicas para los eventos de sesión web:

Campo Clase Tipo Description
EventType Obligatorio Enumerado Describe la operación notificada por el registro. Los valores permitidos son:
- HTTPsession: indica una sesión de red que se usa para HTTP o HTTPS, normalmente notificada por un dispositivo intermediario, como un proxy o una puerta de enlace de seguridad web.
- WebServerSession: denota una solicitud HTTP notificada por un servidor web. Este tipo de evento suele tener menos información relacionada con la red. La dirección URL notificada no debe incluir un esquema y un nombre de servidor, sino solo la ruta de acceso y los parámetros que forman parte de la dirección URL.
- ApiRequest: denota una solicitud HTTP notificada asociada a una llamada API, notificada normalmente por un servidor de aplicaciones. Este tipo de evento suele tener menos información relacionada con la red. Cuando lo notifica el servidor de aplicaciones, la dirección URL notificada no debe incluir un esquema y un nombre de servidor, sino solo la ruta de acceso y los parámetros que forman parte de la dirección URL.
EventResult Obligatorio Enumerado Describe el resultado del evento, normalizado a uno de los siguientes valores:
- Success
- Partial
- Failure
- NA (no aplicable)

Para una sesión HTTP, Success se define como un código de estado inferior 400a , y Failure se define como un código de estado superior a 400. Para obtener 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 Enumerado El código de estado HTTP tal como lo define The World Wide Web Consortium

Nota: El valor se puede proporcionar en el registro de origen mediante términos diferentes, que deben normalizarse a estos valores. El valor original debe almacenarse en el campo EventOriginalResultDetails .
EventSchema Obligatorio Enumerado El nombre del esquema documentado aquí es WebSession.
EventSchemaVersion Obligatorio SchemaVersion (String) Versión del esquema. La versión del esquema documentada aquí es 0.2.7
Campos Dvc En el caso de los eventos de sesión web, los campos de dispositivo hacen referencia al sistema que notifica el evento sesión web. Normalmente, se trata de un dispositivo intermediario para HTTPSession eventos y del servidor web o de aplicación de destino para WebServerSession y ApiRequest eventos.

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 puede ser opcional en general, pero obligatorio para un esquema específico. Para obtener más información sobre cada campo, consulte el artículo Campos comunes de ASIM .

Class Fields
Obligatorio - EventCount
- EventStartTime
- EventEndTime
- EventType
- EventResult
- EventProduct
- EventVendor
- EventSchema
- EventSchemaVersion
- Dvc
Recomendado - EventResultDetails
- EventSeverity
- EventUid
- DvcIpAddr
- DvcHostname
- DvcDomain
- DvcDomainType
- DvcFQDN
- DvcId
- DvcIdType
- DvcAction
Opcional - EventMessage
- EventSubType
- EventOriginalUid
- EventOriginalType
- EventOriginalSubType
- EventOriginalResultDetails
- EventOriginalSeverity
- EventProductVersion
- EventReportUrl
- EventOwner
- DvcZone
- DvcMacAddr
- DvcOs
- DvcOsVersion
- DvcOriginalAction
- DvcInterface
- AdditionalFields
- DvcDescription
- DvcScopeId
- DvcScope

Campos de sesión de red

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

Los siguientes campos de esquema de sesión de red de ASIM tienen directrices específicas cuando se usan 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 extraerlo de la dirección URL del analizador.
  • Los campos NetworkRuleName y NetworkRuleNumber se cambian de RuleName nombre y RuleNumber respectivamente.

Los eventos de sesión web suelen notificarlos los dispositivos intermedios 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 de ASIM.

Campos de sesión HTTP

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

Campo Clase Tipo Description
Dirección URL Obligatorio URL (String) Dirección URL de la solicitud HTTP, incluidos los parámetros. Para HTTPSession los eventos, la dirección URL puede incluir el esquema y debe incluir el nombre del servidor. Para WebServerSession y para ApiRequest la dirección URL normalmente no incluiría el esquema y el servidor, que se pueden encontrar en los NetworkApplicationProtocol campos y DstFQDN respectivamente.

Ejemplo: https://contoso.com/fo/?k=v&amp;q=u#f
UrlCategory Opcional Cadena La agrupación definida de una dirección URL o la parte de dominio de la dirección URL. Las puertas de enlace de seguridad web suelen proporcionar la categoría y se basa en el contenido del sitio al que apunta la dirección URL.

Ejemplo: motores de búsqueda, adultos, noticias, publicidad y dominios estacionados.
UrlOriginal Opcional URL (String) Valor original de la dirección URL, cuando el dispositivo de informes modificó la dirección URL y se proporcionan ambos valores.
HttpVersion Opcional Cadena Versión de la solicitud HTTP.

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

Ejemplo: GET
HttpStatusCode Alias Código de estado HTTP. Alias a EventResultDetails.
HttpContentType Opcional Cadena Encabezado de tipo de contenido 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 Cadena Parte de formato de contenido de HttpContentType

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

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

Ejemplo: https://developer.mozilla.org/docs
HttpUserAgent Opcional Cadena 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 a HttpUserAgent
HttpRequestXff Opcional Dirección IP Encabezado HTTP X-Forwarded-For.

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

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

Ejemplo: 800
HttpHost Opcional Cadena Servidor web virtual al que tiene como destino la solicitud HTTP. Este valor se basa normalmente en el encabezado de host HTTP.
FileName Opcional Cadena En el caso de las cargas HTTP, el nombre del archivo cargado.
FileMD5 Opcional MD5 En el caso de las cargas HTTP, el hash MD5 del archivo cargado.

Ejemplo: 75a599802f1fa166cdadb360960b1dd0
FileSHA1 Opcional SHA1 En el caso de las cargas HTTP, el hash SHA1 del archivo cargado.

Ejemplo:
d55c5a4df19b46db8c54
c801c4665d3338acdab0
FileSHA256 Opcional SHA256 En el caso de las cargas HTTP, el hash SHA256 del archivo cargado.

Ejemplo:
e81bb824c4a09a811af17deae22f22dd
2e1ec8cbb00b22629d2899f7c68da274
FileSHA512 Opcional SHA512 En el caso de las cargas HTTP, el hash SHA512 del archivo cargado.
Hash Alias Alias del campo Hash disponible.
HashType Condicional Enumerado Tipo del hash en el campo Hash . Entre los valores posibles se incluyen: MD5, SHA1, SHA256y SHA512.
FileSize Opcional Long En el caso de las cargas HTTP, el tamaño en bytes del archivo cargado.
FileContentType Opcional Cadena En el caso de las cargas HTTP, el tipo de contenido del archivo cargado.
HttpCookie Opcional Cadena Contenido del encabezado de cookie HTTP enviado desde el cliente al servidor, que contiene pares nombre-valor de datos de sesión.

Ejemplo: session_id=abc123; user_pref=dark_mode
HttpIsProxied Opcional Booleano Indica si la solicitud HTTP se envió a través de un servidor proxy.

Ejemplo: true
HttpRequestBodyBytes Opcional Long Tamaño del cuerpo de la solicitud HTTP en bytes, sin incluir encabezados.

Ejemplo: 1024
HttpRequestCacheControl Opcional Cadena El contenido del encabezado de solicitud Cache-Control HTTP, especificando las directivas de almacenamiento en caché del cliente.

Ejemplo: no-cache
HttpRequestHeaderCount Opcional Entero Número de encabezados HTTP incluidos en la solicitud.

Ejemplo: 12
HttpResponseBodyBytes Opcional Long Tamaño del cuerpo de la respuesta HTTP en bytes, sin incluir encabezados.

Ejemplo: 8192
HttpResponseCacheControl Opcional Cadena El contenido del encabezado de respuesta Cache-Control HTTP, especificando directivas de almacenamiento en caché del servidor.

Ejemplo: max-age=3600, public
HttpResponseExpires Opcional Cadena El contenido del encabezado de respuesta HTTP Expires, que indica cuándo expira el contenido de la respuesta.

Ejemplo: Thu, 01 Dec 2024 16:00:00 GMT
HttpResponseHeaderCount Opcional Entero Número de encabezados HTTP incluidos en la respuesta.

Ejemplo: 15

Otros campos

Si uno de los puntos de conexión de la sesión web notifica el evento, puede incluir 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 de 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 agregó el campo HttpHost.

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

  • El tipo de FileSize se cambió de Integer a Long.

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

  • Se agregaron los campos HttpCookie, HttpIsProxied, HttpRequestBodyBytes, HttpRequestCacheControl, HttpRequestHeaderCount, HttpResponseBodyBytes, HttpResponseCacheControl, HttpResponseExpiresy HttpResponseHeaderCount.

Siguientes pasos

Para más información, vea: