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.
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)
Contenu connexe
Pour plus d’informations, consultez :