Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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
NetworkRuleNameetNetworkRuleNumbersont respectivement renommésRuleNameetRuleNumber.
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&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 : d55c5a4df19b46db8c54c801c4665d3338acdab0 |
| FileSHA256 | Facultatif | SHA256 | Pour les chargements HTTP, le hachage SHA256 du fichier chargé. Exemple : e81bb824c4a09a811af17deae22f22dd2e1ec8cbb00b22629d2899f7c68da274 |
| 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,HttpResponseExpiresetHttpResponseHeaderCount.
Prochaines étapes
Pour plus d’informations, reportez-vous aux rubriques suivantes :