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.
Convertir le contenu Microsoft Sentinel pour utiliser des données normalisées ASIM
Le contenu de sécurité normalisé dans Microsoft Sentinel comprend des règles analytiques, des requêtes de chasse et des classeurs qui fonctionnent avec des analyseurs de normalisation d'unification.
Vous pouvez trouver du contenu normalisé, prêt à l’emploi, dans les galeries Microsoft Sentinel et le catalogue de solutions Microsoft Sentinel, ou créer votre propre contenu normalisé, ou encore modifier du contenu personnalisé existant pour utiliser des données normalisées.
Cet article explique comment convertir des règles d’analytique Microsoft Sentinel existantes pour utiliser des données normalisées ASIM avec le modèle DSIM (Advanced Security Information Model).
Pour comprendre comment le contenu normalisé s’intègre dans l’architecture ASIM, reportez-vous au diagramme de l’architecture ASIM.
Modifier le contenu personnalisé pour utiliser la normalisation
Pour permettre à votre contenu Microsoft Sentinel personnalisé d’utiliser la normalisation :
Modifiez vos requêtes pour utiliser tous les analyseurs ASIM unifiants pertinents pour la requête.
Modifiez les noms de champs dans votre requête pour utiliser les noms de champs de schémas normalisés ASIM .
Le cas échéant, modifiez les conditions pour utiliser les valeurs normalisées des champs de votre requête.
Exemple de normalisation pour les règles d’analyse
Par exemple, considérons la règle d'analyse DNS Client rare observé avec un nombre de recherches DNS inversée élevé, qui fonctionne sur les événements DNS envoyés par les serveurs DNS Infoblox :
let threshold = 200;
InfobloxNIOS
| where ProcessName =~ "named" and Log_Type =~ "client"
| where isnotempty(ResponseCode)
| where ResponseCode =~ "NXDOMAIN"
| summarize count() by Client_IP, bin(TimeGenerated,15m)
| where count_ > threshold
| join kind=inner (InfobloxNIOS
| where ProcessName =~ "named" and Log_Type =~ "client"
| where isnotempty(ResponseCode)
| where ResponseCode =~ "NXDOMAIN"
) on Client_IP
| extend timestamp = TimeGenerated, IPCustomEntity = Client_IP
Le code suivant est la version indépendante de la source, qui utilise la normalisation pour fournir la même détection pour toute source fournissant des événements de requête DNS. L’exemple suivant utilise des analyseurs ASIM intégrés :
_Im_Dns(responsecodename='NXDOMAIN')
| summarize count() by SrcIpAddr, bin(TimeGenerated,15m)
| where count_ > threshold
| join kind=inner (imDns(responsecodename='NXDOMAIN')) on SrcIpAddr
| extend timestamp = TimeGenerated, IPCustomEntity = SrcIpAddr
La version normalisée et indépendante de la source présente les différences suivantes :
Les
_Im_Dnsanalyseurs normalisés ouimDnssont utilisés à la place de l’analyseur Infoblox.Les analyseurs normalisés récupèrent uniquement les événements de requête DNS. Il n’est donc pas nécessaire de vérifier le type d’événement, comme effectué par dans
where ProcessName =~ "named" and Log_Type =~ "client"la version Infoblox.Le
SrcIpAddrchamp est utilisé au lieu deClient_IP.Le filtrage des paramètres d’analyseur est utilisé pour ResponseCodeName, ce qui élimine la nécessité d’utiliser des clauses explicites
where.
Remarque
Outre la prise en charge de toute source DNS normalisée, la version normalisée est plus courte et plus facile à comprendre.
Si le schéma ou les analyseurs ne prennent pas en charge les paramètres de filtrage, les modifications de requête nécessaires pour normaliser la règle sont similaires, sauf que les conditions de filtrage sont conservées de la requête d’origine. Par exemple :
let threshold = 200;
imDns
| where isnotempty(ResponseCodeName)
| where ResponseCodeName =~ "NXDOMAIN"
| summarize count() by SrcIpAddr, bin(TimeGenerated,15m)
| where count_ > threshold
| join kind=inner (imDns
| where isnotempty(ResponseCodeName)
| where ResponseCodeName =~ "NXDOMAIN"
) on SrcIpAddr
| extend timestamp = TimeGenerated, IPCustomEntity = SrcIpAddr
Consultez plus d’informations sur les éléments KQL suivants utilisés dans les exemples de normalisation des requêtes DNS, dans la documentation Kusto :
- let instruction
- opérateur où
- opérateur extend
- opérateur join
- opérateur summarize
- isnotempty() fonction
- fonction d’agrégation count()
Pour plus d’informations sur KQL, consultez vue d’ensemble de Langage de requête Kusto (KQL).
Autres ressources :
- Informations de référence rapides sur KQL
- ressources d’apprentissage du langage Kusto Query Language
Contenu connexe
Pour plus d’informations, consultez les ressources suivantes :
- Vue d’ensemble du modèle ASIM (Advanced Security Information Model)
- Analyseurs du modèle d’informations de sécurité avancé (ASIM)
- Schémas ASIM (Advanced Security Information Model)
- Contenu ASIM (Advanced Security Information Model)
- Webinaire approfondi sur les analyseurs de normalisation et le contenu normalisé de Microsoft Sentinel