Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Os analisadores do Modelo de Informação de Segurança Avançada (ASIM) implementados na área de trabalho são utilizados para suportar o desenvolvimento e a modificação de analisadores ASIM.
Implementar analisadores de áreas de trabalho
O ASIM também suporta a implementação de analisadores em áreas de trabalho específicas a partir do GitHub, através de um modelo do ARM. Os parsers implementados na área de trabalho são utilizados para o desenvolvimento e gestão do analisador ASIM. Os parsers implementados na área de trabalho são funcionalmente equivalentes, mas têm convenções de nomenclatura ligeiramente diferentes, o que permite que ambos os conjuntos de parsers coexistam com os parsers incorporados na mesma área de trabalho do Microsoft Sentinel.
Recomenda-se a utilização de analisadores incorporados ao desenvolver conteúdo ASIM. Os parsers implementados no espaço de trabalho são normalmente utilizados durante o processo de desenvolvimento do parser ou para disponibilizar versões modificadas de parsers integrados, conforme descrito em gerir parsers
Utilizar analisadores de áreas de trabalho
Ao utilizar analisadores de áreas de trabalho nas consultas, o nome unificador do analisador é im<schema>, onde <schema> significa o esquema específico que serve.
A tabela seguinte lista os analisadores unificadores disponíveis:
| Esquema | Analisador de unificação |
|---|---|
| Evento de Alerta | imAlertEvent |
| Evento de Auditoria | imAuditEvent |
| Autenticação | imAuthentication |
| Evento DHCP | imDhcpEvent |
| DNS | imDns |
| Evento do ficheiro | imFileEvent |
| Sessão de Rede | imNetworkSession |
| Evento de processo | imProcessCreate imProcessTerminate |
| Evento de Registo | imRegistry |
| Gestão de Utilizadores | imUserManagement |
| Sessão Web | imWebSession |
Gerir analisadores unificadores implementados no espaço de trabalho
Adicionar um analisador personalizado a um analisador unificador implementado num espaço de trabalho
Para adicionar um parser personalizado, insira uma linha à instrução union no parser unificador implementado no espaço de trabalho que faça referência ao novo parser personalizado.
Certifique-se de que adiciona tanto um analisador sintático personalizado para filtragem como um analisador sintático personalizado sem parâmetros. A sintaxe da linha a adicionar é diferente para cada esquema:
| Esquema | Analisador sintático | Linha a adicionar |
|---|---|---|
| AlertEvent | 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) |
| Evento de auditoria | imAuditEvent |
_parser_name_ (starttime, endtime, srcipaddr_has_any_prefix, eventtype_in, eventresult, actorusername_has_any, operation_has_any, object_has_any, newvalue_has_any) |
| Autenticação | 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) |
| Gestão de Utilizadores | 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) |
Ao adicionar um analisador adicional a um analisador unificador, certifique-se de que adiciona uma vírgula no final da linha anterior.
Por exemplo, o exemplo seguinte mostra o parser unificador de filtragem DNS, após ter adicionado o added_parser personalizado:
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)
Utilizar uma versão modificada de um analisador implementado na área de trabalho
Os utilizadores do Microsoft Sentinel podem modificar diretamente os analisadores implementados no espaço de trabalho. Crie um analisador com base no original, comente o original e, em seguida, adicione a sua versão modificada ao analisador unificador implementado na área de trabalho.
Por exemplo, o código seguinte mostra um analisador que unifica a filtragem DNS, após substituir o analisador vimDnsAzureFirewall por uma versão modificada:
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)