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

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_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 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 :

Pour plus d’informations sur KQL, consultez vue d’ensemble de Langage de requête Kusto (KQL).

Autres ressources :

Pour plus d’informations, consultez les ressources suivantes :