Schémas ASIM (Advanced Security Information Model)

Un schéma ASIM (Advanced Security Information Model) est un ensemble de champs qui représentent une activité ou une entité. L’utilisation des champs d’un schéma normalisé dans une requête garantit que la requête fonctionne avec chaque source normalisée.

Pour comprendre comment les schémas s’intègrent dans l’architecture ASIM, reportez-vous au diagramme de l’architecture ASIM.

Schémas d’activité/d’événement

Les références de schéma décrivent les champs qui composent chaque schéma. ASIM définit actuellement les schémas suivants pour les événements :

Schéma Nom du schéma pour les tests Version Statut
Événement d’alerte AlertEvent 0,1 Disponible
Événement d’audit AuditEvent 0.1.2 Disponible
Événement d’authentification Authentication 0.1.4 Disponible
Activité DHCP DhcpEvent 0.1.1 Disponible
Activité DNS Dns 0.1.7 Disponible
Activité de fichier FileEvent 0.2.2 Disponible
Session réseau NetworkSession 0.2.7 Disponible
Événement de processus ProcessEvent 0.1.4 Disponible
Événement de registre RegistryEvent 0.1.3 Disponible
Gestion des utilisateurs UserManagement 0.1.2 Disponible
Web Session WebSession 0.2.7 Disponible

Schémas d’entité

ASIM définit actuellement les schémas suivants pour les entités :

Schéma Nom du schéma pour les tests Version Statut
Entité de ressource AssetEntity 0.1.0 Disponible

Pour les entités qui font partie d’autres schémas ASIM, reportez-vous à Entités d’événement.

Nommage des champs

Au cœur de chaque schéma se trouvent ses noms de champs. Les noms de champs appartiennent aux groupes suivants :

Lorsque les 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 instructions de champ d’entité. Sinon, 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.

Champs communs

Certains champs sont communs à tous les schémas ASIM. Chaque schéma peut ajouter des instructions pour l’utilisation de certains des champs courants 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 .

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 autrement, 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 s’ils sont disponibles. Toutefois, elles 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 , s’ils sont disponibles, peuvent être normalisés ou conservés dans 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 dans le champ commun DvcId et est donc obligatoire si ce dernier est rempli.
  • Alias est un type spécial d’un champ conditionnel et est obligatoire si le champ avec alias est rempli.

Entités d’événement

Les événements évoluent autour d’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 enregistrement unique peut inclure plusieurs entités du même type, telles qu’un hôte source et un hôte de destination.

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

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

Pour activer la fonctionnalité d’entité, la représentation d’entité suit les instructions suivantes :

Guideline 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 seule entité 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 d’alias est l’entité la plus utilisée pour chaque type.
Identificateurs et types Un schéma normalisé permet plusieurs identificateurs pour chaque entité, que nous prévoyons de 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 la forme 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 portant le même nom et le suffixe 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 des types d’entités spécifiques, consultez :

Pour plus d’informations sur les schémas d’entité complets, consultez :

Alias

Les alias autorisent plusieurs noms pour une valeur spécifiée. Dans certains cas, différents utilisateurs s’attendent à ce qu’un champ ait des noms différents. Par exemple, dans la terminologie DNS, vous pouvez vous attendre à un champ nommé DnsQuery, alors que plus généralement, il contient un nom de domaine. L’alias Domain aide l’utilisateur en autorisant l’utilisation des deux noms.

Remarque

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

Dans certains cas, un alias peut avoir la valeur d’un des plusieurs champs, selon les valeurs disponibles dans l’événement. Par exemple, l’alias Dvc , les alias sont les champs DvcFQDN, DvcId, DvcHostname ou DvcIpAddr ou Event Product . Lorsqu’un alias peut avoir plusieurs valeurs, son type doit être une chaîne pour prendre en charge toutes les valeurs possibles avec alias. Par conséquent, lorsque vous affectez une valeur à un tel 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 impliquent un stockage de données en double. Au lieu de cela, les analyseurs stub ajoutent les alias. Pour implémenter des alias dans des analyseurs, créez une copie de la valeur d’origine à l’aide de l’opérateur extend .

Types logiques

Chaque champ de schéma a un type . L’espace de travail Log Analytics a un ensemble limité de types de données. Pour cette raison, Microsoft Sentinel utilise un type logique pour de nombreux champs de schéma, que Log Analytics n’applique 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.

Type de données Type physique Format et valeur
Boolean Bool Utilisez le type de données KQL bool intégré plutôt qu’une représentation numérique ou sous forme de chaîne de valeurs booléennes.
Énumérés String Liste des 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 en priorité décroissante :

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

Remarque : Le cas échéant, l’heure doit être ajustée.
Adresse MAC String notation Colon-Hexadecimal.
Adresse IP String Microsoft Sentinel schémas n’ont pas d’adresses IPv4 et IPv6 distinctes. Tout champ d’adresse IP peut inclure une adresse IPv4 ou une adresse IPv6, comme suit :

- IPv4 dans une notation décimale par points.
- IPv6 en notation 8 hextets, ce qui permet la forme courte.

Par 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 Nom de domaine complet utilisant une notation par points, par exemple. learn.microsoft.com Pour plus d’informations, consultez L’entité Device.
Hostname String Un nom d’hôte qui n’est pas un nom de domaine complet comprend jusqu’à 63 caractères, y compris des lettres, des chiffres et des traits d’union. Pour plus d’informations, consultez L’entité Device.
Domaine String la partie domaine d’un nom de domaine complet, sans le nom d’hôte, par exemple , learn.microsoft.com. Pour plus d’informations, consultez L’entité Device.
DomainType Énumérés Type de domaine stocké dans les champs domaine et nom de domaine complet. Pour obtenir la liste des valeurs et plus d’informations, consultez L’entité Device.
DvcIdType Énumérés Type de l’ID d’appareil stocké dans les champs DvcId. Pour obtenir la liste des valeurs autorisées et plus d’informations, consultez DvcIdType.
DeviceType Énumérés Type de l’appareil stocké dans les champs DeviceType. Les valeurs admises sont les suivantes :
- Computer
- Mobile Device
- IOT Device
- Other. Pour plus d’informations, consultez L’entité Device.
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és Type de nom d’utilisateur stocké dans les champs nom d’utilisateur. Pour plus d’informations et pour obtenir la liste des valeurs prises en charge, consultez l’entité User.
UserIdType Énumérés Type de l’ID stocké dans les champs d’ID utilisateur.

Les valeurs prises en charge sont SID, UIS, AADIDOktaId, AWSId, et PUID. Pour plus d’informations, consultez L’entité Utilisateur.
UserType Énumérés Type d’utilisateur. Pour plus d’informations et pour obtenir la liste des valeurs autorisées, consultez L’entité Utilisateur.
AppType Énumérés Type d’une application. Pour obtenir la liste des valeurs prises en charge, consultez L’entité Application.
Pays String Chaîne utilisant la norme ISO 3166-1, selon la priorité suivante :

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

La liste des codes est disponible sur le site web de l’Organisation internationale de normalisation (ISO).
Région String Nom de la subdivision du pays/de la région, à l’aide de la norme ISO 3166-2.

La liste des codes est disponible sur le site web de l’Organisation internationale de normalisation (ISO).
City String
Longitude Double Représentation de coordonnées ISO 6709 (décimale signée).
Latitude Double Représentation de coordonnées 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 Entier Niveau de confiance normalisé entre 0 et 100.
RiskLevel Entier Niveau de risque normalisé entre 0 et 100.
SchemaVersion String Une version de schéma ASIM au format <major>.<minor>.<sub-minor>
DnsQueryClassName String Nom de la classe DNS.
Username String Un nom d’utilisateur simple ou qualifié de domaine

Exemple de mappage d’entité

Cette section utilise l’événement Windows 4624 comme exemple pour décrire la façon dont les données d’événement sont normalisées pour Microsoft Sentinel.

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

Terminologie Microsoft Préfixe de champ d’événement d’origine Préfixe de champ ASIM Description
Subject Subject Actor L’utilisateur qui a signalé des informations sur une connexion réussie.
Nouvelle ouverture de session Target TargetUser Utilisateur pour lequel la connexion a été effectuée.
Processus - ActingProcess Processus qui a tenté la connexion.
Informations réseau - Src Machine à partir de laquelle une tentative de connexion a été effectuée.

En fonction 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$ Créé 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 Administrateur\WIN-GG82ULGC9GO$ Créé en concaténant les deux champs
Username 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 Ordinateur* WIN-GG82ULGC9GO
Hostname (Nom d'hôte) Ordinateur* Alias

Étapes suivantes

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

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