Modifier le contenu pour utiliser le modèle ASIM (Advanced Security Information Model)

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_Dns analyseurs normalisés ou imDnssont 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 SrcIpAddr champ est utilisé au lieu de Client_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 :

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 :