Partager via


Espace de travail ASIM (Advanced Security Information Model) avec parsers déployés

Les analyseurs ASIM (Advanced Security Information Model) déployés dans l’espace de travail sont utilisés pour prendre en charge le développement et la modification des analyseurs ASIM.

Déployer des analyseurs d’espace de travail

ASIM prend également en charge le déploiement d’analyseurs sur des espaces de travail spécifiques à partir de GitHub, à l’aide d’un modèle ARM. Les analyseurs déployés dans l’espace de travail sont utilisés pour le développement et la gestion de l’analyseur ASIM. Les analyseurs déployés dans l’espace de travail sont fonctionnellement équivalents, mais ont des conventions d’affectation de noms légèrement différentes, ce qui permet aux deux jeux d’analyseurs d’analyse de coexister avec les analyseurs intégrés dans le même espace de travail Microsoft Sentinel.

Il est recommandé d’utiliser des analyseurs intégrés lors du développement de contenu ASIM. Les analyseurs déployés dans l’espace de travail sont généralement utilisés pendant le processus de développement de l’analyseur ou pour fournir des versions modifiées des analyseurs intégrés, comme décrit dans la gestion des analyseurs

Utiliser les analyseurs d’espace de travail

Lorsque vous utilisez des analyseurs d’espace de travail dans vos requêtes, le nom de l’analyseur unifiant est im<schema>, où <schema> se trouve le schéma spécifique qu’il sert.

Le tableau suivant répertorie les analyseurs unifiants disponibles :

Schema Analyseur unifiant
Événement d’alerte imAlertEvent
Événement d’audit imAuditEvent
Authentication imAuthentication
Événement DHCP imDhcpEvent
DNS imDns
Événement de fichier imFileEvent
Session réseau imNetworkSession
Événement de processus imProcessCreate
imProcessTerminate
Événement de Registre imRegistry
Gestion des utilisateurs imUserManagement
Session web imWebSession

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 :

Schema Analyseur Ligne à ajouter
ÉvénementAlerte imAlertEvent _parser_name_ (starttime, endtime, ipaddr_has_any_prefix, hostname_has_any, username_has_any, attacktactics_has_any, attacktechniques_has_any, threatcategory_has_any, alertverdict_has_any, eventseverity_has_any)
Événement d'Audit imAuditEvent _parser_name_ (starttime, endtime, srcipaddr_has_any_prefix, eventtype_in, eventresult, actorusername_has_any, operation_has_any, object_has_any, newvalue_has_any)
Authentication imAuthentication _parser_name_ (starttime, endtime, targetusername_has_any, actorusername_has_any, srcipaddr_has_any_prefix, srchostname_has_any, targetipaddr_has_any_prefix, dvcipaddr_has_any_prefix, dvchostname_has_any, eventtype_in, eventresultdetails_in, eventresult)
DhcpEvent imDhcpEvent _parser_name_ (starttime, endtime, srcipaddr_has_any_prefix, srchostname_has_any, srcusername_has_any, eventresult)
DNS imDns _parser_name_ (starttime, endtime, srcipaddr, domain_has_any, responsecodename, response_has_ipv4, response_has_any_prefix, eventtype)
FileEvent imFileEvent _parser_name_ (starttime, endtime, eventtype_in, srcipaddr_has_any_prefix, actorusername_has_any, targetfilepath_has_any, srcfilepath_has_any, hashes_has_any, dvchostname_has_any)
NetworkSession imNetworkSession _parser_name_ (starttime, endtime, srcipaddr_has_any_prefix, dstipaddr_has_any_prefix, ipaddr_has_any_prefix, dstportnumber, hostname_has_any, dvcaction, eventresult)
ProcessEvent imProcessCreate, imProcessTerminate _parser_name_ (starttime, endtime, commandline_has_any, commandline_has_all, commandline_has_any_ip_prefix, actingprocess_has_any, targetprocess_has_any, parentprocess_has_any, targetusername_has, actorusername_has, dvcipaddr_has_any_prefix, dvchostname_has_any, eventtype)
RegistryEvent imRegistry _parser_name_ (starttime, endtime, eventtype_in, actorusername_has_any, registrykey_has_any, registryvalue_has_any, registryvaluedata_has_any, dvchostname_has_any)
Gestion des utilisateurs imUserManagement _parser_name_ (starttime, endtime, srcipaddr_has_any_prefix, targetusername_has_any, actorusername_has_any, eventtype_in)
WebSession imWebSession _parser_name_ (starttime, endtime, srcipaddr_has_any_prefix, ipaddr_has_any_prefix, 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)

Pour plus d’informations, consultez :