Share via


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

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

Pour plus d’informations, consultez Normalisation et modèle ASIM (Azure Sentinel Information Model).

Important

Le schéma de normalisation DNS est actuellement en PRÉVERSION. Cette fonctionnalité est fournie sans contrat de niveau de service et n’est pas recommandée pour des charges de travail de production.

Les Conditions d’utilisation supplémentaires des préversions Microsoft Azure incluent des conditions légales supplémentaires qui s’appliquent aux fonctionnalités Azure en version bêta, en préversion ou pas encore disponibles dans la version en disponibilité générale.

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 journalisent à la fois l’activité du protocole DNS. L’activité du protocole DNS comprend les requêtes DNS, les mises à jour du serveur DNS et les transferts de données en bloc du DNS. Étant donné que le schéma représente une activité de protocole, il est régi par des RFC et des listes de paramètres officiellement attribués, qui sont référencés 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 champ EventType 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 (avec IpAddr comme alias), 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 il arrive que les clients DNS ne le fournissent pas et fournissent uniquement le champ SrcHostname.

  • EventResultDetails, qui indique si la requête a abouti et, dans le cas contraire, la raison de cet échec.

  • Si disponible, DnsResponseName, qui contient la réponse fournie par le serveur à la requête. L’ASIM n’a pas besoin d’analyser la réponse, et son format varie selon les sources.

    Pour utiliser ce champ dans du contenu indépendant de la source, recherchez le contenu à l’aide des opérateurs has ou contains.

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

Instructions pour la collecte d’événements DNS

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

L’illustration suivante montre un flux de requête DNS simplifié, y compris quatre segments. Une requête réelle peut être plus complexe, avec plus de segments impliqués.

Simplified DNS request flow.

É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 importante.

Le segment le plus précieux à journaliser est la réponse au client. Cette réponse fournit les requêtes de nom de domaine, le résultat de la recherche et l’adresse IP du client. Alors que de nombreux systèmes DNS consignent uniquement ce segment, il existe une valeur dans la journalisation des autres parties. Par exemple, une attaque par empoisonnement du cache DNS tire souvent parti des réponses factices d’un serveur en amont.

Si votre source de données prend en charge la journalisation DNS complète et que vous avez choisi de consigner 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 Vue d’ensemble des analyseurs ASIM.

Analyseurs prêts à l’emploi

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

Pour obtenir la liste des analyseurs DNS, Microsoft Sentinel fournit une référence prête à l’emploi à 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 DNS, nommez vos fonctions KQL en utilisant le format vimDns<vendor><Product>. Reportez-vous à l’article Gestion des analyseurs ASIM pour découvrir comment ajouter vos analyseurs personnalisés aux analyseurs d’unification DNS.

Paramètres de filtrage des analyseurs

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 DATETIME Filtrez uniquement les requêtes DNS qui ont été exécutées à ce moment-là ou après.
endtime DATETIME Filtrez uniquement les requêtes DNS dont l’exécution s’est terminée à ce moment-là ou avant.
srcipaddr string Filtrez uniquement les requêtes DNS à partir de cette adresse IP source.
domain_has_any dynamic/string Filtrez uniquement les requêtes DNS où domain (ou query) présente l’un des noms de domaine listés, notamment comme partie du domaine de l’é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 du 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 seule adresse IP ou un seul préfixe.

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 l’un des préfixes d’adresse IP listés. Les préfixes doivent se terminer par . (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 à partir du dernier jour qui n’a pas réussi à 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 à la fois une liste de valeurs de type dynamic ou une valeur de chaîne unique. Pour transmettre une liste de littéraux aux 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 analytiques 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 les informations de référence sur les paramètres DNS IANA (Internet Assigned Numbers Authority).

Champs ASIM communs

Important

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 uniquement les champs qui ont des instructions spécifiques pour des événements DNS :

Champ Classe Type Description
EventType Obligatoire Énuméré Indique l’opération signalée par l’enregistrement.

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

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

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

Remarques:
- IANA ne définit pas la casse des valeurs, donc l’analytique doit la normaliser.
- Si la source fournit uniquement un code de réponse et non un nom de code de réponse, l’analyseur doit inclure une table de recherche pour enrichir cette valeur.
- Si cet enregistrement représente une requête et non une réponse, affectez la valeur NA.

Exemple : NXDOMAIN
EventSchemaVersion Obligatoire Chaîne La version du schéma documenté ici est 0.1.7.
EventSchema Obligatoire Chaîne 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 communs

Les champs qui apparaissent dans le tableau ci-dessous sont communs à tous les schémas ASIM. Toute instruction spécifiée ci-dessus remplace 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.

Classe Fields
Obligatoire - EventCount
- EventStartTime
- EventEndTime
- EventType
- EventResult
- EventProduct
- EventVendor
- EventSchema
- EventSchemaVersion
- Dvc
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

Champ Classe Type Description
Src Alias Chaîne Identificateur unique de l’appareil source.

Ce champ peut prendre l’alias des 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 correspond généralement à l’appareil de création de rapports et, dans la plupart des cas, à 127.0.0.1.

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

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

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

Exemple : Vermont
SrcGeoCity Facultatif City 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 Integer Niveau de risque associé à la source. La valeur doit être ajustée dans une plage allant de 0 à 100, 0 étant un risque bénin et 100 étant un risque élevé.

Exemple : 90
SrcOriginalRiskLevel Facultatif Integer Niveau de risque associé à la source, comme indiqué par l’appareil de création de rapports.

Exemple : Suspicious
SrcHostname Recommandé Chaîne Nom d’hôte de l’appareil source, à l’exception des informations de domaine.

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

Exemple : Contoso
SrcDomainType Logique conditionnelle Énuméré Type de SrcDomain, s’il est connu. Les valeurs possibles incluent :
- Windows(par exemple :contoso)
- FQDN(par exemple :microsoft.com)

Obligatoire si SrcDomain est utilisé.
SrcFQDN Facultatif String Nom d’hôte de l’appareil source, y compris les informations de domaine, le cas échéant.

Remarque : ce champ prend en charge à la fois le format FQDN traditionnel et le format Windows domain\hostname. Le champ SrcDomainType reflète le format utilisé.

Exemple : Contoso\DESKTOP-1282V4D
SrcDvcId Facultatif Chaîne ID de l’appareil source comme 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 source. SrcDvcScopeId correspond à 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 source. DvcSubscription correspond à un ID d’abonnement sur Azure et à un ID de compte sur AWS.
SrcDvcIdType Logique conditionnelle Énuméré Type de SrcDvcId, s’il est connu. Les valeurs possibles incluent :
- AzureResourceId
- MDEid

Si plusieurs ID sont disponibles, utilisez le premier de la liste, puis stockez les autres à l’aide des noms de champ SrcDvcAzureResourceId et SrcDvcMDEid, respectivement.

Remarque: ce champ est obligatoire si le champ SrcDvcld est utilisé.
SrcDeviceType Facultatif Énuméré Type de l’appareil source. Les valeurs possibles incluent :
- Computer
- Mobile Device
- IOT Device
- Other
SrcDescription Facultatif String Obtient le texte descriptif associé à l’appareil. Par exemple : Primary Domain Controller.

Champs de l’utilisateur source

Champ 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 d’ID supplémentaires, consultez L’entité Utilisateur.

Exemple : S-1-12-1-4141952679-1282074057-627758481-2916039507
SrcUserScope Facultatif String Étendue, par exemple le locataire Microsoft Entra, dans laquelle SrcUserId et SrcUsername sont définis. Pour plus d’informations et pour obtenir la liste des valeurs autorisées, consultez UserScope dans l’article Vue d’ensemble du schéma.
SrcUserScopeId Facultatif String L’ID d’étendue, par exemple l’ID d’annuaire Microsoft Entra, dans laquelle 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 Logique 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 Nom de l’utilisateur source, y compris les informations de domaine, le cas échéant. Pour plus d’informations, consultez L’entité utilisateur.

Exemple : AlbertE
SrcUsernameType Logique 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 UserIdType dans l'article Vue d’ensemble du schéma.

Par exemple : Guest
SrcUserSessionId Facultatif Chaîne ID unique de la session de connexion de l’intervenant.

Exemple : 102pTUgC3p8RIqHvzxLCHnFlg
SrcOriginalUserType Facultatif String Le type d'utilisateur source original, s'il est fourni par la source.

Champs de processus source

Champ 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 de 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 la prise en charge de différents systèmes. Cependant, sur Windows et Linux cette valeur doit être numérique.

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

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

Champs du système de destination

Champ Classe Type Description
Dst Alias Chaîne Identificateur unique du serveur qui a reçu la requête DNS.

Ce champ peut prendre l’alias des 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 régulière, cette valeur correspond généralement à l’appareil de création de rapports et, dans la plupart des cas, à 127.0.0.1.

Exemple : 127.0.0.1
DstGeoCountry Facultatif Pays ou région Pays 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 City 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 Integer Niveau de risque associé à la destination. La valeur doit être ajustée dans une plage de 0 à 100, 0 étant un risque bénin et 100 étant un risque élevé.

Exemple : 90
DstOriginalRiskLevel Facultatif Integer Niveau de risque associé à la destination, comme indiqué par l’appareil de création de rapports.

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

Exemple : 53
DstHostname Facultatif Chaîne Nom d’hôte de l’appareil de destination, à l’exception des informations de domaine. Si aucun nom de périphérique n’est disponible, stockez l’adresse IP pertinente dans ce champ.

Exemple : DESKTOP-1282V4D

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

Exemple : Contoso
DstDomainType Logique conditionnelle Énuméré Type de DstDomain, s’il est connu. Les valeurs possibles incluent :
- Windows (contoso\mypc)
- FQDN (learn.microsoft.com)

Obligatoire si DstDomain est utilisé.
DstFQDN Facultatif String Nom d’hôte de l’appareil de destination, y compris les informations de domaine, le cas échéant.

Exemple : Contoso\DESKTOP-1282V4D

Remarque : ce champ prend en charge à la fois le format FQDN traditionnel et le format Windows domain\hostname. Le champ DstDomainType reflète le format utilisé.
DstDvcId Facultatif String ID de l’appareil de destination comme indiqué dans l’enregistrement.

Exemple : ac7e9755-8eae-4ffc-8a02-50ed7a2216c3
DstDvcScopeId Facultatif String ID de l’étendue de la plateforme cloud à laquelle appartient l’appareil source. 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 source. DstDvcScope correspond à un ID d’abonnement sur Azure et à un ID de compte sur AWS.
DstDvcIdType Logique conditionnelle Énuméré Type de DstDvcId, s’il est connu. Les valeurs possibles incluent :
- AzureResourceId
- MDEidIf

Si plusieurs ID sont disponibles, utilisez le premier de la liste ci-dessus, et stockez les autres à l’aide des noms de champ DvcAzureResourceId et DvcMDEid, respectivement.

Obligatoire si DstDeviceId est utilisé.
DstDeviceType Facultatif Énuméré Type de l’appareil de destination. Les valeurs possibles incluent :
- Computer
- Mobile Device
- IOT Device
- Other
DstDescription Facultatif String Obtient le texte descriptif associé à l’appareil. Par exemple : Primary Domain Controller.

Champs spécifiques à DNS

Champ Classe Type Description
DnsQuery Obligatoire String Domaine que la requête tente de résoudre.

Remarques:
- Certaines sources envoient des requêtes FQDN valides dans un autre format. Par exemple, dans le protocole DNS lui-même, la requête comprend 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 de nom de domaine complet 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, voire même inexistant. 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
Domain Alias Alias de DnsQuery.
DnsQueryType Facultatif Integer Codes des types d’enregistrements de ressources DNS.

Exemple : 28
DnsQueryTypeName Recommandé Énuméré Noms des types d’enregistrements de ressources DNS.

Remarques:
- IANA ne définit pas la casse des valeurs, l’analytique doit donc la normaliser 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 cette valeur.

Exemple : AAAA
DnsResponseName Facultatif Chaîne Contenu de la réponse, tel qu’il est inclus dans l’enregistrement.

Les données de réponse DNS sont incohérentes entre les appareils, sont complexes à analyser et ont moins de valeur pour les analyses indépendantes de la source. Par conséquent, le modèle CIM ne nécessite pas d’analyse ni de normalisation, et Microsoft Sentinel utilise une fonction auxiliaire pour fournir des informations de réponse. Pour plus d’informations, consultez Gestion des réponses DNS.
DnsResponseCodeName Alias Alias d’EventResultDetails
DnsResponseCode Facultatif Integer Le code de réponse numérique DNS.

Exemple : 3
TransactionIdHex Recommandé 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 qui est généralement affecté par le périphérique de reporting.
NetworkProtocol Facultatif Énuméré Protocole de transport utilisé par l’événement de résolution de réseau. La valeur peut être UDP ou TCP, et est couramment définie sur UDP pour DNS.

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

En pratique, seule la classe IN (ID 1) est utilisée, réduisant ainsi la valeur de ce champ.
DnsQueryClassName Facultatif Chaîne Le nom de la classe DNS.

En pratique, seule la classe IN (ID 1) est utilisée, réduisant ainsi la valeur de ce champ.

Exemple : IN
DnsFlags Facultatif String Le champ d’indicateurs, tel que fourni par l’appareil de création de rapports. Si les informations d’indicateur sont fournies dans plusieurs champs, concaténez-les avec une virgule 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 peut utiliser une fonction auxiliaire pour fournir les informations sur les indicateurs. Pour plus d’informations, consultez Gestion des réponses DNS.

Exemple : ["DR"]
DnsNetworkDuration Facultatif Integer Durée, en millisecondes, pour que la requête DNS s’achève.

Exemple : 1500
Durée Alias Alias DnsNetworkDuration
DnsFlagsAuthenticated Facultatif Booléen L’indicateur DNS AD, qui est lié à DNSSEC, signale 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.
DnsFlagsAuthoritative Facultatif Booléen L’indicateur DNS AA signale si la réponse du serveur faisait autorité
DnsFlagsCheckingDisabled Facultatif Booléen L’indicateur DNS CD, qui est lié à DNSSEC, signale 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.
DnsFlagsRecursionAvailable Facultatif Booléen L’indicateur DNS RA signale dans une réponse que ce serveur prend en charge les requêtes récursives.
DnsFlagsRecursionDesired Facultatif Booléen L’indicateur DNS RD signale dans une demande que ce client souhaite que le serveur utilise des requêtes récursives.
DnsFlagsTruncated Facultatif Booléen L’indicateur DNS TC signale 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 déprécié, ce qui peut être signalé par des systèmes DNS plus anciens.
DnsSessionId Facultatif string Identificateur de session DNS signalé par le périphérique de création de rapport. 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 DnsSessionId
DnsResponseIpCountry Facultatif Pays ou région Pays 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 City 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 permettent de représenter une inspection effectuée par un appareil de sécurité DNS. Les champs associés aux menaces 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, des informations concernant d’autres adresses IP peuvent être stockées dans le champ AdditionalFields.

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

DomainCategory est ajouté en tant qu’alias qui s’adapte à DNS.

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

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

Exemple : 23
Règle Alias String Valeur de NetworkRuleName ou de NetworkRuleNumber. Si la valeur de NetworkRuleNumber est utilisée, le type doit être converti en chaîne.
ThreatId Facultatif String ID de la menace ou programme malveillant identifié dans la session réseau.

Exemple : Tr.124
ThreatCategory Facultatif Chaîne Si une source d’événement DNS fournit également la sécurité DNS, elle peut également évaluer l’événement DNS. Par exemple, elle peut rechercher l’adresse IP ou le domaine dans une base de données de renseignement sur les menaces et peut 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 que ThreatIpAddr représente. Si une menace est identifiée dans le champ Domaine, ce champ doit être vide.
ThreatField Logique conditionnelle Énuméré Champ pour lequel une menace a été identifiée. La valeur est SrcIpAddr, DstIpAddr, Domain ou DnsResponseName.
ThreatName Facultatif String Nom de la menace identifiée, comme indiqué par l’appareil de création de rapports.
ThreatConfidence Facultatif 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, comme indiqué par l’appareil de création de rapports.
ThreatRiskLevel Facultatif Entier Niveau de risque associé à la menace identifiée, normalisée à une valeur comprise entre 0 et 100.
ThreatOriginalRiskLevel Facultatif String Niveau de risque d’origine associé à la menace identifiée, comme indiqué 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 DATETIME Indique la première fois que l’adresse IP ou le domaine ont été identifiés comme une menace.
ThreatLastReportedTime Facultatif DATETIME La 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 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 DnsReasponseName)
  • ResponseCodeName (alias de DnsResponseCodeName)
  • ResponseCode (alias de DnsResponseCode)
  • QueryClass (alias de DnsQueryClass)
  • QueryClassName (alias de DnsQueryClassName)
  • Flags (alias de DnsFlags)
  • SrcUserDomain

Mises à jour du schéma

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

  • Ajout du champ EventSchema.
  • Ajout d’un champ dédié aux indicateurs qui complète le champ combiné Indicateurs : DnsFlagsAuthoritative, DnsFlagsCheckingDisabled, DnsFlagsRecursionAvailable, DnsFlagsRecursionDesired, DnsFlagsTruncated et DnsFlagsZ.

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

  • Le schéma documente désormais explicitement les champs Src*, Dst*, Process* et User*.
  • Ajout de champs Dvc* supplémentaires pour correspondre à la définition la plus récente des champs communs.
  • Ajout de Src et Dst en tant qu’alias d’un identifiant principal pour les systèmes source et de destination.
  • Ajout du champ facultatif DnsNetworkDuration et de Duration, son alias.
  • Ajout des champs facultatifs Geo Location et Risk Level.

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

  • Ajout des champs facultatifs ThreatIpAddr, ThreatField, ThreatName, ThreatConfidence, ThreatOriginalConfidence, ThreatOriginalRiskLevel, ThreatIsActive, ThreatFirstReportedTime et ThreatLastReportedTime.

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

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

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

  • Ajout des champs DnsResponseIpCountry, DnsResponseIpRegion, DnsResponseIpCity, DnsResponseIpLatitude et DnsResponseIpLongitude.

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

  • Ajout des champs SrcDescription, SrcOriginalRiskLevel, DstDescription, DstOriginalRiskLevel, SrcUserScopeId, NetworkProtocolVersion, Rule, RuleName, RuleNumber et ThreatId.

Disparités propres aux sources

L’objectif de la normalisation est de veiller à ce 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 obligatoires, comme les champs de schéma obligatoires, ne peut pas être normalisée. En revanche, les sources qui fournissent généralement toutes les données de télémétrie obligatoires, même s’il existe des disparités, peuvent être normalisées. Les disparités peuvent affecter l’exhaustivité des résultats de requête.

Le tableau suivant liste les disparités connues :

Source Disparités
Serveur DNS Microsoft 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 elles ne sont pas transférées par le connecteur.
Corelight Zeek Corelight Zeek risque de ne pas fournir le champ DnsQuery obligatoire. Nous avons observé un tel comportement dans certains cas où le nom du code de réponse DNS est NXDOMAIN.

Gestion de la réponse DNS

Dans la plupart des cas, les événements DNS consignés n’incluent pas les informations de réponse, qui peuvent être volumineuses et détaillées. Si votre enregistrement inclut plus d’informations de réponse, stockez-les dans le champ ResponseName comme elles apparaissent dans l’enregistrement.

Vous pouvez également fournir une fonction KQL supplémentaire appelée _imDNS<vendor>Response_, qui prend la réponse non analysé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 dans la valeur dynamique correspondent aux champs de chaque réponse DNS. L’entrée part doit inclure answer, authority ou additional pour refléter la partie dans la réponse à laquelle le dictionnaire appartient.

Conseil

Pour garantir des performances optimales, appelez la fonction imDNS<vendor>Response uniquement lorsque cela est 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 obligatoires pour les données d’indicateur. À la place, stockez les données d’indicateur fournies par l’appareil dans le champ Indicateurs. Si la détermination de la valeur des indicateurs individuels est directe, 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 analysée, ou des champs d’indicateurs 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 désactivée (CD)
  • Récurrence disponible (RA)
  • Récurrence souhaitée (RD)
  • Tronqué (TC)
  • Z

Étapes suivantes

Pour plus d'informations, consultez les pages suivantes :