Gerenciar analisadores do ASIM (Modelo de Informação de Segurança Avançada)

Os usuários do Advanced Security Information Model (ASIM) usam analisadores unificadores em vez de nomes de tabela em suas consultas, para exibir dados em um formato normalizado e obter todos os dados relevantes para o esquema em uma única consulta. Cada analisador unificador usa vários analisadores específicos de origem que lidam com os detalhes específicos de cada fonte.

Para entender como os analisadores se encaixam na arquitetura ASIM, consulte a seção de componentes ASIM no diagrama da arquitetura ASIM.

Talvez seja necessário gerenciar os analisadores específicos de origem usados por cada analisador unificador para:

  • Adicione um analisador personalizado e específico da origem a um analisador unificador.

  • Substitua um parser integrado específico da fonte usado por um parser unificador por um parser personalizado específico da fonte. Substitua os analisadores internos quando quiser:

    • Use uma versão do analisador interno diferente daquela usada por padrão no analisador unificador.

    • Evite atualizações automatizadas preservando a versão do analisador específico de origem usado pelo analisador unificador.

    • Use uma versão modificada de um analisador interno.

  • Configure um analisador específico da origem, por exemplo, para definir as fontes que enviam informações relevantes para o analisador.

Este artigo orienta você sobre como gerenciar os analisadores específicos da fonte usados pelos analisadores unificadores.

Pré-requisitos

Os procedimentos neste artigo pressupõem que todos os analisadores específicos de origem já foram implantados em seu espaço de trabalho do Microsoft Sentinel.

Para instruções de implantação, veja a seção Deploy parsers em Develop ASIM parsers.

Gerenciar analisadores unificadores internos

Como os analisadores internos de unificação não podem ser editados diretamente, você os gerencia implantando analisadores de unificação personalizados, adicionando ou excluindo analisadores específicos da origem e usando watchlists para controlar o comportamento do analisador.

Configurar seu espaço de trabalho

Os usuários do Microsoft Sentinel não podem editar analisadores unificadores internos. Em vez disso, use os seguintes mecanismos para modificar o comportamento de analisadores unificadores internos:

  • Para dar suporte à adição de analisadores específicos de origem, o ASIM usa analisadores unificadores e personalizados. Esses analisadores personalizados são implantados no espaço de trabalho e, portanto, editáveis. Os parsers unificados integrados detectam automaticamente esses parsers personalizados, se existirem.

    Você pode implantar analisadores personalizados iniciais, vazios e unificadores em seu espaço de trabalho do Microsoft Sentinel para todos os esquemas com suporte ou individualmente para esquemas específicos. Para obter mais informações, confira Implantar analisadores unificadores personalizados vazios do ASIM iniciais no repositório GitHub do Microsoft Sentinel.

  • Para dar suporte à exclusão de parsers internos específicos da origem, o ASIM usa uma lista de observação. Implante a lista de observação no seu espaço de trabalho do Microsoft Sentinel usando o modelo de implantação de lista de observação ASIM do Microsoft Sentinel no GitHub.

  • Para definir o tipo de fonte para analisadores internos e personalizados, o ASIM usa uma lista de observação. Implante a lista de observação no seu espaço de trabalho do Microsoft Sentinel usando o modelo de implantação de lista de observação ASIM do Microsoft Sentinel no GitHub.

Adicionar um analisador personalizado a um analisador unificador interno

Para adicionar um analisador personalizado, insira uma linha no analisador unificador personalizado para fazer referência ao novo analisador personalizado.

Certifique-se de adicionar tanto um parser personalizado de filtragem (que aceita parâmetros de filtragem para otimizar o desempenho) quanto um parser personalizado sem parâmetros (que retorna todos os resultados sem parâmetros de filtragem). Para saber mais sobre como editar analisadores, consulte o documento Funções nas consultas de log do Azure Monitor.

A sintaxe da linha a ser adicionada é diferente para cada esquema. A tabela a seguir utiliza os parâmetros definidos em ParserParams no arquivo correspondente Parsers/ASim<SchemaName>/Parsers/im<SchemaName>.yaml no repositório Microsoft Sentinel. Substitua _parser_name_ pelo nome da função do parser específico da fonte do filtro. Use argumentos nomeados para evitar vincular valores aos parâmetros errados quando a ordem de declaração for diferente.

Antes de adicionar uma linha, verifique se sua função unificadora personalizada declara os parâmetros referenciados e se seu parser específico da fonte os aceita. Encaminhe pack=pack somente se o parser específico da origem oferecer suporte a isso. A tabela define disabled=false de forma que o parser personalizado seja ativado. Para desativar ou reativar o analisador, mude o disabled argumento para true ou false na chamada de parser específica da fonte dentro da função unificadora personalizada.

Esquema Analisador Linha a ser adicionada
AgentEvent Im_AgentEventCustom _parser_name_ (starttime=starttime, endtime=endtime, agentid_has_any=agentid_has_any, agentname_has_any=agentname_has_any, username_has_any=username_has_any, disabled=false, pack=pack)
Evento de alerta Im_AlertEventCustom _parser_name_ (starttime=starttime, endtime=endtime, ipaddr_has_any_prefix=ipaddr_has_any_prefix, hostname_has_any=hostname_has_any, username_has_any=username_has_any, attacktactics_has_any=attacktactics_has_any, attacktechniques_has_any=attacktechniques_has_any, threatcategory_has_any=threatcategory_has_any, alertverdict_has_any=alertverdict_has_any, eventseverity_has_any=eventseverity_has_any, disabled=false, pack=pack)
Entidade de ativo Im_AssetEntityCustom _parser_name_ (starttime=starttime, endtime=endtime, entityid_has_any=entityid_has_any, entityname_has_any=entityname_has_any, assettype_in=assettype_in, path_has_any=path_has_any, assetowner_has_any=assetowner_has_any, entitysource_has_any=entitysource_has_any, disabled=false, pack=pack)
AuditEvent Im_AuditEventCustom _parser_name_ (starttime=starttime, endtime=endtime, srcipaddr_has_any_prefix=srcipaddr_has_any_prefix, actorusername_has_any=actorusername_has_any, operation_has_any=operation_has_any, eventtype_in=eventtype_in, eventresult=eventresult, object_has_any=object_has_any, newvalue_has_any=newvalue_has_any, disabled=false, pack=pack)
Autenticação Im_AuthenticationCustom _parser_name_ (starttime=starttime, endtime=endtime, username_has_any=username_has_any, targetappname_has_any=targetappname_has_any, srcipaddr_has_any_prefix=srcipaddr_has_any_prefix, srchostname_has_any=srchostname_has_any, eventtype_in=eventtype_in, eventresultdetails_in=eventresultdetails_in, eventresult=eventresult, disabled=false, pack=pack)
DhcpEvent Im_DhcpEventCustom _parser_name_ (starttime=starttime, endtime=endtime, srcipaddr_has_any_prefix=srcipaddr_has_any_prefix, srchostname_has_any=srchostname_has_any, srcusername_has_any=srcusername_has_any, eventresult=eventresult, disabled=false, pack=pack)
DNS Im_DnsCustom _parser_name_ (starttime=starttime, endtime=endtime, srcipaddr=srcipaddr, domain_has_any=domain_has_any, responsecodename=responsecodename, response_has_ipv4=response_has_ipv4, response_has_any_prefix=response_has_any_prefix, eventtype=eventtype, disabled=false, pack=pack)
EmailEvent Im_EmailEventCustom _parser_name_ (starttime=starttime, endtime=endtime, ipaddr_has_any_prefix=ipaddr_has_any_prefix, emailfromaddress_has_any=emailfromaddress_has_any, emailrecipient_has_any=emailrecipient_has_any, emailsubject_has_any=emailsubject_has_any, emaildirection_in=emaildirection_in, emaildeliverylocation_in=emaildeliverylocation_in, eventresult=eventresult, disabled=false, pack=pack)
FileEvent Im_FileEventCustom _parser_name_ (starttime=starttime, endtime=endtime, eventtype_in=eventtype_in, srcipaddr_has_any_prefix=srcipaddr_has_any_prefix, actorusername_has_any=actorusername_has_any, targetfilepath_has_any=targetfilepath_has_any, srcfilepath_has_any=srcfilepath_has_any, hashes_has_any=hashes_has_any, dvchostname_has_any=dvchostname_has_any, disabled=false, pack=pack)
Sessão de Rede Im_NetworkSessionCustom _parser_name_ (starttime=starttime, endtime=endtime, srcipaddr_has_any_prefix=srcipaddr_has_any_prefix, dstipaddr_has_any_prefix=dstipaddr_has_any_prefix, ipaddr_has_any_prefix=ipaddr_has_any_prefix, dstportnumber=dstportnumber, hostname_has_any=hostname_has_any, dvcaction=dvcaction, eventresult=eventresult, disabled=false, pack=pack)
ProcessEvent Im_ProcessEventCustom _parser_name_ (starttime=starttime, endtime=endtime, commandline_has_any=commandline_has_any, commandline_has_all=commandline_has_all, commandline_has_any_ip_prefix=commandline_has_any_ip_prefix, actingprocess_has_any=actingprocess_has_any, targetprocess_has_any=targetprocess_has_any, parentprocess_has_any=parentprocess_has_any, actorusername_has=actorusername_has, targetusername_has=targetusername_has, dvcipaddr_has_any_prefix=dvcipaddr_has_any_prefix, dvchostname_has_any=dvchostname_has_any, hashes_has_any=hashes_has_any, eventtype=eventtype, disabled=false)
Evento de Registro Im_RegistryEventCustom _parser_name_ (starttime=starttime, endtime=endtime, eventtype_in=eventtype_in, actorusername_has_any=actorusername_has_any, registrykey_has_any=registrykey_has_any, registryvalue_has_any=registryvalue_has_any, registrydata_has_any=registrydata_has_any, dvchostname_has_any=dvchostname_has_any, disabled=false, pack=pack)
Gerenciamento de usuário Im_UserManagementCustom _parser_name_ (starttime=starttime, endtime=endtime, srcipaddr_has_any_prefix=srcipaddr_has_any_prefix, targetusername_has_any=targetusername_has_any, actorusername_has_any=actorusername_has_any, eventtype_in=eventtype_in, disabled=false, pack=pack)
WebSession Im_WebSessionCustom _parser_name_ (starttime=starttime, endtime=endtime, srcipaddr_has_any_prefix=srcipaddr_has_any_prefix, ipaddr_has_any_prefix=ipaddr_has_any_prefix, url_has_any=url_has_any, httpuseragent_has_any=httpuseragent_has_any, eventresultdetails_in=eventresultdetails_in, eventresult=eventresult, eventresultdetails_has_any=eventresultdetails_has_any, disabled=false, pack=pack)

Ao adicionar um analisador adicional a um analisador personalizado unificador que já faz referência a analisadores, certifique-se de adicionar uma vírgula no final da linha anterior.

Por exemplo, o código a seguir mostra Im_DnsCustom após adicionar added_parser. Ambos os analisadores específicos de fonte neste exemplo aceitam disabled e pack, e a função unificadora personalizada declara ambos os parâmetros. A union isfuzzy=true instrução combina resultados dos analisadores existentes e novos. Ele pode tolerar a ausência de uma fonte de união quando outra fonte é resolvida, mas não suprime todos os erros de consulta nem valida o encaminhamento de parâmetros:

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

Usar uma versão modificada de um analisador interno

Para modificar um parser existente integrado específico da fonte:

  1. Crie um analisador personalizado com base no analisador original e adicione o analisador personalizado ao analisador unificador interno. Você pode usar a versão dos analisadores ASIM workspace-deployed como ponto de partida.

  2. Adicionar um registro ao ASim Disabled Parsers Watchlist.

  3. Defina o valor de CallerContext como Exclude<parser name>, em que <parser name> é o nome dos parsers unificadores dos quais você deseja excluir o parser.

  4. Defina o SourceSpecificParser valor Exclude<parser name>, onde <parser name>está o nome do analisador que você deseja excluir, sem um especificador de versão.

Por exemplo, para excluir o analisador DNS do Firewall do Azure, adicione o seguinte registro ao watchlist:

Implantação do analisador sintático CallerContext SourceSpecificParser
_ASim_Dns integrado somente leitura Exclude_ASim_Dns Exclude_ASim_Dns_AzureFirewall
_Im_Dns integrado somente leitura Exclude_Im_Dns Exclude_Im_Dns_AzureFirewall
ASimDns implantado no workspace ExcludeASimDns ExcludeASimASimDnsAzureFirewall

As chaves de exclusão de maiúsculas e minúsculas sem sublinhados são específicas para analisadores sintáticos implantados no workspace.

Impedir uma atualização automatizada de um analisador interno

Para fixar um analisador interno específico da origem a uma versão específica e impedir atualizações automáticas, conclua estas etapas:

  1. Adicione a versão do analisador interno que você deseja usar, como _Im_Dns_AzureFirewallV02, ao analisador unificador personalizado. Para obter mais informações, consulte Adicionar um analisador personalizado a um analisador unificador interno.

  2. Adicione uma exceção para o analisador interno. Por exemplo, quando você quiser recusar totalmente as atualizações automáticas e, portanto, excluir um grande número de analisadores internos, adicione:

  • Um registro com Any no campo SourceSpecificParser, para excluir todos os analisadores do CallerContext.
  • Um registro para Any no CallerContext e os campos SourceSpecificParser para excluir todos os analisadores internos.

Para saber mais sobre como excluir analisadores integrados usando a watchlist, consulte a seção Usar uma versão modificada de um analisador integrado.

Configure as fontes relevantes para um analisador específico de origem

Alguns analisadores exigem que você atualize a lista de fontes relevantes para o analisador. Por exemplo, um analisador que usa dados do Syslog pode não ser capaz de determinar quais eventos do Syslog são relevantes para o analisador. Esse analisador pode usar a Sources_by_SourceType lista de observação para determinar quais fontes enviam informações relevantes para o analisador. Para tais análises, adicione um registro para cada fonte relevante à lista de observação:

  • Defina o SourceType campo como o valor específico do analisador especificado na documentação do analisador.
  • Defina o Source campo como o identificador da fonte usada nos eventos. Talvez seja necessário consultar a tabela original, como Syslog, para determinar o valor correto.

Se o seu sistema não tiver a Sources_by_SourceType lista de observação implantada, implante a lista de observação no seu espaço de trabalho do Microsoft Sentinel usando o modelo de implantação da lista de observação do ASIM no GitHub.

Saiba mais sobre os analisadores ASIM:

Saiba mais sobre o ASIM em geral: