[Preterido] Solucionar problemas do conector de dados CEF ou Syslog

Importante

A coleta de logs de vários aparelhos e dispositivos agora tem suporte no Formato Comum de Evento (CEF) via AMA, Syslog via AMA, ou Logs Personalizados via conector de dados AMA no Microsoft Sentinel. Para obter mais informações, consulte Encontrar seu conector de dados do Microsoft Sentinel.

Cuidado

Este artigo faz referência ao CentOS, uma distribuição do Linux que atingiu o status de EOL (Fim do serviço). Considere seu uso e planejamento adequadamente. Para obter mais informações, confira as Diretrizes de Fim do Suporte do CentOS.

Este artigo descreve métodos comuns para verificar e solucionar problemas de um CEF ou conector de dados do Syslog para o Microsoft Sentinel.

Por exemplo, se suas mensagens de log não estiverem aparecendo nas tabelas do Syslog ou CommonSecurityLog, a fonte de dados poderá não estar se conectando corretamente. Também pode haver outro motivo pelo qual seus dados não estão sendo recebidos.

Outros sintomas de uma falha na implantação de um conector incluem quando ou os arquivos security_events.conf ou security-omsagent.config.conf estão ausentes ou se o servidor rsyslog não está escutando na porta 514.

Para mais informações, confira Conectar sua solução externa usando o Formato Comum do Evento e Coletar dados de fontes baseadas em Linux usando o Syslog.

Se você implantou seu conector usando um método diferente do procedimento documentado e, se estiver tendo problemas, recomendamos que você descarte a implantação e comece novamente, desta vez seguindo as instruções documentadas.

Este artigo mostra como solucionar problemas de conectores CEF ou Syslog com o agente do Log Analytics. Para obter informações de solução de problemas relacionadas à ingestão de logs do CEF por meio do Agente do Azure Monitor (AMA), examine as instruções do conector Formato Comum de Evento (CEF) por meio do AMA .

Importante

Em 28 de fevereiro de 2023, introduzimos alterações no esquema da tabela CommonSecurityLog. Após essa alteração, talvez seja necessário revisar e atualizar as consultas personalizadas. Para mais informações, confira a seção de ações recomendadas nesta postagem do blog. O conteúdo pronto para uso (detecções, consultas de busca, pastas de trabalho, analisadores etc.) foi atualizado pelo Microsoft Sentinel.

Como usar este artigo

Quando as informações neste artigo são relevantes apenas para Syslog ou apenas para conectores do CEF, elas são apresentadas em guias separadas. Use as instruções na guia correta para o tipo de conector.

Por exemplo, se você estiver solucionando problemas de um conector do CEF, comece com Validar conectividade do CEF. Se você estiver solucionando problemas de um conector do Syslog, comece com Verificar os pré-requisitos do conector de dados.

Validar a conectividade CEF

Depois de implantar o seu encaminhador de log e configurar a sua solução de segurança para enviar mensagens de CEF, siga estas instruções para verificar a conectividade entre a sua solução de segurança e o Microsoft Sentinel.

Esse procedimento é relevante apenas para conexões do CEF e não é relevante para conexões do Syslog.

  1. Verifique se você tem os seguintes pré-requisitos:

    • Você deve ter permissões elevadas (sudo) no computador encaminhador de log.

    • Você deve ter o Python 2.7 ou 3 instalado no computador encaminhador de log. Use o comando python --version para verificar.

    • Talvez seja necessário a ID do Workspace e a Chave Primária do Workspace em algum momento nesse processo. Você pode encontrá-los no recurso do Workspace, em Gerenciamento de agentes.

  2. No menu de navegação do Microsoft Sentinel, clique em Logs. Execute uma consulta usando o esquema CommonSecurityLog para ver se você está recebendo logs de sua solução de segurança.

    Pode levar até 20 minutos para que os logs comecem a ser exibidos no Log Analytics.

  3. Se você não vir nenhum resultado da consulta, verifique se sua solução de segurança está gerando mensagens de log. Como alternativa, tente executar algumas ações para gerar mensagens de log e verifique se as mensagens são encaminhadas para o computador encaminhador do Syslog designado.

  4. Para verificar a conectividade entre sua solução de segurança, o encaminhador de log e o Microsoft Sentinel, execute o script a seguir no encaminhador de log (aplicando a ID do Workspace no lugar do espaço reservado). Esse script verifica se o daemon está escutando nas portas corretas, se o encaminhamento está configurado corretamente e se nada está bloqueando a comunicação entre o daemon e o agente de Log Analytics. Ele também envia as mensagens de simulação 'TestCommonEventFormat ' para verificar a conectividade de ponta a ponta.

    sudo wget -O cef_troubleshoot.py https://raw.githubusercontent.com/Azure/Azure-Sentinel/master/DataConnectors/CEF/cef_troubleshoot.py&&sudo python cef_troubleshoot.py [WorkspaceID]
    
    • Você pode receber uma mensagem direcionando para executar um comando para corrigir um problema com o mapeamento do campo Computador. Consulte a explicação no script de validação para obter detalhes.

    • Você pode receber uma mensagem direcionando para executar um comando para corrigir um problema com a análise dos logs do firewall Cisco ASA. Consulte a explicação no script de validação para obter detalhes.

Explicação do Script de validação do CEF

A seção a seguir descreve o script de validação do CEF para o daemon rsyslog e o daemon syslog-ng.

daemon do rsyslog

Para um daemon rsyslog, o script de validação do CEF executa as seguintes verificações:

  1. Verifica se o arquivo
    /etc/opt/microsoft/omsagent/[WorkspaceID]/conf/omsagent.d/security_events.conf
    existe e é válido.

  2. Verifica se o arquivo inclui o seguinte texto:

    <source>
        type syslog
        port 25226
        bind 127.0.0.1
        protocol_type tcp
        tag oms.security
        format /(?<time>(?:\w+ +){2,3}(?:\d+:){2}\d+|\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.[\w\-\:\+]{3,12}):?\s*(?:(?<host>[^: ]+) ?:?)?\s*(?<ident>.*CEF.+?(?=0\|)|%ASA[0-9\-]{8,10})\s*:?(?<message>0\|.*|.*)/
        <parse>
            message_format auto
        </parse>
    </source>
    
    <filter oms.security.**>
        type filter_syslog_security
    </filter>
    
  3. Verifica se a análise dos eventos de firewall Cisco ASA está configurada conforme o esperado, usando o seguinte comando:

    grep -i "return ident if ident.include?('%ASA')" /opt/microsoft/omsagent/plugin/security_lib.rb
    
    • Se houver um problema com a análise, o script produz uma mensagem de erro direcionando você para executar manualmente o comando a seguir (aplicando a ID do Workspace no lugar do espaço reservado). O comando garante a análise correta e reinicia o agente.

      # Cisco ASA parsing fix
      sed -i "s|return '%ASA' if ident.include?('%ASA')|return ident if ident.include?('%ASA')|g" /opt/microsoft/omsagent/plugin/security_lib.rb && sudo /opt/microsoft/omsagent/bin/service_control restart [workspaceID]
      
  4. Verifica se o campo Computador na origem do syslog está corretamente mapeado no agente de Log Analytics, usando o seguinte comando:

    grep -i "'Host' => record\['host'\]"  /opt/microsoft/omsagent/plugin/filter_syslog_security.rb
    
    • Se houver um problema com o mapeamento, o script produz uma mensagem de erro direcionando você para executar manualmente o comando a seguir (aplicando a ID do Workspace no lugar do espaço reservado). O comando garante o mapeamento correto e reinicia o agente.

      # Computer field mapping fix
      sed -i -e "/'Severity' => tags\[tags.size - 1\]/ a \ \t 'Host' => record['host']" -e "s/'Severity' => tags\[tags.size - 1\]/&,/" /opt/microsoft/omsagent/plugin/filter_syslog_security.rb && sudo /opt/microsoft/omsagent/bin/service_control restart [workspaceID]
      
  5. Verifica se existem aprimoramentos de segurança no computador que podem estar bloqueando o tráfego de rede (como um firewall de host).

  6. Verifica se o daemon do syslog (rsyslog) está configurado corretamente para enviar mensagens (que ele identifica como CEF) para o agente de Log Analytics na porta TCP 25226:

    Arquivo de configuração: /etc/rsyslog.d/security-config-omsagent.conf

    if $rawmsg contains "CEF:" or $rawmsg contains "ASA-" then @@127.0.0.1:25226
    
  7. Reinicia o daemon de syslog e o agente de Log Analytics:

    service rsyslog restart
    
    /opt/microsoft/omsagent/bin/service_control restart [workspaceID]
    
  8. Verifica se as conexões necessárias são estabelecidas: TCP 514 para receber dados, TCP 25226 para comunicação interna entre o daemon de syslog e o agente de Log Analytics:

    netstat -an | grep 514
    
    netstat -an | grep 25226
    
  9. Verifica se o daemon do syslog está recebendo dados na porta 514 e se o agente está recebendo dados na porta 25226:

    sudo tcpdump -A -ni any port 514 -vv
    
    sudo tcpdump -A -ni any port 25226 -vv
    
  10. Envia dados FICTÍCIOS para a porta 514 no localhost. Esses dados devem ser observáveis no Workspace do Microsoft Sentinel executando a seguinte consulta:

    CommonSecurityLog
    | where DeviceProduct == "MOCK"
    

daemon do syslog-ng

Para um daemon syslog-ng, o script de validação do CEF executa as seguintes verificações:

  1. Verifica se o arquivo
    /etc/opt/microsoft/omsagent/[WorkspaceID]/conf/omsagent.d/security_events.conf
    existe e é válido.

  2. Verifica se o arquivo inclui o seguinte texto:

    <source>
        type syslog
        port 25226
        bind 127.0.0.1
        protocol_type tcp
        tag oms.security
        format /(?<time>(?:\w+ +){2,3}(?:\d+:){2}\d+|\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.[\w\-\:\+]{3,12}):?\s*(?:(?<host>[^: ]+) ?:?)?\s*(?<ident>.*CEF.+?(?=0\|)|%ASA[0-9\-]{8,10})\s*:?(?<message>0\|.*|.*)/
        <parse>
            message_format auto
        </parse>
    </source>
    
    <filter oms.security.**>
        type filter_syslog_security
    </filter>
    
  3. Verifica se a análise dos eventos de firewall Cisco ASA está configurada conforme o esperado, usando o seguinte comando:

    grep -i "return ident if ident.include?('%ASA')" /opt/microsoft/omsagent/plugin/security_lib.rb
    
    • Se houver um problema com a análise, o script produz uma mensagem de erro direcionando você para executar manualmente o comando a seguir (aplicando a ID do Workspace no lugar do espaço reservado). O comando garante a análise correta e reinicia o agente.

      # Cisco ASA parsing fix
      sed -i "s|return '%ASA' if ident.include?('%ASA')|return ident if ident.include?('%ASA')|g" /opt/microsoft/omsagent/plugin/security_lib.rb && sudo /opt/microsoft/omsagent/bin/service_control restart [workspaceID]
      
  4. Verifica se o campo Computador na origem do syslog está corretamente mapeado no agente de Log Analytics, usando o seguinte comando:

    grep -i "'Host' => record\['host'\]"  /opt/microsoft/omsagent/plugin/filter_syslog_security.rb
    
    • Se houver um problema com o mapeamento, o script produz uma mensagem de erro direcionando você para executar manualmente o comando a seguir (aplicando a ID do Workspace no lugar do espaço reservado). O comando garante o mapeamento correto e reinicia o agente.

      # Computer field mapping fix
      sed -i -e "/'Severity' => tags\[tags.size - 1\]/ a \ \t 'Host' => record['host']" -e "s/'Severity' => tags\[tags.size - 1\]/&,/" /opt/microsoft/omsagent/plugin/filter_syslog_security.rb && sudo /opt/microsoft/omsagent/bin/service_control restart [workspaceID]
      
  5. Verifica se existem aprimoramentos de segurança no computador que podem estar bloqueando o tráfego de rede (como um firewall de host).

  6. Verifica se o daemon de syslog (syslog-ng) está configurado corretamente para enviar mensagens que ele identifica como CEF (usando um regex) para o agente de Log Analytics na porta TCP 25226:

    • Arquivo de configuração: /etc/syslog-ng/conf.d/security-config-omsagent.conf

      filter f_oms_filter {match(\"CEF\|ASA\" ) ;};destination oms_destination {tcp(\"127.0.0.1\" port(25226));};
      log {source(s_src);filter(f_oms_filter);destination(oms_destination);};
      
  7. Reinicia o daemon de syslog e o agente de Log Analytics:

    service syslog-ng restart
    
    /opt/microsoft/omsagent/bin/service_control restart [workspaceID]
    
  8. Verifica se as conexões necessárias são estabelecidas: TCP 514 para receber dados, TCP 25226 para comunicação interna entre o daemon de syslog e o agente de Log Analytics:

    netstat -an | grep 514
    
    netstat -an | grep 25226
    
  9. Verifica se o daemon do syslog está recebendo dados na porta 514 e se o agente está recebendo dados na porta 25226:

    sudo tcpdump -A -ni any port 514 -vv
    
    sudo tcpdump -A -ni any port 25226 -vv
    
  10. Envia dados FICTÍCIOS para a porta 514 no localhost. Esses dados devem ser observáveis no Workspace do Microsoft Sentinel executando a seguinte consulta:

    CommonSecurityLog
    | where DeviceProduct == "MOCK"
    

Verificar os pré-requisitos do conector de dados

Use as seções a seguir para verificar os pré-requisitos do seu conector de dados CEF ou Syslog.

Máquina Virtual do Azure como coletor do CEF

Se você estiver usando uma Máquina Virtual do Azure como coletor do CEF, verifique o seguinte:

  • Antes de implantar o script Python do conector de Dados de Formato Comum de Evento, verifique se a Máquina Virtual ainda não está conectada a um workspace do Log Analytics existente. Você pode encontrar essas informações na lista Máquina Virtual do Workspace do Log Analytics, em que uma VM conectada a um workspace do Syslog está listada como Conectada.

  • Verifique se o Microsoft Sentinel está conectado ao workspace do Log Analytics correto, com a solução SecurityInsights instalada.

    Para mais informações, confira Etapa 1: implantar o encaminhador de logs.

  • Dimensione seu computador corretamente com, pelo menos, os pré-requisitos mínimos necessários. Para obter mais informações, confira os pré-requisitos do CEF.

Máquina Virtual não Azure ou local

Se você estiver usando um computador local ou uma máquina virtual não Azure para o seu conector de dados, execute o script de instalação em uma nova instalação de um sistema operacional Linux com suporte:

Dica

Você também pode encontrar esse script na página do conector de dados de Formato Comum do Evento no Microsoft Sentinel.

sudo wget -O cef_installer.py https://raw.githubusercontent.com/Azure/Azure-Sentinel/master/DataConnectors/CEF/cef_installer.py&&sudo python cef_installer.py <WorkspaceId> <Primary Key>

Habilitar a instalação do CEF e a coleção de severidade do log

O servidor Syslog, seja o rsyslog ou o syslog-ng, encaminha todos os dados definidos no arquivo de configuração relevante, que são preenchidos automaticamente pelas configurações definidas em seu workspace do Log Analytics.

Certifique-se de adicionar detalhes sobre os recursos e os níveis de severidade de log que você deseja ingerir no Microsoft Sentinel. O processo de configuração leva cerca de 20 minutos.

Para obter mais informações, confira Explicação do script de implantação.

Por exemplo, para um servidor rsyslog, execute o seguinte comando a fim de exibir as configurações atuais para o encaminhamento do Syslog e examine as alterações no arquivo de configuração:

cat /etc/rsyslog.d/security-config-omsagent.conf

Nesse caso, para rsyslog, uma saída semelhante à seguinte deve ser exibida:

if $rawmsg contains "CEF:" or $rawmsg contains "ASA-" then @@127.0.0.1:25226

Solucionar problemas do sistema operacional

Esta seção descreve como solucionar os problemas que certamente são derivados da configuração do sistema operacional.

Para solucionar os problemas do sistema operacional:

  1. Se você ainda não fez isso, verifique se você está trabalhando com um sistema operacional e uma versão do Python com suporte. Para obter mais informações, confira os pré-requisitos do CEF.

  2. Se a sua Máquina Virtual estiver no Azure, verifique se o NSG (grupo de segurança de rede) permite a conectividade TCP/UDP de entrada do cliente de log (Remetente) na porta 514.

  3. Verifique se os pacotes estão chegando ao Coletor Syslog. Para capturar os pacotes syslog que chegam ao Coletor Syslog, execute:

    tcpdump -Ani any port 514 and host <ip_address_of_sender> -vv
    
  4. Realize um dos seguintes procedimentos:

    • Se você não vir nenhum pacote chegando, confirme as permissões do grupo de segurança NSG e o caminho de roteamento para o Coletor Syslog.

    • Se você vir pacotes chegando, confirme se eles não estão sendo rejeitados.

    Se você vir pacotes rejeitados, confirme se as tabelas IP não estão bloqueando as conexões.

    Para confirmar que os pacotes não estão sendo rejeitados, execute:

    watch -n 2 -d iptables -nvL
    
  5. Verifique se o servidor do CEF está processando os logs. Execute:

    tail -f /var/log/messages or tail -f /var/log/syslog
    

    Os logs do CEF que estão sendo processados são exibidos em texto sem formatação.

  6. Confirme se o servidor rsyslog está escutando na porta TCP/UDP 514. Execute:

    netstat -anp | grep syslog
    

    Se você tiver logs do CEF ou ASA sendo enviados ao Coletor Syslog, deverá ver uma conexão estabelecida na porta TCP 25226.

    Por exemplo:

    0 127.0.0.1:36120 127.0.0.1:25226 ESTABLISHED 1055/rsyslogd
    

    Se a conexão estiver bloqueada, você poderá ter uma conexão SELinux bloqueada ao agente OMS ou um processo de firewall bloqueado. Use as instruções relevantes abaixo para determinar o problema.

SELinux bloqueando a conexão com o agente do OMS

Este procedimento descreve como confirmar se o SELinux está atualmente em um permissiveestado ou está bloqueando uma conexão com o agente do OMS. Este procedimento é relevante quando o sistema operacional é uma distribuição do RedHat ou do CentOS e para os conectores de dados do CEF e do Syslog.

Observação

O suporte do Microsoft Sentinel para CEF e Syslog inclui apenas a defesa FIPS. Outros métodos de segurança, como SELinux ou CIS, não têm suporte no momento.

  1. Execute:

    sestatus
    

    O status é exibido como um dos seguintes itens:

    • disabled. Essa configuração tem suporte para a sua conexão com o Microsoft Sentinel.
    • permissive. Essa configuração tem suporte para a sua conexão com o Microsoft Sentinel.
    • enforced. Não há suporte para essa configuração, e você deve desabilitar o status ou defini-lo como permissive.
  2. Se o status estiver definido como enforced, desative-o temporariamente para confirmar se esse foi o bloqueador. Execute:

    setenforce 0
    

    Observação

    Esta etapa desativa o SELinux somente até que o servidor seja reinicializado. Modifique a configuração do SELinux para mantê-la desativada.

  3. Para verificar se a alteração foi bem-sucedida, execute:

    getenforce
    

    O estado permissive deve ser retornado.

Importante

Essa atualização de configuração é perdida quando o sistema é reinicializado. Para atualizar permanentemente essa configuração para permissive, modifique o arquivo /etc/selinux/config, alterando o valor SELINUX para SELINUX=permissive.

Para obter mais informações, confira a documentação do RedHat.

Política de firewall bloqueada

Este procedimento descreve como verificar se uma política de firewall está bloqueando a conexão do daemon Rsyslog com o agente do OMS e como desabilitá-la conforme necessário. Este procedimento é relevante para os conectores de dados do CEF e do Syslog.

  1. Execute o seguinte comando para verificar se há rejeições nas tabelas de IP, indicando o tráfego que está sendo descartado pela política de firewall:

    watch -n 2 -d iptables -nvL
    
  2. Para manter a política de firewall habilitada, crie uma regra de política para permitir as conexões. Adicione regras conforme necessário para permitir as portas TCP/UDP 25226 e 25224 por meio do firewall ativo.

    Por exemplo:

    Every 2.0s: iptables -nvL                      rsyslog: Wed Jul  7 15:56:13 2021
    
    Chain INPUT (policy ACCEPT 6185K packets, 2466M bytes)
     pkts bytes target     prot opt in     out     source               destination
    
    
    Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
     pkts bytes target     prot opt in     out     source               destination
    
    
    Chain OUTPUT (policy ACCEPT 6792K packets, 6348M bytes)
     pkts bytes target     prot opt in     out     source               destination
    
  3. Para criar uma regra para permitir as portas TCP/UDP 25226 e 25224 por meio do firewall ativo, adicione regras conforme necessário.

    1. Para instalar o editor de Política de Firewall, execute:

      yum install policycoreutils-python
      
    2. Adicione as regras de firewall à política de firewall. Por exemplo:

      sudo firewall-cmd --direct --add-rule ipv4 filter INPUT 0 -p tcp --dport 25226  -j ACCEPT
      sudo firewall-cmd --direct --add-rule ipv4 filter INPUT 0 -p udp --dport 25224  -j ACCEPT
      sudo firewall-cmd --direct --add-rule ipv4 filter INPUT 0 -p tcp --dport 25224  -j ACCEPT
      
    3. Verifique se a exceção foi adicionada. Execute:

      sudo firewall-cmd --direct --get-rules ipv4 filter INPUT
      
    4. Recarregue o firewall. Execute:

      sudo firewall-cmd --reload
      

Observação

Para desabilite o firewall, execute: sudo systemctl disable firewalld

Se as etapas descritas anteriormente neste artigo não resolverem o problema, talvez você tenha um problema de conectividade entre o Agente do OMS e o workspace do Microsoft Sentinel.

Nesses casos, continue a solução de problemas verificando o seguinte:

  • Verifique se você consegue ver os pacotes que chegam na porta TCP/UDP 514 no coletor Syslog

  • Verifique se você consegue ver os logs sendo gravados no arquivo de log local, seja /var/log/messages ou /var/log/syslog

  • Verifique se você pode ver os pacotes de dados fluindo na porta 25226

  • Verifique se a sua máquina virtual tem uma conexão de saída com a porta 443 via TCP ou pode se conectar aos pontos de extremidade do Log Analytics

  • Verifique se você tem acesso às URLs necessárias no coletor do CEF por meio da política de firewall. Para saber mais, confira os requisitos de firewall do Log Analytics.

Execute o comando a seguir para determinar se o agente está se comunicando com êxito com o Azure ou se o agente do OMS está impedido de se conectar ao workspace do Log Analytics.

Heartbeat
 | where Computer contains "<computername>"
 | sort by TimeGenerated desc

Uma entrada de log será retornada se o agente estiver se comunicando com êxito. Caso contrário, o agente do OMS poderá ser bloqueado.