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

Le modèle d’informations DNS est utilisé pour décrire les événements signalés par un serveur DNS ou un système de sécurité DNS, et est utilisé par Microsoft Sentinel pour activer l’analytique indépendante de la source.

Pour plus d’informations, consultez Normalisation et Advanced Security Information Model (ASIM).

Vue d’ensemble du schéma

Le schéma DNS ASIM représente l’activité du protocole DNS. Les serveurs DNS et les appareils qui envoient des requêtes DNS à un serveur DNS journaliser l’activité DNS. L’activité de protocole DNS inclut les requêtes DNS, les mises à jour du serveur DNS et les transferts de données en bloc DNS. Étant donné que le schéma représente l’activité de 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 DNS ne représente pas les événements d’audit du serveur DNS.

L’activité la plus importante signalée par les serveurs DNS est une requête DNS, pour laquelle le EventType champ est défini sur Query.

Les champs les plus importants d’un événement DNS sont les suivants :

  • DnsQuery, qui indique le nom de domaine pour lequel la requête a été émise.

  • SrcIpAddr (alias ipAddr), qui représente l’adresse IP à partir de laquelle la requête a été générée. Les serveurs DNS fournissent généralement le champ SrcIpAddr, mais les clients DNS ne fournissent parfois pas ce champ et fournissent uniquement le champ SrcHostname .

  • EventResultDetails, qui indique si la demande a réussi et, dans le cas contraire, pourquoi.

  • Le cas échéant, DnsResponseName, qui contient la réponse fournie par le serveur à la requête. ASIM ne nécessite pas d’analyse de la réponse et son format varie d’une source à l’autre.

    Pour utiliser ce champ dans du contenu indépendant de la source, recherchez le contenu avec les has opérateurs ou contains .

Les événements DNS collectés sur l’appareil client peuvent également inclure des informations sur l’utilisateur et le processus .

Instructions pour la collecte des événements DNS

DNS est un protocole unique en ce qu’il peut traverser un grand nombre d’ordinateurs. En outre, étant donné que DNS utilise UDP, les requêtes et les réponses sont découplées et ne sont pas directement liées les unes aux autres.

L’image suivante montre un flux de requête DNS simplifié, comprenant quatre segments. Une demande réelle peut être plus complexe, avec davantage de segments impliqués.

Flux de requête DNS simplifié.

Étant donné que les segments de requête et de réponse ne sont pas directement connectés les uns aux autres dans le flux de requête DNS, la journalisation complète peut entraîner une duplication significative.

Le segment le plus précieux à consigner est la réponse au client. La réponse fournit les requêtes de nom de domaine, le résultat de la recherche et l’adresse IP du client. Bien que de nombreux systèmes DNS journalisent uniquement ce segment, la journalisation des autres parties présente une valeur. Par exemple, une attaque d’empoisonnement du cache DNS tire souvent parti des réponses fausses d’un serveur amont.

Si votre source de données prend en charge la journalisation DNS complète et que vous avez choisi de journaliser plusieurs segments, ajustez vos requêtes pour empêcher la duplication des données dans Microsoft Sentinel.

Par exemple, vous pouvez modifier votre requête avec la normalisation suivante :

_Im_Dns | where SrcIpAddr != "127.0.0.1" and EventSubType == "response"

Analyseurs

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

Analyseurs prêtes à l’emploi

Pour utiliser des analyseurs qui unifient tous les analyseurs ASIM prêtes à l’emploi et vous assurer que votre analyse s’exécute sur toutes les sources configurées _Im_Dns , utilisez l’analyseur d’unification comme nom de table dans votre requête.

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

Ajouter vos propres analyseurs normalisés

Lors de l’implémentation d’analyseurs personnalisés pour le modèle d’informations DNS, nommez vos fonctions KQL au format vimDns<vendor><Product>. Reportez-vous à l’article Gestion des analyseurs ASIM pour savoir comment ajouter vos analyseurs personnalisés à l’analyseur d’unification DNS.

Filtrage des paramètres de l’analyseur

Les analyseurs DNS prennent en charge les paramètres de filtrage. Bien que ces paramètres 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 requêtes DNS exécutées à 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 requêtes DNS qui ont fini de s’exécuter à cette heure 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 string Filtrez uniquement les requêtes DNS à partir de cette adresse IP source.
domain_has_any dynamique/chaîne Filtrez uniquement les requêtes DNS où ( domain ou query) a l’un des noms de domaine répertoriés, y compris dans le cadre du domaine d’événement. La longueur de la liste est limitée à 10 000 éléments.
responsecodename string Filtrez uniquement les requêtes DNS pour lesquelles le nom de code de réponse correspond à la valeur fournie.
Par exemple : NXDOMAIN
response_has_ipv4 string Filtrez uniquement les requêtes DNS dans lesquelles le champ de réponse inclut l’adresse IP ou le préfixe d’adresse IP fourni. Utilisez ce paramètre lorsque vous souhaitez filtrer sur une adresse IP ou un préfixe unique.

Les résultats ne sont pas retournés pour les sources qui ne fournissent pas de réponse.
response_has_any_prefix Dynamique Filtrez uniquement les requêtes DNS dans lesquelles le champ de réponse inclut l’une des adresses IP ou préfixes d’adresses IP répertoriés. Les préfixes doivent se terminer par un ., par exemple : 10.0..

Utilisez ce paramètre lorsque vous souhaitez filtrer sur une liste d’adresses IP ou de préfixes.

Les résultats ne sont pas retournés pour les sources qui ne fournissent pas de réponse. La longueur de la liste est limitée à 10 000 éléments.
Eventtype string Filtrez uniquement les requêtes DNS du type spécifié. Si aucune valeur n’est spécifiée, seules les requêtes de recherche sont retournées.

Par exemple, pour filtrer uniquement les requêtes DNS du dernier jour qui n’ont pas pu résoudre le nom de domaine, utilisez :

_Im_Dns (responsecodename = 'NXDOMAIN', starttime = ago(1d), endtime=now())

Pour filtrer uniquement les requêtes DNS pour une liste spécifiée de noms de domaine, utilisez :

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

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.'])

Contenu normalisé

Pour obtenir la liste complète des règles d’analyse qui utilisent des événements DNS normalisés, consultez Contenu de sécurité des requêtes DNS.

Détails du schéma

Le modèle d’informations DNS est aligné sur le schéma d’entité DNS OSSEM.

Pour plus d’informations, consultez la référence du paramètre DNS IANA (Internet Assigned Numbers Authority).

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 DNS :

Field Class Type Description
EventType Obligatoire Énumérés Indique l’opération signalée par l’enregistrement.

Pour les enregistrements DNS, cette valeur est le code d’opération DNS.

Exemple : Query
EventSubType Facultatif Énumérés Soit request ou response.

Pour la plupart des sources, seules les réponses sont journalisées et, par conséquent, la valeur est souvent response.
EventResultDetails Obligatoire Énumérés Pour les événements DNS, ce champ fournit le code de réponse DNS.

Remarques :
- IANA ne définit pas la casse pour les valeurs. L’analytique doit donc normaliser le cas.
- Si la source fournit uniquement un code de réponse numérique et non un nom de code de réponse, l’analyseur doit inclure une table de recherche pour enrichir avec cette valeur.
- Si cet enregistrement représente une demande et non une réponse, définissez sur NA.

Exemple : NXDOMAIN
EventSchemaVersion Obligatoire SchemaVersion (String) La version du schéma documentée ici est 0.1.7.
EventSchema Obligatoire Énumérés Le nom du schéma documenté ici est Dns.
Champs Dvc - - Pour les événements DNS, les champs d’appareil font référence au système qui signale l’événement DNS.

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, consultez 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 système source

Field Classe Type Description
Src Alias String Identificateur unique de l’appareil source.

Ce champ peut alias les champs SrcDvcId, SrcHostname ou SrcIpAddr .

Exemple : 192.168.12.1
SrcIpAddr Recommandé Adresse IP Adresse IP du client qui a envoyé la requête DNS. Pour une requête DNS récursive, cette valeur est généralement l’appareil de création de rapports et, dans la plupart des cas, elle est définie sur 127.0.0.1.

Exemple : 192.168.12.1
SrcPortNumber Facultatif Entier Port source de la requête DNS.

Exemple : 54312
IpAddr Alias Alias de SrcIpAddr
SrcGeoCountry Facultatif Pays Pays/région associé à l’adresse IP source.

Exemple : USA
SrcGeoRegion Facultatif Région Région associée à l’adresse IP source.

Exemple : Vermont
SrcGeoCity Facultatif Ville Ville associée à l’adresse IP source.

Exemple : Burlington
SrcGeoLatitude Facultatif Latitude Latitude de la coordonnée géographique associée à l’adresse IP source.

Exemple : 44.475833
SrcGeoLongitude Facultatif Longitude Longitude de la coordonnée géographique associée à l’adresse IP source.

Exemple : 73.211944
SrcRiskLevel Facultatif Entier Niveau de risque associé à la source. La valeur doit être ajustée à une plage de 0 à , avec 0 pour sans gravité et 100 pour 100un risque élevé.

Exemple : 90
SrcOriginalRiskLevel Facultatif String Niveau de risque associé à la source, tel que signalé par l’appareil de création de rapports.

Exemple : Suspicious
SrcHostname Recommandé Hostname (String) Nom d’hôte de l’appareil source, à l’exception des informations de domaine.

Exemple : DESKTOP-1282V4D
Hostname (Nom d'hôte) Alias Alias de SrcHostname
SrcDomain Recommandé Domaine (Chaîne) Domaine de l’appareil source.

Exemple : Contoso
SrcDomainType Conditionnelle Énumérés Type de SrcDomain, s’il est connu. Les valeurs admises sont les suivantes :
- Windows (par exemple : contoso)
- FQDN (par exemple : microsoft.com)

Obligatoire si SrcDomain est utilisé.
SrcFQDN Facultatif Nom de domaine complet (chaîne) Nom d’hôte de l’appareil source, y compris les informations de domaine lorsqu’elles sont disponibles.

Remarque : ce champ prend en charge à la fois le format FQDN traditionnel et le format domaine\nom d’hôte Windows. Le champ SrcDomainType reflète le format utilisé.

Exemple : Contoso\DESKTOP-1282V4D
SrcDvcId Facultatif String ID de l’appareil source tel qu’indiqué dans l’enregistrement.

Par exemple : ac7e9755-8eae-4ffc-8a02-50ed7a2216c3
SrcDvcScopeId Facultatif String ID de l’étendue de la plateforme cloud à laquelle appartient l’appareil. SrcDvcScopeId mappé à un ID d’abonnement sur Azure et à un ID de compte sur AWS.
SrcDvcScope Facultatif String Étendue de la plateforme cloud à laquelle appartient l’appareil. SrcDvcScope mappé à un ID d’abonnement sur Azure et à un ID de compte sur AWS.
SrcDvcIdType Conditionnelle Énumérés Type de SrcDvcId, s’il est connu. Les valeurs admises sont les suivantes :
- AzureResourceId
- MDEid

Si plusieurs ID sont disponibles, utilisez le premier de la liste et stockez les autres dans SrcDvcAzureResourceId et SrcDvcMDEid, respectivement.

Remarque : Ce champ est obligatoire si SrcDvcId est utilisé.
SrcDeviceType Facultatif Énumérés Type de l’appareil source. Les valeurs admises sont les suivantes :
- Computer
- Mobile Device
- IOT Device
- Other
SrcDescription Facultatif String Texte descriptif associé à l’appareil. Par exemple : Primary Domain Controller.

Champs de l’utilisateur source

Field Classe Type Description
SrcUserId Facultatif String Représentation unique, alphanumérique et lisible par l’ordinateur de l’utilisateur source. Pour plus d’informations et pour obtenir d’autres champs pour d’autres ID, consultez L’entité Utilisateur.

Exemple : S-1-12-1-4141952679-1282074057-627758481-2916039507
SrcUserScope Facultatif String Étendue, telle que Microsoft Entra locataire, dans laquelle SrcUserId et SrcUsername sont définis. ou plus d’informations et la liste des valeurs autorisées, consultez UserScope dans l’article Vue d’ensemble du schéma.
SrcUserScopeId Facultatif String ID d’étendue, tel que Microsoft Entra ID d’annuaire, dans lequel SrcUserId et SrcUsername sont définis. Pour plus d’informations et pour obtenir la liste des valeurs autorisées, consultez UserScopeId dans l’article Vue d’ensemble du schéma.
SrcUserIdType Conditionnelle UserIdType Type de l’ID stocké dans le champ SrcUserId . Pour plus d’informations et pour obtenir la liste des valeurs autorisées, consultez UserIdType dans l’article Vue d’ensemble du schéma.
SrcUsername Facultatif Nom d’utilisateur (chaîne) Nom d’utilisateur source, y compris les informations de domaine lorsqu’elles sont disponibles. Pour plus d’informations, consultez L’entité Utilisateur.

Exemple : AlbertE
SrcUsernameType Conditionnelle UsernameType Spécifie le type du nom d’utilisateur stocké dans le champ SrcUsername . Pour plus d’informations et pour obtenir la liste des valeurs autorisées, consultez UsernameType dans l’article Vue d’ensemble du schéma.

Exemple : Windows
Utilisateur Alias Alias de SrcUsername
SrcUserType Facultatif UserType Type de l’utilisateur source. Pour plus d’informations et pour obtenir la liste des valeurs autorisées, consultez UserType dans l’article Vue d’ensemble du schéma.

Par exemple : Guest
SrcUserSessionId Facultatif String ID unique de la session de connexion de l’acteur.

Exemple : 102pTUgC3p8RIqHvzxLCHnFlg
SrcOriginalUserType Facultatif String Type d’utilisateur source d’origine, s’il est fourni par la source.

Champs de processus source

Field Classe Type Description
SrcProcessName Facultatif String Nom de fichier du processus qui a lancé la requête DNS. Ce nom est généralement considéré comme le nom du processus.

Exemple : C:\Windows\explorer.exe
Processus Alias Alias du SrcProcessName

Exemple : C:\Windows\System32\rundll32.exe
SrcProcessId Facultatif String ID de processus (PID) du processus qui a lancé la requête DNS.

Exemple : 48610176

Remarque : Le type est défini en tant que chaîne pour prendre en charge différents systèmes, mais sur Windows et Linux cette valeur doit être numérique.

Si vous utilisez un ordinateur Windows ou Linux et que vous avez utilisé un autre type, veillez à convertir les valeurs. Par exemple, si vous avez utilisé une valeur hexadécimale, convertissez-la en valeur décimale.
SrcProcessGuid Facultatif GUID (Chaîne) Identificateur unique (GUID) généré du processus qui a lancé la requête DNS.

Exemple : EF3BD0BD-2B74-60C5-AF5C-010000001E00

Champs système de destination

Field Classe Type Description
Dst Alias String Identificateur unique du serveur qui a reçu la requête DNS.

Ce champ peut alias les champs DstDvcId, DstHostname ou DstIpAddr .

Exemple : 192.168.12.1
DstIpAddr Facultatif Adresse IP Adresse IP du serveur qui a reçu la requête DNS. Pour une requête DNS normale, cette valeur est généralement l’appareil de création de rapports et, dans la plupart des cas, elle est définie sur 127.0.0.1.

Exemple : 127.0.0.1
DstGeoCountry Facultatif Pays Pays/région associé à l’adresse IP de destination. Pour plus d’informations, consultez Types logiques.

Exemple : USA
DstGeoRegion Facultatif Région Région, ou état, associé à l’adresse IP de destination. Pour plus d’informations, consultez Types logiques.

Exemple : Vermont
DstGeoCity Facultatif Ville Ville associée à l’adresse IP de destination. Pour plus d’informations, consultez Types logiques.

Exemple : Burlington
DstGeoLatitude Facultatif Latitude Latitude de la coordonnée géographique associée à l’adresse IP de destination. Pour plus d’informations, consultez Types logiques.

Exemple : 44.475833
DstGeoLongitude Facultatif Longitude Longitude de la coordonnée géographique associée à l’adresse IP de destination. Pour plus d’informations, consultez Types logiques.

Exemple : 73.211944
DstRiskLevel Facultatif Entier Niveau de risque associé à la destination. La valeur doit être ajustée sur une plage comprise entre 0 et 100, dont 0 est sans gravité et 100 est un risque élevé.

Exemple : 90
DstOriginalRiskLevel Facultatif String Niveau de risque associé à la destination, tel que signalé par l’appareil de création de rapports.

Exemple : Malicious
DstPortNumber Facultatif Entier Numéro de port de destination.

Exemple : 53
DstHostname Facultatif Hostname (String) Nom d’hôte de l’appareil de destination, à l’exclusion des informations de domaine. Si aucun nom d’appareil n’est disponible, stockez l’adresse IP appropriée dans ce champ.

Exemple : DESKTOP-1282V4D

Remarque : cette valeur est obligatoire si DstIpAddr est spécifié.
DstDomain Facultatif Domaine (Chaîne) Domaine de l’appareil de destination.

Exemple : Contoso
DstDomainType Conditionnelle Énumérés Type de DstDomain, s’il est connu. Les valeurs admises sont les suivantes :
- Windows (contoso\mypc)
- FQDN (learn.microsoft.com)

Obligatoire si DstDomain est utilisé.
DstFQDN Facultatif Nom de domaine complet (chaîne) Nom d’hôte de l’appareil de destination, y compris les informations de domaine lorsqu’elles sont disponibles.

Exemple : Contoso\DESKTOP-1282V4D

Remarque : ce champ prend en charge à la fois le format FQDN traditionnel et le format domaine\nom d’hôte Windows. Le DstDomainType reflète le format utilisé.
DstDvcId Facultatif String ID de l’appareil de destination tel que signalé dans l’enregistrement.

Exemple : ac7e9755-8eae-4ffc-8a02-50ed7a2216c3
DstDvcScopeId Facultatif String ID de l’étendue de la plateforme cloud à laquelle appartient l’appareil. DstDvcScopeId correspond à un ID d’abonnement sur Azure et à un ID de compte sur AWS.
DstDvcScope Facultatif String Étendue de la plateforme cloud à laquelle appartient l’appareil. DstDvcScope mappé à un ID d’abonnement sur Azure et à un ID de compte sur AWS.
DstDvcIdType Conditionnelle Énumérés Type de DstDvcId, s’il est connu. Les valeurs admises sont les suivantes :
- AzureResourceId
- MDEidIf

Si plusieurs ID sont disponibles, utilisez le premier de la liste ci-dessus et stockez les autres dans les champs DstDvcAzureResourceId ou DstDvcMDEid , respectivement.

Obligatoire si DstDeviceId est utilisé.
DstDeviceType Facultatif Énumérés Type de l’appareil de destination. Les valeurs admises sont les suivantes :
- Computer
- Mobile Device
- IOT Device
- Other
DstDescription Facultatif String Texte descriptif associé à l’appareil. Par exemple : Primary Domain Controller.

Champs spécifiques à DNS

Field Classe Type Description
DnsQuery Obligatoire String Domaine que la demande tente de résoudre.

Remarques :
- Certaines sources envoient des requêtes FQDN valides dans un format différent. Par exemple, dans le protocole DNS lui-même, la requête inclut un point (.) à la fin, qui doit être supprimé.
- Bien que le protocole DNS limite le type de valeur dans ce champ à un nom de domaine complet, la plupart des serveurs DNS autorisent n’importe quelle valeur, et ce champ n’est donc pas limité aux valeurs FQDN uniquement. Plus particulièrement, les attaques de tunneling DNS peuvent utiliser des valeurs FQDN non valides dans le champ de requête.
- Bien que le protocole DNS autorise plusieurs requêtes dans une seule requête, ce scénario est rare, s’il est trouvé. Si la requête comporte plusieurs requêtes, stockez la première dans ce champ, puis conservez éventuellement le reste dans le champ AdditionalFields .

Exemple : www.malicious.com
Domaine Alias Alias de DnsQuery.
DnsQueryType Facultatif Entier Codes du type d’enregistrement de ressource DNS.

Exemple : 28
DnsQueryTypeName Recommandé Énumérés Noms du type d’enregistrement de ressource DNS .

Remarques :
- IANA ne définit pas la casse pour les valeurs. L’analytique doit donc normaliser le cas en fonction des besoins.
- La valeur ANY est prise en charge pour le code de réponse 255.
- La valeur TYPExxxx est prise en charge pour les codes de réponse non mappés, où xxxx est la valeur numérique du code de réponse, comme indiqué par le serveur DNS BIND.
- Si la source fournit uniquement un code de type de requête numérique et non un nom de type de requête, l’analyseur doit inclure une table de recherche pour enrichir avec cette valeur.

Exemple : AAAA
DnsResponseName Facultatif String Contenu de la réponse, tel qu’inclus dans l’enregistrement.

Les données de réponse DNS sont incohérentes entre les appareils de création de rapports, sont complexes à analyser et ont moins de valeur pour l’analytique indépendante de la source. Par conséquent, le modèle d’informations ne nécessite pas d’analyse et de normalisation, et Microsoft Sentinel utilise une fonction auxiliaire pour fournir des informations de réponse. Pour plus d’informations, consultez Gestion de la réponse DNS.
DnsResponseCodeName Alias Alias pour EventResultDetails
DnsResponseCode Facultatif Entier Code de réponse numérique DNS.

Exemple : 3
TransactionIdHex Recommandé Hexadécimal (chaîne) ID unique de requête DNS attribué par le client DNS, au format hexadécimal. Notez que cette valeur fait partie du protocole DNS et diffère de DnsSessionId, l’ID de session de la couche réseau, généralement attribué par l’appareil de création de rapports.
NetworkProtocol Facultatif Énumérés Protocole de transport utilisé par l’événement de résolution réseau. La valeur peut être UDP ou TCP, et est généralement définie sur UDP pour DNS.

Exemple : UDP
NetworkProtocolVersion Facultatif Énumérés Version de NetworkProtocol. Lorsque vous l’utilisez pour faire la distinction entre la version IP, utilisez les valeurs IPv4 et IPv6.
DnsQueryClass Facultatif Entier ID de classe DNS.

Dans la pratique, seule la classe IN (ID 1) est utilisée et, par conséquent, ce champ a moins de valeur.
DnsQueryClassName Recommandé DnsQueryClassName (String) Nom de la classe DNS.

Dans la pratique, seule la classe IN (ID 1) est utilisée et, par conséquent, ce champ a moins de valeur.

Exemple : IN
DnsFlags Facultatif String Champ indicateurs, tel que fourni par l’appareil de création de rapports. Si des informations d’indicateur sont fournies dans plusieurs champs, concaténés-les avec des virgules comme séparateur.

Étant donné que les indicateurs DNS sont complexes à analyser et sont moins souvent utilisés par l’analytique, l’analyse et la normalisation ne sont pas nécessaires. Microsoft Sentinel pouvez utiliser une fonction auxiliaire pour fournir des informations sur les indicateurs. Pour plus d’informations, consultez Gestion de la réponse DNS.

Exemple : ["DR"]
DnsNetworkDuration Facultatif Entier Durée, en millisecondes, de l’achèvement de la requête DNS.

Exemple : 1500
Duration Alias Alias de DnsNetworkDuration
DnsFlagsAuthenticated Facultatif Booléen L’indicateur DNS AD , qui est lié à DNSSEC, indique dans une réponse que toutes les données incluses dans les sections de réponse et d’autorité de la réponse ont été vérifiées par le serveur en fonction des stratégies de ce serveur. Pour plus d’informations, consultez RFC 3655 Section 6.1 pour plus d’informations.
DnsFlagsAuthoritative Facultatif Booléen L’indicateur DNS AA indique si la réponse du serveur faisait autorité
DnsFlagsCheckingDisabled Facultatif Booléen L’indicateur DNS CD , qui est lié à DNSSEC, indique dans une requête que les données non vérifiées sont acceptables pour le système qui envoie la requête. Pour plus d’informations, consultez RFC 3655 Section 6.1 pour plus d’informations.
DnsFlagsRecursionAvailable Facultatif Booléen L’indicateur DNS RA indique dans une réponse que ce serveur prend en charge les requêtes récursives.
DnsFlagsRecursionDesired Facultatif Booléen L’indicateur DNS RD indique dans une requête que ce client souhaite que le serveur utilise des requêtes récursives.
DnsFlagsTruncated Facultatif Booléen L’indicateur DNS TC indique qu’une réponse a été tronquée car elle a dépassé la taille de réponse maximale.
DnsFlagsZ Facultatif Booléen L’indicateur DNS Z est un indicateur DNS déconseillé, qui peut être signalé par des systèmes DNS plus anciens.
DnsSessionId Facultatif string Identificateur de session DNS tel que signalé par l’appareil de création de rapports. Cette valeur est différente de TransactionIdHex, l’ID unique de requête DNS attribué par le client DNS.

Exemple : EB4BFA28-2EAD-4EF7-BC8A-51DF4FDF5B55
Sessionid Alias Alias en DnsSessionId
DnsResponseIpCountry Facultatif Pays Pays/région associé à l’une des adresses IP dans la réponse DNS. Pour plus d’informations, consultez Types logiques.

Exemple : USA
DnsResponseIpRegion Facultatif Région Région, ou état, associé à l’une des adresses IP dans la réponse DNS. Pour plus d’informations, consultez Types logiques.

Exemple : Vermont
DnsResponseIpCity Facultatif Ville Ville associée à l’une des adresses IP dans la réponse DNS. Pour plus d’informations, consultez Types logiques.

Exemple : Burlington
DnsResponseIpLatitude Facultatif Latitude Latitude de la coordonnée géographique associée à l’une des adresses IP dans la réponse DNS. Pour plus d’informations, consultez Types logiques.

Exemple : 44.475833
DnsResponseIpLongitude Facultatif Longitude Longitude de la coordonnée géographique associée à l’une des adresses IP dans la réponse DNS. Pour plus d’informations, consultez Types logiques.

Exemple : 73.211944

Champs d’inspection

Les champs suivants sont utilisés pour représenter une inspection effectuée par un appareil de sécurité DNS. Les champs liés à la menace représentent une menace unique associée à l’adresse source, à l’adresse de destination, à l’une des adresses IP de la réponse ou au domaine de requête DNS. Si plusieurs menaces ont été identifiées comme une menace, des informations sur d’autres adresses IP peuvent être stockées dans le champ AdditionalFields.

Field Classe Type Description
UrlCategory Facultatif String Une source d’événement DNS peut également rechercher la catégorie des domaines demandés. Le champ est appelé UrlCategory pour s’aligner sur le schéma réseau Microsoft Sentinel.

DomainCategory est ajouté en tant qu’alias adapté au DNS.

Exemple : Educational \\ Phishing
DomainCategory Alias Alias en UrlCategory.
RuleName Facultatif String Nom ou ID de la règle qui a identifié la menace.

Exemple : AnyAnyDrop
RuleNumber Facultatif Entier Numéro de la règle qui a identifié la menace.

Exemple : 23
Règle Alias String Valeur de RuleName ou valeur de RuleNumber. Si la valeur de RuleNumber est utilisée, le type doit être converti en chaîne.
RuleNumber Facultatif int Numéro de la règle associée à l’alerte.

P. ex. 123456
RuleName Facultatif string Nom ou ID de la règle associée à l’alerte.

P. ex. Server PSEXEC Execution via Remote Access
ThreatId Facultatif String ID de la menace ou du programme malveillant identifié dans la session réseau.

Exemple : Tr.124
ThreatCategory Facultatif String Si une source d’événement DNS fournit également la sécurité DNS, elle peut également évaluer l’événement DNS. Par exemple, il peut rechercher l’adresse IP ou le domaine dans une base de données de renseignement sur les menaces et affecter le domaine ou l’adresse IP avec une catégorie de menace.
ThreatIpAddr Facultatif Adresse IP Adresse IP pour laquelle une menace a été identifiée. Le champ ThreatField contient le nom du champ Représenté par ThreatIpAddr . Si une menace est identifiée dans le champ Domaine , ce champ doit être vide.
ThreatField Conditionnelle Énumérés Champ pour lequel une menace a été identifiée. La valeur est SrcIpAddr, DstIpAddr, Domainou DnsResponseName.
ThreatName Facultatif String Nom de la menace identifiée, tel que signalé par l’appareil de création de rapports.
ThreatConfidence Facultatif ConfidenceLevel (Integer) Niveau de confiance de la menace identifiée, normalisé à une valeur comprise entre 0 et 100.
ThreatOriginalConfidence Facultatif String Niveau de confiance d’origine de la menace identifiée, tel que signalé par l’appareil de création de rapports.
ThreatRiskLevel Facultatif RiskLevel (Integer) Niveau de risque associé à la menace identifiée, normalisé à une valeur comprise entre 0 et 100.
ThreatOriginalRiskLevel Facultatif String Niveau de risque d’origine associé à la menace identifiée, tel que signalé par l’appareil de création de rapports.
ThreatIsActive Facultatif Booléen True si la menace identifiée est considérée comme une menace active.
ThreatFirstReportedTime Facultatif DateHeure La première fois que l’adresse IP ou le domaine ont été identifiés comme une menace.
ThreatLastReportedTime Facultatif DateHeure Dernière fois que l’adresse IP ou le domaine ont été identifiés comme une menace.

Alias et champs dépréciés

Les champs suivants sont des alias qui sont conservés à des fins de compatibilité descendante. Ils ont été supprimés du schéma le 31 décembre 2021.

  • Query (alias de DnsQuery)
  • QueryType (alias de DnsQueryType)
  • QueryTypeName (alias de DnsQueryTypeName)
  • ResponseName (alias de DnsResponseName)
  • ResponseCodeName (alias de DnsResponseCodeName)
  • ResponseCode (alias de DnsResponseCode)
  • QueryClass (alias de DnsQueryClass)
  • QueryClassName (alias de DnsQueryClassName)
  • Flags (alias de DnsFlags)
  • SrcUserDomain

Mises à jour de schéma

Les modifications apportées à la version 0.1.2 du schéma sont les suivantes :

  • Ajout du champ EventSchema.
  • Ajout du champ d’indicateur dédié, qui augmente le champ Indicateurs combiné : DnsFlagsAuthoritative, DnsFlagsCheckingDisabled, DnsFlagsRecursionAvailable, DnsFlagsRecursionDesired, DnsFlagsTruncatedet DnsFlagsZ.

Les modifications apportées à la version 0.1.3 du schéma sont les suivantes :

  • Le schéma documente Src*désormais explicitement les champs , Dst*et Process*User* .
  • Ajout de champs supplémentaires Dvc* pour correspondre à la dernière définition de champs communs.
  • Ajout Src de et Dst en tant qu’alias à un identificateur de début pour les systèmes source et de destination.
  • Ajout d’un alias facultatif DnsNetworkDuration et Duration.
  • Ajout des champs Emplacement géographique et Niveau de risque facultatifs.

Les modifications apportées à la version 0.1.4 du schéma sont les suivantes :

  • Ajout des champs facultatifs ThreatIpAddr, ThreatField, ThreatName, ThreatConfidence, ThreatOriginalRiskLevelThreatOriginalConfidence, ThreatIsActive, ThreatFirstReportedTimeet ThreatLastReportedTime.

Les modifications apportées à la version 0.1.5 du schéma sont les suivantes :

  • Ajout des champs SrcUserScope, SrcUserSessionId, SrcDvcScopeId, SrcDvcScope, DstDvcScopeIdDstDvcScope, DvcScopeId, et DvcScope.

Les modifications apportées à la version 0.1.6 du schéma sont les suivantes :

  • Ajout des champs DnsResponseIpCountry, DnsResponseIpRegion, DnsResponseIpCity, DnsResponseIpLatitudeet DnsResponseIpLongitude.

Les modifications apportées à la version 0.1.7 du schéma sont les suivantes :

  • Ajout des champs SrcDescription, SrcOriginalRiskLevel, DstDescription, DstOriginalRiskLevel, SrcUserScopeId, NetworkProtocolVersionRule, RuleName, RuleNumberet ThreatId.

Différences spécifiques à la source

L’objectif de la normalisation est de s’assurer que toutes les sources fournissent des données de télémétrie cohérentes. Une source qui ne fournit pas les données de télémétrie requises, comme les champs de schéma obligatoires, ne peut pas être normalisée. Toutefois, les sources qui fournissent généralement toutes les données de télémétrie requises, même s’il existe des différences, peuvent être normalisées. Les différences peuvent affecter l’exhaustivité des résultats de la requête.

Le tableau suivant répertorie les écarts connus :

Source Divergences
Serveur Microsoft DNS collecté à l’aide du connecteur DNS et de l’agent Log Analytics Le connecteur ne fournit pas le champ DnsQuery obligatoire pour l’ID d’événement d’origine 264 (réponse à une mise à jour dynamique). Les données sont disponibles à la source, mais pas transférées par le connecteur.
Corelight Zeek Corelight Zeek peut ne pas fournir le champ DnsQuery obligatoire. Nous avons observé un tel comportement dans certains cas où le nom de code de réponse DNS est NXDOMAIN.

Gestion de la réponse DNS

Dans la plupart des cas, les événements DNS enregistrés n’incluent pas d’informations de réponse, qui peuvent être volumineuses et détaillées. Si votre enregistrement inclut des informations de réponse supplémentaires, stockez-les dans le champ ResponseName tel qu’il apparaît dans l’enregistrement.

Vous pouvez également fournir une fonction KQL supplémentaire appelée _imDNS<vendor>Response_, qui prend la réponse non évaluée comme entrée et retourne une valeur dynamique avec la structure suivante :

[
    {
        "part": "answer"
        "query": "yahoo.com."
        "TTL": 1782
        "Class": "IN"
        "Type": "A"
        "Response": "74.6.231.21"
    }
    {
        "part": "authority"
        "query": "yahoo.com."
        "TTL": 113066
        "Class": "IN"
        "Type": "NS"
        "Response": "ns5.yahoo.com"
    }
    ...
]

Les champs de chaque dictionnaire de la valeur dynamique correspondent aux champs de chaque réponse DNS. L’entrée part doit inclure answer, authorityou additional pour refléter la partie dans la réponse à laquelle appartient le dictionnaire.

Conseil

Pour garantir des performances optimales, appelez la imDNS<vendor>Response fonction uniquement si nécessaire, et uniquement après un filtrage initial pour garantir de meilleures performances.

Gestion des indicateurs DNS

L’analyse et la normalisation ne sont pas requises pour les données d’indicateur. Au lieu de cela, stockez les données d’indicateur fournies par l’appareil de création de rapports dans le champ Indicateurs . Si la détermination de la valeur des indicateurs individuels est simple, vous pouvez également utiliser les champs d’indicateurs dédiés.

Vous pouvez également fournir une fonction KQL supplémentaire appelée _imDNS<vendor>Flags_, qui prend la réponse non préparée ou les champs d’indicateur dédiés, comme entrée et retourne une liste dynamique, avec des valeurs booléennes qui représentent chaque indicateur dans l’ordre suivant :

  • Authentifié (AD)
  • Faisant autorité (AA)
  • Vérification de désactivé (CD)
  • Récursivité disponible (RA)
  • Récursion Desired (RD)
  • Tronqué (TC)
  • Z

Prochaines étapes

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