Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Le 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
hasopérateurs oucontains.
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.
É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- MDEidSi 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-1282V4DRemarque : 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- MDEidIfSi 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 deDnsQuery) -
QueryType(alias deDnsQueryType) -
QueryTypeName(alias deDnsQueryTypeName) -
ResponseName(alias deDnsResponseName) -
ResponseCodeName(alias deDnsResponseCodeName) -
ResponseCode(alias deDnsResponseCode) -
QueryClass(alias deDnsQueryClass) -
QueryClassName(alias deDnsQueryClassName) -
Flags(alias deDnsFlags) 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,DnsFlagsTruncatedetDnsFlagsZ.
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*etProcess*User*. - Ajout de champs supplémentaires
Dvc*pour correspondre à la dernière définition de champs communs. - Ajout
Srcde etDsten tant qu’alias à un identificateur de début pour les systèmes source et de destination. - Ajout d’un alias facultatif
DnsNetworkDurationetDuration. - 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,ThreatFirstReportedTimeetThreatLastReportedTime.
Les modifications apportées à la version 0.1.5 du schéma sont les suivantes :
- Ajout des champs
SrcUserScope,SrcUserSessionId,SrcDvcScopeId,SrcDvcScope,DstDvcScopeIdDstDvcScope,DvcScopeId, etDvcScope.
Les modifications apportées à la version 0.1.6 du schéma sont les suivantes :
- Ajout des champs
DnsResponseIpCountry,DnsResponseIpRegion,DnsResponseIpCity,DnsResponseIpLatitudeetDnsResponseIpLongitude.
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,RuleNumberetThreatId.
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 :