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 contenu de sécurité normalisé dans Microsoft Sentinel inclut des règles d’analyse, des requêtes de repérage et des classeurs qui fonctionnent avec des analyseurs de normalisation d’unification.
Vous pouvez trouver du contenu normalisé et prête à l’emploi dans Microsoft Sentinel galeries et solutions, créer votre propre contenu normalisé ou 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 avec le modèle ASIM (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.
Conseil
Regardez également le webinaire de plongée approfondie sur Microsoft Sentinel normalisation des analyseurs et du contenu normalisé ou passez en revue les diapositives. Pour plus d’informations, consultez la section Étapes suivantes.
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 d’unification pertinents pour la requête.
Modifiez les noms de champs dans votre requête pour utiliser les noms de champs de schéma normalisés .
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érez le client Rare observé avec la règle analytique DNS de nombre de recherches DNS inversées élevée , 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 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
Pour plus d’informations sur les éléments suivants utilisés dans les exemples précédents, consultez la documentation Kusto :
- let , instruction
- where, opérateur
- extend , opérateur
- opérateur de jointure
- Summarize, opérateur
- 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 :
Étapes suivantes
Cet article décrit le contenu du modèle ASIM (Advanced Security Information Model).
Pour plus d’informations, reportez-vous aux rubriques suivantes :
- Regardez le webinaire approfondi sur Microsoft Sentinel normalisation des analyseurs et du contenu normalisé ou passez en revue les diapositives
- Vue d’ensemble du modèle ASIM (Advanced Security Information Model)
- Analyseurs ASIM (Advanced Security Information Model)
- Schémas ASIM (Advanced Security Information Model)
- Contenu ASIM (Advanced Security Information Model)