Partager via


Schémas du modèle ASIM (Advanced Security Information Model)

Un schéma du modèle ASIM (Advanced Security Information Model) est un ensemble de champs qui représentent une activité. L’utilisation des champs d’un schéma normalisé dans une requête garantit que la requête fonctionnera avec toutes les sources normalisées.

Pour comprendre le fonctionnement des schémas dans l’architecture ASIM, consultez le Diagramme d’architecture ASIM.

Les références de schéma présentent les champs qui composent chaque schéma. ASIM définit actuellement les schémas suivants :

schéma Version Statut
Événement d'alerte 0.1 GA
Événement d’audit 0.1.2 GA
Événement d’authentification 0.1.4 GA
Activité DNS 0.1.7 GA
Activité DHCP 0.1.1 GA
Activité de fichier 0.2.2 GA
Session réseau 0.2.7 GA
Événement de processus 0.1.4 GA
Événement du Registre 0.1.3 GA
Gestion des utilisateurs 0.1.2 GA
Session web 0.2.7 GA

Concepts de schéma

Les concepts suivants permettent de comprendre les documents de référence de schéma et d’étendre le schéma de manière normalisée dans le cas où vos données incluent des informations que le schéma ne couvre pas.

Dénomination de champs

Les noms de champs sont au cœur de chaque schéma. Les noms de champs appartiennent aux groupes suivants :

  • Champs communs à tous les schémas.
  • Champs spécifiques à un schéma.
  • Champs qui représentent des entités, telles que des utilisateurs, qui participent au schéma. Les champs qui représentent des entités sont similaires dans tous les schémas.

Lorsque des sources ont des champs qui ne sont pas présentés dans le schéma documenté, ils sont normalisés pour maintenir la cohérence. Si les champs supplémentaires représentent une entité, ils sont normalisés en fonction des recommandations des champs d’entité. Dans le cas contraire, les schémas s’efforcent de maintenir la cohérence entre tous les schémas.

Par exemple, alors que les journaux d’activité du serveur DNS ne fournissent pas d’informations utilisateur, les journaux d’activité DNS d’un point de terminaison peuvent inclure des informations utilisateur, qui peuvent être normalisées conformément aux instructions de l’entité utilisateur. |

Types logiques de champ

Chaque champ de schéma a un type. L’espace de travail Log Analytics possède un ensemble limité de types de données. Pour cette raison, Microsoft Sentinel utilise un type logique pour de nombreux champs de schéma, ce que Log Analytics n’impose pas, mais qui est requis pour la compatibilité des schémas. Les types de champs logiques garantissent que les valeurs et les noms de champs sont cohérents entre les sources.

Pour plus d’informations, consultez Types logiques.

Classes de champ

Les champs peuvent avoir plusieurs classes, qui définissent quand les champs doivent être implémentés par un analyseur :

  • Les champs obligatoires doivent apparaître dans chaque analyseur. Si votre source ne fournit pas d’informations pour cette valeur, ou si les données ne peuvent pas être ajoutées par ailleurs, elle ne prend pas en charge la plupart des éléments de contenu qui font référence au schéma normalisé.
  • Les champs recommandés doivent être normalisés si disponibles. Toutefois, ils peuvent ne pas être disponibles dans toutes les sources. Tout élément de contenu qui fait référence à ce schéma normalisé doit prendre en compte la disponibilité.
  • Les champs facultatifs , le cas échéant, peuvent être normalisés ou laissés sous leur forme d’origine. En règle générale, un analyseur minimal ne les normalise pas pour des raisons de performances.
  • Les champs conditionnels sont obligatoires si le champ qu’ils suivent est rempli. Les champs conditionnels sont généralement utilisés pour décrire la valeur dans un autre champ. Par exemple, le champ commun DvcIdType décrit la valeur int du champ commun DvcId ; il est donc obligatoire si ce dernier est rempli.
  • L’alias est un type spécial de champ conditionnel et est obligatoire si le champ alias est rempli.

Champs communs

Certains champs sont communs à tous les schémas ASIM. Chaque schéma peut ajouter des directives pour l'utilisation de certains des champs communs dans le contexte du schéma spécifique. Par exemple, les valeurs autorisées pour le champ EventType peuvent varier selon le schéma, tout comme la valeur du champ EventSchemaVersion.

Entités

Les événements évoluent autour des entités, telles que les utilisateurs, les hôtes, les processus ou les fichiers. Chaque entité peut nécessiter plusieurs champs pour la décrire. Par exemple, un hôte peut avoir un nom et une adresse IP.

Un seul enregistrement peut inclure plusieurs entités du même type, comme un hôte source et un hôte de destination.

ASIM définit la manière de décrire les entités de manière cohérente, et les entités permettent d’étendre les schémas.

Par exemple, si le schéma de session réseau n’inclut pas d’informations sur les processus, certaines sources d’événements fournissent des informations sur les processus qui peuvent être ajoutés. Pour plus d’informations, consultez Entités.

Aliases

Les alias autorisent les noms multiples pour une valeur spécifiée. Dans certains cas, les différents utilisateurs s’attendent à ce qu’un champ ait des noms différents. Par exemple, dans la terminologie DNS, il s’agit d’un champ nommé DnsQuery, alors que plus généralement, il contient un nom de domaine. L’alias Domain est pratique, car il permet à l’utilisateur d’employer les deux noms.

Note

Les alias sont destinés à aider un analyste avec des requêtes interactives. Lorsque vous utilisez des requêtes dans du contenu réutilisable, comme des détections personnalisées, des règles analytiques ou des classeurs, utilisez le champ portant l'alias plutôt que l'alias lui-même. L’utilisation du champ alias garantit de meilleures performances, moins d’erreurs et une meilleure lisibilité des requêtes.

Dans certains cas, un alias peut prendre la valeur d’un des différents champs, selon les valeurs disponibles dans l’événement. Par exemple, l’alias Dvc peut être associé à des champs DvcFQDN, DvcId, DvcHostname, DvcIpAddr ou Event Product. Quand un alias peut avoir plusieurs valeurs, son type doit être une chaîne pour prendre en charge toutes les valeurs avec alias possibles. Par conséquent, lorsque vous attribuez une valeur à ce genre d’alias, veillez à convertir le type en chaîne à l’aide de la fonction KQL tostring.

Les tables normalisées natives n’incluent pas d’alias, car ceux-ci nécessitent la duplication du stockage de données. À la place, les analyseurs stub ajoutent les alias. Pour implémenter des alias dans les analyseurs, créez une copie de la valeur d’origine avec l’opérateur extend. |

Types logiques

Chaque champ de schéma a un type. Certains intègrent des types de Log Analytics, tels que string, int, datetime ou dynamic. D’autres champs ont un type logique qui représente la façon dont les valeurs de champ doivent être normalisées.

Type de données Type physique Format et valeur
Booléen Bool Utilisez le type de données boolKQL intégré plutôt qu’une représentation des valeurs booléennes numériques ou sous forme de chaîne.
Énuméré String Liste de valeurs définies explicitement pour le champ. La définition de schéma répertorie les valeurs acceptées.
Date/Heure Selon la fonctionnalité de méthode d’ingestion, utilisez l’une des représentations physiques suivantes par ordre décroissant des priorités :

- Type de DateHeure intégré de Log Analytics
- Champ de type entier utilisant une représentation numérique de DateHeure de Log Analytics.
- Champ de type chaîne utilisant une représentation numérique de DateHeure de Log Analytics
- Champ de chaîne stockant un format de date/heure de Log Analytics pris en charge.
La représentation de date et d’heure de Log Analytics est similaire, mais différente de celle d’Unix. Pour plus d'informations, consultez les instructions de conversion.

Remarque : le cas échéant, l’heure doit être ajustée au fuseau horaire.
Adresse MAC String Notation hexadécimale à deux-points.
Adresse IP String Les schémas Microsoft Sentinel n’ont pas d’adresses IPv4 et IPv6 distinctes. Tout champ d’adresse IP peut inclure une adresse IPv4 ou IPv6, comme suit :

- IPv4 dans une notation décimale à points
- IPv6 en notation 8 hextets, permettant les formes abrégées.

Exemple :
- IPv4 : 192.168.10.10
- IPv6 : FEDC:BA98:7654:3210:FEDC:BA98:7654:3210
- forme abrégée IPv6 : 1080::8:800:200C:417A
FQDN String Un nom de domaine complet à l’aide d’une notation par points, par exemple learn.microsoft.com. Pour plus d’informations, consultez L’entité appareil.
Nom d’hôte String Un nom d’hôte qui n’est pas un nom de domaine complet (FQDN) inclut jusqu’à 63 caractères, y compris des lettres, des chiffres et des traits d’union. Pour plus d’informations, consultez L’entité appareil.
Domain String la partie domaine d'un FQDN, sans le nom d'hôte, par exemple learn.microsoft.com. Pour plus d’informations, consultez L’entité appareil.
DomainType Énuméré Type de domaine stocké dans les champs de domaine et de nom de domaine complet. Pour plus d’informations et pour retrouver une liste de valeurs, consultez L’entité appareil.
DvcIdType Énuméré Type de l’ID d’appareil stocké dans les champs DvcId. Pour obtenir la liste des valeurs autorisées et des informations complémentaires, reportez-vous à DvcIdType.
DeviceType Énuméré Type de l’appareil stocké dans les champs DeviceType. Les valeurs possibles incluent :
- Computer
- Mobile Device
- IOT Device
- Other. Pour plus d’informations, consultez L’entité appareil.
Nom d’utilisateur String Nom d’utilisateur valide dans l’un des types pris en charge. Pour plus d’informations, consultez L’entité utilisateur.
UsernameType Énuméré Type de nom d’utilisateur stocké dans les champs de nom d’utilisateur. Pour plus d’informations et pour obtenir la liste des valeurs prises en charge, consultez L’entité de l’utilisateur.
UserIdType Énuméré Type de l’ID stocké dans les champs d’ID d’utilisateur.

Les valeurs prises en charge sont SID, UIS, AADID, OktaId, AWSId et PUID. Pour plus d’informations, consultez L’entité utilisateur.
UserType Énuméré Type d’un utilisateur. Pour plus d’informations et pour obtenir la liste des valeurs autorisées, consultez L’entité de l’utilisateur.
AppType Énuméré Type d’une application. Les valeurs Process
, Service, Resource, URL, SaaS application, CSP et Other sont prises en charge.
Pays String Chaîne utilisant ISO 3166-1 conformément à la priorité suivante :

- Codes alpha-2, tels que US pour les États-Unis.
- Codes alpha-3, tels que USA pour les États-Unis.
- Nom court.

La liste des codes se trouve sur le site Web International Standards Organization (ISO).
Région String Nom de subdivision du pays/de la région selon la norme ISO 3166-2.

La liste des codes se trouve sur le site Web International Standards Organization (ISO).
Ville String
Longitude Double Représentation de coordonnée ISO 6709 (décimale signée).
Latitude Double Représentation de coordonnée ISO 6709 (décimale signée).
MD5 String 32 caractères hexadécimaux.
SHA1 String 40 caractères hexadécimaux.
SHA256 String 64 caractères hexadécimaux.
SHA512 String 128 caractères hexadécimaux.
ConfidenceLevel Nombre entier Niveau de confiance normalisé à la plage de 0 à 100.
RiskLevel Nombre entier Niveau de risque normalisé à la plage de 0 à 100.
SchemaVersion String Une version de schéma ASIM au format <major>.<minor>.<sub-minor>
DnsQueryClassName String Le nom de la classe DNS.
Nom d’utilisateur String Un nom d'utilisateur simple ou qualifié de domaine

Entités

Les événements évoluent autour des entités, telles que les utilisateurs, les hôtes, les processus ou les fichiers. La représentation d’entité permet à plusieurs entités du même type de faire partie d’un seul enregistrement et prend en charge plusieurs attributs pour les mêmes entités.

Pour activer la fonctionnalité d’entité, la représentation d’entité présente les indications suivantes :

Instruction Description
Préfixes et alias Étant donné qu’un événement unique inclut souvent plusieurs entités du même type, telles que les hôtes source et de destination, les préfixes sont utilisés pour identifier l’entité associée à un champ.

Pour maintenir la normalisation, ASIM utilise un petit ensemble de préfixes standard, en choisissant les préfixes les plus appropriés pour le rôle spécifique des entités.

Si une entité unique d’un type est pertinente pour un événement, il n’est pas nécessaire d’utiliser un préfixe. En outre, un ensemble de champs sans préfixe sert d’alias à l’entité la plus utilisée pour chaque type.
Identificateurs et types Un schéma normalisé autorise plusieurs identificateurs pour chaque entité, qui sont censés coexister dans les événements. Si l’événement source a d’autres identificateurs d’entité qui ne peuvent pas être mappés au schéma normalisé, conservez-les dans le formulaire source ou utilisez le champ dynamique AdditionalFields.

Pour conserver les informations de type pour les identificateurs, stockez le type, le cas échéant, dans un champ avec le même nom et un suffixe de Type. Par exemple, UserIdType.
Attributs Les entités ont souvent d’autres attributs qui ne servent pas d’identificateur et peuvent également être qualifiés avec un descripteur. Par exemple, si l’utilisateur source possède des informations de domaine, le champ normalisé est SrcUserDomain.

Pour plus d’informations sur les types d’entités spécifiques, consultez :

Exemple de mappage d’entité

Cette section utilise l'événement Windows 4624 comme exemple pour décrire comment les données de l'événement sont normalisées pour Microsoft Sentinel.

Cet événement comporte les entités suivantes :

Terminologie Microsoft Préfixe du champ d’événement d’origine Préfixe du champ ASIM Description
Subject Subject Actor Utilisateur qui a signalé des informations sur une connexion réussie.
Nouvelle connexion Target TargetUser Utilisateur pour lequel la connexion a été effectuée.
Processus - ActingProcess Processus qui a tenté de se connecter.
Informations sur le réseau - Src Ordinateur à partir duquel une tentative de connexion a été effectuée.

Sur la base de ces entités, l’événement Windows 4624 est normalisé comme suit (certains champs sont facultatifs) :

Champ normalisé Champ d'origine Valeur dans l’exemple Notes
ActorUserId SubjectUserSid S-1-5-18
ActorUserIdType - SID
ActorUserName SubjectDomainName\ SubjectUserName WORKGROUP\WIN-GG82ULGC9GO$ Construit en concaténant les deux champs
ActorUserNameType - Windows
ActorSessionId SubjectLogonId 0x3e7
TargetUserId TargetUserSid S-1-5-21-1377283216-344919071-3415362939-500
UserId TargetUserSid Alias
TargetUserIdType - SID
TargetUserName TargetDomainName\ TargetUserName Administrator\WIN-GG82ULGC9GO$ Construit en concaténant les deux champs
Nom d’utilisateur TargetDomainName\ TargetUserName Alias
TargetUserNameType - Windows
TargetSessionId TargetLogonId 0x8dcdc
ActingProcessName ProcessName C:\Windows\System32\svchost.exe
ActingProcessId ProcessId 0x44c
SrcHostname WorkstationName Windows
SrcIpAddr IpAddress 127.0.0.1
SrcPortNumber IpPort 0
TargetHostname Computer WIN-GG82ULGC9GO
Nom d’hôte Computer Alias

Étapes suivantes

Cet article fournit une vue d’ensemble de la normalisation dans Microsoft Sentinel et ASIM.

Pour plus d'informations, consultez les pages suivantes :