Gérer les analyseurs de l’Advanced SIEM Information Model (ASIM) (préversion publique)

Les utilisateurs du modèle de l’Advanced SIEM Information Model (ASIM) utilisent des analyseurs d’unification plutôt que des noms de tables dans leurs requêtes, afin d’afficher les données dans un format normalisé et d’obtenir toutes les données en rapport avec le schéma dans une même requête. Chaque analyseur d’unification utilise plusieurs analyseurs propres à la source qui traitent les détails spécifiques de chaque source.

Pour comprendre comment les analyseurs s’intègrent dans l’architecture ASIM, consultez le diagramme d’architecture ASIM.

Vous devrez peut-être gérer les analyseurs propres à la source utilisés par chaque analyseur d’unification pour :

  • Ajouter un analyseur propre à la source personnalisé à un analyseur d’unification.

  • Remplacer un analyseur propre à la source intégré utilisé par un analyseur d’unification avec un analyseur propre à la source personnalisé. Vous pouvez remplacer des analyseurs intégrés quand vous souhaitez :

    • Utiliser une version de l’analyseur intégré autre que celle utilisée par défaut dans l’analyseur d’unification.

    • Empêcher les mises à jour automatisées en préservant la version de l’analyseur propre à la source utilisée par l’analyseur d’unification.

    • Utiliser une version modifiée d’un analyseur intégré.

  • Configurez un analyseur spécifique à la source, par exemple pour définir les sources qui envoient des informations pertinentes à l’analyseur.

Cet article vous guide dans la gestion de vos analyseurs, qu’il s’agisse d’analyseurs ASIM intégrés et unifiés ou d’analyseurs d’unification déployés par l’espace de travail.

Important

ASIM n’est actuellement disponible qu’en PRÉVERSION. Les Conditions d’utilisation supplémentaires des préversions Microsoft Azure incluent des conditions légales supplémentaires qui s’appliquent aux fonctionnalités Azure en version bêta, en préversion ou pas encore disponibles dans la version en disponibilité générale.

Prérequis

Les procédures décrites dans cet article partent du principe que tous les analyseurs propres à la source ont déjà été déployés dans votre espace de travail Microsoft Sentinel.

Pour plus d’informations, consultez Développer des analyseurs ASIM.

Gérer les analyseurs d’unification intégrés

Set up your workspace

Les utilisateurs de Microsoft Sentinel ne peuvent pas modifier les analyseurs d’unification intégrés. Pour modifier le comportement des analyseurs d’unification intégrés, il convient de faire appel les mécanismes suivants :

  • Pour prendre en charge l’ajout d’analyseurs propres à la source, ASIM utilise des analyseurs d’unification personnalisés. Ces analyseurs personnalisés sont déployés par l’espace de travail et peuvent donc être modifiés. Les analyseurs d’unification intégrés récupèrent automatiquement ces analyseurs personnalisés, s’ils existent.

    Vous pouvez déployer les analyseurs d’unification personnalisés initiaux et vides dans votre espace de travail Microsoft Sentinel pour tous les schémas pris en charge ou individuellement pour des schémas spécifiques. Pour plus d’informations, consultez Deploy initial ASIM empty custom unifying parsers dans le dépôt GitHub de Microsoft Sentinel.

  • Pour prendre en charge l’exclusion des analyseurs intégrés propres à la source, ASIM utilise une Watchlist. Déployez la Watchlist dans votre espace de travail Microsoft Sentinel à partir du dépôt GitHub de Microsoft Sentinel.

  • Pour définir le type de source des analyseurs intégrés et personnalisés, ASIM utilise une Watchlist. Déployez la Watchlist dans votre espace de travail Microsoft Sentinel à partir du dépôt GitHub de Microsoft Sentinel.

Ajouter un analyseur personnalisé à un analyseur d’unification intégré

Pour ajouter un analyseur personnalisé, insérez une ligne à l’analyseur d’unification personnalisé pour référencer le nouvel analyseur personnalisé.

Veillez à ajouter un analyseur personnalisé de filtrage et un analyseur personnalisé sans paramètre. Pour en savoir plus sur la façon de modifier les analyseurs, consultez le document Fonctions dans les requêtes de journal Azure Monitor.

La syntaxe de la ligne à ajouter est différente pour chaque schéma :

schéma Parser Ligne à ajouter
DNS Im_DnsCustom _parser_name_ (starttime, endtime, srcipaddr, domain_has_any, responsecodename, response_has_ipv4, response_has_any_prefix, eventtype)
NetworkSession Im_NetworkSessionCustom _parser_name_ (starttime, endtime, srcipaddr_has_any_prefix, dstipaddr_has_any_prefix, dstportnumber, hostname_has_any, dvcaction, eventresult)
WebSession Im_WebSessionCustom _parser_name_ (starttime, endtime, srcipaddr_has_any_prefix, url_has_any, httpuseragent_has_any, eventresultdetails_in, eventresult)

Quand vous ajoutez un analyseur supplémentaire à un analyseur d’unification personnalisé qui fait déjà référence à des analyseurs, veillez à ajouter une virgule à la fin de la ligne précédente.

Par exemple, le code suivant présente un analyseur d’unification personnalisé après l’ajout de added_parser :

union isfuzzy=true
existing_parser(starttime, endtime, srcipaddr, domain_has_any, responsecodename, response_has_ipv4, response_has_any_prefix, eventtype),
added_parser(starttime, endtime, srcipaddr, domain_has_any, responsecodename, response_has_ipv4, response_has_any_prefix, eventtype)

Utiliser une version modifiée d’un analyseur intégré

Pour modifier un analyseur propre à la source intégré et existant :

  1. Créez un analyseur personnalisé basé sur l’analyseur d’origine et ajoutez-le à l’analyseur intégré.

  2. Ajoutez un enregistrement à la Watchlist ASim Disabled Parsers.

  3. Définissez la valeur de CallerContext en tant que Exclude<parser name><parser name> correspond au nom des analyseurs d’unification desquels vous voulez exclure l’analyseur.

  4. Définissez la valeur de SourceSpecificParserExclude<parser name><parser name> est le nom de l’analyseur que vous souhaitez exclure, sans spécificateur de version.

Par exemple, pour exclure l’analyseur DNS du Pare-feu Azure, ajoutez l’enregistrement suivant à la Watchlist :

CallerContext SourceSpecificParser
Exclude_Im_Dns Exclude_Im_Dns_AzureFirewall

Empêcher une mise à jour automatisée d’un analyseur intégré

Pour empêcher les mises à jour automatiques pour les analyseurs intégrés propres à la source, utilisez la procédure suivante :

  1. Ajoutez la version de l’analyseur intégré que vous voulez utiliser, par exemple _Im_Dns_AzureFirewallV02, à l’analyseur d’unification personnalisé. Pour plus d’informations, consultez la section précédente Ajouter un analyseur personnalisé à un analyseur d’unification intégré.

  2. Ajoutez une exception pour l’analyseur intégré. Par exemple, si vous voulez refuser entièrement les mises à jour automatiques et donc exclure un grand nombre d’analyseurs intégrés, ajoutez :

  • Un enregistrement avec Any comme champ SourceSpecificParser, pour exclure tous les analyseurs pour CallerContext.
  • Un enregistrement pour Any dans CallerContext et les champs SourceSpecificParser pour exclure tous les analyseurs intégrés.

Pour plus d’informations, consultez Utiliser une version modifiée d’un analyseur intégré.

Gérer les analyseurs d’unification déployés par l’espace de travail

Ajouter un analyseur personnalisé à un analyseur d’unification déployé par l’espace de travail

Pour ajouter un analyseur personnalisé, insérez une ligne à l’instruction union de l’analyseur d’unification déployé par l’espace de travail qui fait référence au nouvel analyseur personnalisé.

Veillez à ajouter un analyseur personnalisé de filtrage et un analyseur personnalisé sans paramètre. La syntaxe de la ligne à ajouter est différente pour chaque schéma :

schéma Parser Ligne à ajouter
Authentification ImAuthentication _parser_name_ (starttime, endtime, targetusername_has)
DNS ImDns _parser_name_ (starttime, endtime, srcipaddr, domain_has_any,
responsecodename, response_has_ipv4, response_has_any_prefix,
eventtype)
Événement de fichier imFileEvent _parser_name_
Session réseau imNetworkSession _parser_name_ (starttime, endtime, srcipaddr_has_any_prefix, dstipaddr_has_any_prefix, dstportnumber, url_has_any,
httpuseragent_has_any, hostname_has_any, dvcaction, eventresult)
Événement de processus - imProcess
- imProcessCreate
- imProcessTerminate
_parser_name_
Événement du Registre imRegistry

_parser_name_
Session web imWebSession

_parser_name_ parser (starttime, endtime, srcipaddr_has_any, url_has_any, httpuseragent_has_any, eventresultdetails_in, eventresult)

Quand vous ajoutez un analyseur supplémentaire à un analyseur d’unification, veillez à ajouter une virgule à la fin de la ligne précédente.

Par exemple, l’exemple suivant présenter l’analyseur d’unification de filtrage DNS après avoir ajouté le added_parser personnalisé :

  let Generic=(starttime:datetime=datetime(null), endtime:datetime=datetime(null) , srcipaddr:string='*' , domain_has_any:dynamic=dynamic([]) , responsecodename:string='*', response_has_ipv4:string='*' , response_has_any_prefix:dynamic=dynamic([]) , eventtype:string='lookup' ){
  let DisabledParsers=materialize(_GetWatchlist('ASimDisabledParsers') | where SearchKey in ('Any', 'imDns') | extend SourceSpecificParser=column_ifexists('SourceSpecificParser','') | distinct SourceSpecificParser);
  let imDnsBuiltInDisabled=toscalar('imDnsBuiltIn' in (DisabledParsers) or 'Any' in (DisabledParsers)); 
  union isfuzzy=true
      vimDnsEmpty
    , vimDnsCiscoUmbrella  ( starttime, endtime, srcipaddr, domain_has_any, responsecodename, response_has_ipv4, response_has_any_prefix, eventtype, (imDnsBuiltInDisabled or('vimDnsCiscoUmbrella'   in (DisabledParsers) )))
    , vimDnsInfobloxNIOS   ( starttime, endtime, srcipaddr, domain_has_any, responsecodename, response_has_ipv4, response_has_any_prefix, eventtype, (imDnsBuiltInDisabled or('vimDnsInfobloxNIOS'    in (DisabledParsers) )))
    ...
    , vimDnsAzureFirewall  ( starttime, endtime, srcipaddr, domain_has_any, responsecodename, response_has_ipv4, response_has_any_prefix, eventtype, (imDnsBuiltInDisabled or('vimDnsAzureFirewall'   in (DisabledParsers) )))
    , vimDnsMicrosoftNXlog ( starttime, endtime, srcipaddr, domain_has_any, responsecodename, response_has_ipv4, response_has_any_prefix, eventtype, (imDnsBuiltInDisabled or('vimDnsMicrosoftNXlog'  in (DisabledParsers) ))),
    added_parser ( starttime, endtime, srcipaddr, domain_has_any, responsecodename, response_has_ipv4, response_has_any_prefix, eventtype)
     };
  Generic( starttime, endtime, srcipaddr, domain_has_any, responsecodename, response_has_ipv4, response_has_any_prefix, eventtype)

Utiliser une version modifiée d’un analyseur déployé par l’espace de travail

Les utilisateurs de Microsoft Sentinel peuvent directement modifier les analyseurs déployés par l’espace de travail. Créez un analyseur basé sur celui d’origine, mettez ce dernier en commentaire, puis ajoutez votre version modifiée à l’analyseur d’unification déployé par l’espace de travail.

Par exemple, le code suivant présente un analyseur d’unification de filtrage DNS, où l’analyseur vimDnsAzureFirewall est remplacé par une version modifiée :

  let Generic=(starttime:datetime=datetime(null), endtime:datetime=datetime(null) , srcipaddr:string='*' , domain_has_any:dynamic=dynamic([]) , responsecodename:string='*', response_has_ipv4:string='*' , response_has_any_prefix:dynamic=dynamic([]) , eventtype:string='lookup' ){
  let DisabledParsers=materialize(_GetWatchlist('ASimDisabledParsers') | where SearchKey in ('Any', 'imDns') | extend SourceSpecificParser=column_ifexists('SourceSpecificParser','') | distinct SourceSpecificParser);
  let imDnsBuiltInDisabled=toscalar('imDnsBuiltIn' in (DisabledParsers) or 'Any' in (DisabledParsers)); 
  union isfuzzy=true
      vimDnsEmpty
    , vimDnsCiscoUmbrella  ( starttime, endtime, srcipaddr, domain_has_any, responsecodename, response_has_ipv4, response_has_any_prefix, eventtype, (imDnsBuiltInDisabled or('vimDnsCiscoUmbrella'   in (DisabledParsers) )))
    , vimDnsInfobloxNIOS   ( starttime, endtime, srcipaddr, domain_has_any, responsecodename, response_has_ipv4, response_has_any_prefix, eventtype, (imDnsBuiltInDisabled or('vimDnsInfobloxNIOS'    in (DisabledParsers) )))
    ...
    // , vimDnsAzureFirewall  ( starttime, endtime, srcipaddr, domain_has_any, responsecodename, response_has_ipv4, response_has_any_prefix, eventtype, (imDnsBuiltInDisabled or('vimDnsAzureFirewall'   in (DisabledParsers) )))
    , vimDnsMicrosoftNXlog ( starttime, endtime, srcipaddr, domain_has_any, responsecodename, response_has_ipv4, response_has_any_prefix, eventtype, (imDnsBuiltInDisabled or('vimDnsMicrosoftNXlog'  in (DisabledParsers) ))),
    modified_vimDnsAzureFirewall ( starttime, endtime, srcipaddr, domain_has_any, responsecodename, response_has_ipv4, response_has_any_prefix, eventtype)
     };
  Generic( starttime, endtime, srcipaddr, domain_has_any, responsecodename, response_has_ipv4, response_has_any_prefix, eventtype)

Configurer les sources pertinentes pour un analyseur spécifique à la source

Certains analyseurs exigent une mise à jour de la liste des sources pertinentes pour l’analyseur. Par exemple, un analyseur qui utilise des données Syslog peut ne pas être en mesure de déterminer quels événements Syslog sont pertinents pour l’analyseur. Un tel analyseur peut utiliser la Watchlist Sources_by_SourceType pour déterminer les sources qui envoient des informations pertinentes à l’analyseur. Pour ces analyseurs, ajoutez un enregistrement pour chaque source pertinente à la Watchlist :

  • Configurez le champ SourceType sur la valeur spécifique de l’analyseur définie dans la documentation de l’analyseur.
  • Définissez le champ Source sur l’identificateur de la source utilisée dans les événements. Vous devrez peut-être interroger le tableau d’origine, par exemple Syslog, pour déterminer la valeur correcte.

Si la Watchlist Sources_by_SourceType n’est pas déployée dans votre système, déployez la Watchlist dans votre espace de travail Microsoft Sentinel à partir du dépôt GitHub de Microsoft Sentinel.

Étapes suivantes

Cet article traite de la gestion des analyseurs d’Advanced SIEM Information Model (ASIM).

En savoir plus sur les analyseurs ASIM :

En savoir plus sur le modèle ASIM en général :