Informations de référence sur le schéma de normalisation de session web ASIM (Advanced Security Information Model)

Le schéma de normalisation de session web est utilisé pour décrire une activité réseau IP. Par exemple, les activités réseau IP sont signalées par les serveurs web, les proxys web et les passerelles de sécurité web.

Pour plus d’informations sur la normalisation dans Microsoft Sentinel, consultez Normalisation et le modèle ASIM (Advanced Security Information Model).

Vue d’ensemble du schéma

Le schéma de normalisation de session web représente toute session réseau HTTP et convient pour prendre en charge les types de sources courants, notamment :

  • Serveurs Web
  • Proxys web
  • Passerelles de sécurité web

Le schéma de session web ASIM représente l’activité des protocoles HTTP et HTTPS. Étant donné que le schéma représente l’activité du protocole, il est régi par des RFC et des listes de paramètres officiellement attribuées, qui sont référencées dans cet article le cas échéant.

Le schéma de session web ne représente pas les événements d’audit des appareils sources. Par exemple, un événement modifiant une stratégie de passerelle de sécurité web ne peut pas être représenté par le schéma de session web.

Étant donné que les sessions HTTP sont des sessions de couche application qui utilisent TCP/IP comme session de couche réseau sous-jacente, le schéma de session web est un super ensemble du schéma de session réseau ASIM.

Les champs les plus importants d’un schéma de session web sont les suivants :

  • URL, qui indique l’URL que le client a demandée au serveur.
  • SrcIpAddr (alias ipAddr), qui représente l’adresse IP à partir de laquelle la requête a été générée.
  • Champ EventResultDetails , qui indique généralement le code d’état HTTP.

Les événements de session web peuvent également inclure des informations utilisateur et processus pour l’utilisateur et le processus à l’origine de la demande.

Analyseurs

Pour plus d’informations sur les analyseurs ASIM, consultez la vue d’ensemble des analyseurs ASIM.

Analyseurs d’unification

Pour utiliser des analyseurs qui unifient tous les analyseurs ASIM prêtes à l’emploi et vérifiez que votre analyse s’exécute sur toutes les sources configurées, utilisez l’analyseur _Im_WebSession .

Analyseurs spécifiques à la source prêtes à l’emploi

Pour obtenir la liste des analyseurs de session web Microsoft Sentinel fournit prête à l’emploi, reportez-vous à la liste des analyseurs ASIM.

Ajouter vos propres analyseurs normalisés

Lorsque vous implémentez des analyseurs personnalisés pour le modèle d’informations de session web, nommez vos fonctions KQL à l’aide de la syntaxe suivante :

  • vimWebSession<vendor><Product> pour les analyseurs paramétrés
  • ASimWebSession<vendor><Product> pour les analyseurs standard

Filtrage des paramètres de l’analyseur

Les im analyseurs et vim* prennent en charge les paramètres de filtrage. Bien que ces analyseurs soient facultatifs, ils peuvent améliorer les performances de vos requêtes.

Les paramètres de filtrage suivants sont disponibles :

Nom Type Description
Starttime DateHeure Filtrez uniquement les sessions web qui ont démarré à ou après cette heure. Ce paramètre filtre sur le TimeGenerated champ, qui est l’indicateur standard pour l’heure de l’événement, quel que soit le mappage spécifique à l’analyseur des champs EventStartTime et EventEndTime.
heure de fin DateHeure Filtrez uniquement les sessions web qui ont commencé à s’exécuter à ce moment ou avant. Ce paramètre filtre sur le TimeGenerated champ, qui est l’indicateur standard pour l’heure de l’événement, quel que soit le mappage spécifique à l’analyseur des champs EventStartTime et EventEndTime.
srcipaddr_has_any_prefix Dynamique Filtrez uniquement les sessions web pour lesquelles le préfixe de champ d’adresse IP source figure dans l’une des valeurs répertoriées. La liste des valeurs peut inclure des adresses IP et des préfixes d’adresses IP. Les préfixes doivent se terminer par un ., par exemple : 10.0.. La longueur de la liste est limitée à 10 000 éléments.
ipaddr_has_any_prefix Dynamique Filtrez uniquement les sessions réseau pour lesquelles le champ d’adresse IP de destination ou le préfixe du champ d’adresse IP source se trouve dans l’une des valeurs répertoriées. Les préfixes doivent se terminer par un ., par exemple : 10.0.. La longueur de la liste est limitée à 10 000 éléments.

Le champ ASimMatchingIpAddr est défini avec l’une des valeurs SrcIpAddr, DstIpAddrou Both pour refléter les champs ou champs correspondants.
url_has_any Dynamique Filtrez uniquement les sessions web pour lesquelles le champ URL contient l’une des valeurs répertoriées. L’analyseur peut ignorer le schéma de l’URL passée en tant que paramètre, si la source ne le signale pas. S’il est spécifié et que la session n’est pas une session web, aucun résultat n’est retourné. La longueur de la liste est limitée à 10 000 éléments.
httpuseragent_has_any Dynamique Filtrez uniquement les sessions web pour lesquelles le champ de l’agent utilisateur contient l’une des valeurs répertoriées. S’il est spécifié et que la session n’est pas une session web, aucun résultat n’est retourné. La longueur de la liste est limitée à 10 000 éléments.
eventresultdetails_in Dynamique Filtrez uniquement les sessions web pour lesquelles le code de status HTTP, stocké dans le champ EventResultDetails, est l’une des valeurs répertoriées.
eventresult string Filtrez uniquement les sessions réseau avec une valeur EventResult spécifique.

Certains paramètres peuvent accepter les deux listes de valeurs de type dynamic ou une valeur de chaîne unique. Pour passer une liste littérale à des paramètres qui attendent une valeur dynamique, utilisez explicitement un littéral dynamique. Par exemple : dynamic(['192.168.','10.'])

Par exemple, pour filtrer uniquement les sessions Web pour une liste spécifiée de noms de domaine, utilisez :

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

Détails du schéma

Le modèle d’informations de session web est aligné sur le schéma d’entité réseau OSSEM et le schéma d’entité HTTP OSSEM.

Pour se conformer aux meilleures pratiques du secteur, le schéma de session web utilise les descripteurs Src et Dst pour identifier les appareils source et de destination de session, sans inclure le jeton Dvc dans le nom du champ.

Par exemple, le nom d’hôte et l’adresse IP de l’appareil source sont respectivement nommés SrcHostname et SrcIpAddr , et non SrcDvcHostname et SrcDvcIpAddr. Le préfixe Dvc est utilisé uniquement pour l’appareil de création de rapports ou intermédiaire, le cas échéant.

Les champs qui décrivent l’utilisateur et l’application associés aux appareils source et de destination utilisent également les descripteurs Src et Dst .

Les autres schémas ASIM utilisent généralement Target au lieu de Dst.

Champs ASIM courants

Importante

Les champs communs à tous les schémas sont décrits en détail dans l’article Champs communs ASIM .

Champs communs avec des instructions spécifiques

La liste suivante mentionne les champs qui ont des instructions spécifiques pour les événements de session web :

Field Classe Type Description
Eventtype Obligatoire Énumérés Décrit l’opération signalée par l’enregistrement. Les valeurs autorisées sont les suivantes :
- HTTPsession: désigne une session réseau utilisée pour HTTP ou HTTPS, généralement signalée par un appareil intermédiaire, tel qu’un proxy ou une passerelle de sécurité Web.
- WebServerSession: indique une requête HTTP signalée par un serveur web. Un tel événement a généralement moins d’informations relatives au réseau. L’URL signalée ne doit pas inclure de schéma et de nom de serveur, mais uniquement le chemin d’accès et la partie paramètres de l’URL.
- ApiRequest: indique une requête HTTP signalée associée à un appel d’API, généralement signalée par un serveur d’applications. Un tel événement a généralement moins d’informations relatives au réseau. Lorsqu’elle est signalée par le serveur d’applications, l’URL signalée ne doit pas inclure de schéma et de nom de serveur, mais uniquement le chemin d’accès et la partie paramètres de l’URL.
EventResult Obligatoire Énumérés Décrit le résultat de l’événement, normalisé à l’une des valeurs suivantes :
- Success
- Partial
- Failure
- NA (non applicable)

Pour une session HTTP, Success est défini comme un code status inférieur à 400, et Failure est défini comme un code status supérieur à 400. Pour obtenir la liste des codes de status HTTP, reportez-vous à W3 Org.

La source peut fournir uniquement une valeur pour le champ EventResultDetails , qui doit être analysée pour obtenir la valeur EventResult .
EventResultDetails Recommandé Énumérés Code status HTTP tel que défini par Le World Wide Web Consortium

Remarque : la valeur peut être fournie dans l’enregistrement source à l’aide de termes différents, qui doivent être normalisés avec ces valeurs. La valeur d’origine doit être stockée dans le champ EventOriginalResultDetails .
EventSchema Obligatoire Énumérés Le nom du schéma documenté ici est WebSession.
EventSchemaVersion Obligatoire SchemaVersion (String) Version du schéma. La version du schéma documentée ici est 0.2.7
Champs Dvc Pour les événements de session web, les champs d’appareil font référence au système signalant l’événement de session web. Il s’agit généralement d’un appareil intermédiaire pour HTTPSession les événements et du serveur web ou d’applications de destination pour WebServerSession les événements et ApiRequest .

Tous les champs courants

Les champs qui apparaissent dans le tableau ci-dessous sont communs à tous les schémas ASIM. Toutes les recommandations spécifiées ci-dessus remplacent les instructions générales pour le champ. Par exemple, un champ peut être facultatif en général, mais obligatoire pour un schéma spécifique. Pour plus d’informations sur chaque champ, reportez-vous à l’article Champs communs ASIM .

Class Fields
Obligatoire - EventCount
- EventStartTime
- EventEndTime
- Eventtype
- EventResult
- EventProduct
- EventVendor
- EventSchema
- EventSchemaVersion
- Cvn
Recommandé - EventResultDetails
- EventSeverity
- EventUid
- DvcIpAddr
- DvcHostname
- DvcDomain
- DvcDomainType
- DvcFQDN
- DvcId
- DvcIdType
- DvcAction
Facultatif - EventMessage
- EventSubType
- EventOriginalUid
- EventOriginalType
- EventOriginalSubType
- EventOriginalResultDetails
- EventOriginalSeverity
- EventProductVersion
- EventReportUrl
- EventOwner
- DvcZone
- DvcMacAddr
- DvcOs
- DvcOsVersion
- DvcOriginalAction
- DvcInterface
- AdditionalFields
- DvcDescription
- DvcScopeId
- DvcScope

Champs de session réseau

Les sessions HTTP sont des sessions de couche application qui utilisent TCP/IP comme session de couche réseau sous-jacente. Le schéma de session web est un super ensemble de schéma de session réseau ASIM et tous les champs de schéma réseau sont également inclus dans le schéma de session web.

Les champs de schéma de session réseau ASIM suivants ont des instructions spécifiques lorsqu’ils sont utilisés pour un événement de session web :

  • L’alias User doit faire référence à SrcUsername et non à DstUsername.
  • Le champ EventOriginalResultDetails peut contenir n’importe quel résultat signalé par la source en plus du code de status HTTP stocké dans EventResultDetails.
  • Pour les sessions web, le champ de destination principal est le champ URL. Le DstDomain est facultatif plutôt que recommandé. Plus précisément, s’il n’est pas disponible, il n’est pas nécessaire de l’extraire de l’URL dans l’analyseur.
  • Les champs NetworkRuleName et NetworkRuleNumber sont respectivement renommés RuleName et RuleNumber .

Les événements de session web sont généralement signalés par des appareils intermédiaires qui mettent fin à la connexion HTTP à partir du client et initient une nouvelle connexion, agissant comme un proxy, avec le serveur. Pour représenter l’appareil intermédiaire, utilisez les champs De l’appareil intermédiairedu schéma de session réseau ASIM

Champs de session HTTP

Voici des champs supplémentaires spécifiques aux sessions web :

Field Classe Type Description
Url Obligatoire URL (String) URL de la requête HTTP, y compris les paramètres. Pour HTTPSession les événements, l’URL peut inclure le schéma et doit inclure le nom du serveur. Pour WebServerSession et pour ApiRequest l’URL n’inclut généralement pas le schéma et le serveur, qui se trouvent respectivement dans les NetworkApplicationProtocol champs et DstFQDN .

Exemple : https://contoso.com/fo/?k=v&amp;q=u#f
UrlCategory Facultatif String Regroupement défini d’une URL ou de la partie domaine de l’URL. La catégorie est généralement fournie par les passerelles de sécurité web et est basée sur le contenu du site vers lequel l’URL pointe.

Exemple : moteurs de recherche, adultes, actualités, publicité et domaines parqués.
UrlOriginal Facultatif URL (String) Valeur d’origine de l’URL, lorsque l’URL a été modifiée par l’appareil de création de rapports et que les deux valeurs sont fournies.
HttpVersion Facultatif String Version de la requête HTTP.

Exemple : 2.0
HttpRequestMethod Recommandé Énumérés Méthode HTTP. Les valeurs sont définies dans RFC 7231 et RFC 5789, et incluent GET, HEAD, POSTPUT, DELETE, CONNECT, OPTIONS, TRACE, et PATCH.

Exemple : GET
HttpStatusCode Alias Code d’état HTTP. Alias de EventResultDetails.
HttpContentType Facultatif String En-tête de type de contenu réponse HTTP.

Remarque : le champ HttpContentType peut inclure à la fois le format de contenu et des paramètres supplémentaires, tels que l’encodage utilisé pour obtenir le format réel.

Exemple : text/html; charset=ISO-8859-4
HttpContentFormat Facultatif String Partie du format de contenu de HttpContentType

Exemple : text/html
HttpReferrer Facultatif String En-tête du référent HTTP.

Remarque : ASIM, synchronisé avec OSSEM, utilise l’orthographe correcte pour le référent, et non l’orthographe de l’en-tête HTTP d’origine.

Exemple : https://developer.mozilla.org/docs
HttpUserAgent Facultatif String En-tête de l’agent utilisateur HTTP.

Exemple :
Mozilla/5.0 (Windows NT 10.0 ; WOW64)
AppleWebKit/537.36 (KHTML, comme Gecko)
Chrome/83.0.4103.97 Safari/537.36
UserAgent Alias Alias de HttpUserAgent
HttpRequestXff Facultatif Adresse IP En-tête HTTP X-Forwarded-For.

Exemple : 120.12.41.1
HttpRequestTime Facultatif Entier Temps, en millisecondes, nécessaire pour envoyer la demande au serveur, le cas échéant.

Exemple : 700
HttpResponseTime Facultatif Entier Temps, en millisecondes, nécessaire pour recevoir une réponse sur le serveur, le cas échéant.

Exemple : 800
HttpHost Facultatif String Serveur web virtuel ciblé par la requête HTTP. Cette valeur est généralement basée sur l’en-tête de l’hôte HTTP.
FileName Facultatif String Pour les chargements HTTP, nom du fichier chargé.
FileMD5 Facultatif MD5 Pour les chargements HTTP, hachage MD5 du fichier chargé.

Exemple : 75a599802f1fa166cdadb360960b1dd0
FileSHA1 Facultatif SHA1 Pour les chargements HTTP, hachage SHA1 du fichier chargé.

Exemple :
d55c5a4df19b46db8c54
c801c4665d3338acdab0
FileSHA256 Facultatif SHA256 Pour les chargements HTTP, le hachage SHA256 du fichier chargé.

Exemple :
e81bb824c4a09a811af17deae22f22dd
2e1ec8cbb00b22629d2899f7c68da274
FileSHA512 Facultatif SHA512 Pour les chargements HTTP, le hachage SHA512 du fichier chargé.
Hachage Alias Alias du champ Hachage disponible.
HashType Conditionnelle Énumérés Type du hachage dans le champ Hachage . Les valeurs possibles sont les suivantes : MD5, SHA1, SHA256et SHA512.
FileSize Facultatif Entier long Pour les chargements HTTP, taille en octets du fichier chargé.
FileContentType Facultatif String Pour les chargements HTTP, type de contenu du fichier chargé.
HttpCookie Facultatif String Contenu de l’en-tête de cookie HTTP envoyé du client au serveur, contenant des paires nom-valeur de données de session.

Exemple : session_id=abc123; user_pref=dark_mode
HttpIsProxied Facultatif Booléen Indique si la requête HTTP a été envoyée via un serveur proxy.

Exemple : true
HttpRequestBodyBytes Facultatif Entier long Taille du corps de la requête HTTP en octets, sans en-têtes.

Exemple : 1024
HttpRequestCacheControl Facultatif String Le contenu de l’en-tête de requête HTTP Cache-Control, spécifiant les directives de mise en cache du client.

Exemple : no-cache
HttpRequestHeaderCount Facultatif Entier Nombre d’en-têtes HTTP inclus dans la requête.

Exemple : 12
HttpResponseBodyBytes Facultatif Entier long Taille du corps de la réponse HTTP en octets, sans en-têtes.

Exemple : 8192
HttpResponseCacheControl Facultatif String Le contenu de l’en-tête de réponse HTTP Cache-Control, spécifiant les directives de mise en cache du serveur.

Exemple : max-age=3600, public
HttpResponseExpires Facultatif String Contenu de l’en-tête de réponse HTTP Expire, indiquant quand le contenu de la réponse expire.

Exemple : Thu, 01 Dec 2024 16:00:00 GMT
HttpResponseHeaderCount Facultatif Entier Nombre d’en-têtes HTTP inclus dans la réponse.

Exemple : 15

Autres champs

Si l’événement est signalé par l’un des points de terminaison de la session web, il peut inclure des informations sur le processus qui a lancé ou mis fin à la session. Dans ce cas, le schéma d’événement de processus ASIM permet de normaliser ces informations.

Mises à jour de schéma

Le schéma de session web s’appuie sur le schéma de session réseau. Par conséquent, les mises à jour du schéma de session réseau s’appliquent également au schéma de session web.

Voici les modifications apportées à la version 0.2.5 du schéma :

  • Ajout du champ HttpHost.

Voici les modifications apportées à la version 0.2.6 du schéma :

  • Le type de FileSize est passé de Integer à Long.

Voici les modifications apportées à la version 0.2.7 du schéma :

  • Ajout des champs HttpCookie, HttpIsProxied, HttpRequestBodyBytes, HttpRequestCacheControl, HttpRequestHeaderCountHttpResponseBodyBytes, HttpResponseCacheControl, HttpResponseExpireset HttpResponseHeaderCount.

Prochaines étapes

Pour plus d’informations, reportez-vous aux rubriques suivantes :