Analisadores implementados na área de trabalho do Modelo de Informação de Segurança Avançada (ASIM)

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, permitindo que ambos os conjuntos de analisador coexistam com analisadores incorporados na mesma área de trabalho Microsoft Sentinel.

Recomenda-se a utilização de analisadores incorporados ao desenvolver conteúdo ASIM. Os parsers implementados na área de trabalho são normalmente utilizados durante o processo de desenvolvimento do analisador ou para fornecer versões modificadas de analisadores incorporados, conforme descrito na gestão de 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 unificadores disponíveis:

Esquema Analisador unificador
Evento de Alerta imAlertEvent
Evento de Auditoria imAuditEvent
Autenticação imAuthentication
Evento DHCP imDhcpEvent
Dns imDns
Evento de Ficheiro imFileEvent
Sessão de Rede imNetworkSession
Evento de Processo imProcessCriar
imProcessTerminate
Evento de Registo imRegistry
Gestão de Utilizadores imUserManagement
Sessão Web imWebSession

Gerir analisadores unificadores unificadores implementados na área de trabalho

Adicionar um analisador personalizado a um analisador unificador implementado na área de trabalho

Para adicionar um analisador personalizado, insira uma linha na union instrução no analisador unificador implementado na área de trabalho que referencia o novo analisador personalizado.

Certifique-se de que adiciona um analisador personalizado de filtragem e um analisador personalizado sem parâmetros. A sintaxe da linha a adicionar é diferente para cada esquema:

Esquema Analisador 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)
AuditEvent 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 analisador unificador da filtragem de DNS depois de ter adicionado o :added_parser

  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

Microsoft Sentinel utilizadores podem modificar diretamente os analisadores implementados na área 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 unificador unificador de filtragem DNS, tendo substituído o vimDnsAzureFirewall analisador 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)

Para mais informações, consulte: