Partilhar via


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

Importante

A coleta de logs de muitos dispositivos e dispositivos agora é suportada pelo Common Event Format (CEF) via AMA, Syslog via AMA ou Custom Logs via conector de dados AMA no Microsoft Sentinel. Para obter mais informações, veja Localizar o conector de dados do Microsoft Sentinel.

Atenção

Este artigo faz referência ao CentOS, uma distribuição Linux que atingiu o status de Fim da Vida Útil (EOL). Por favor, considere o seu uso e planejamento de acordo. Para obter mais informações, consulte as diretrizes de Fim da Vida Útil do CentOS.

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

Por exemplo, se suas mensagens de log não estiverem aparecendo nas tabelas Syslog ou CommonSecurityLog , sua fonte de dados pode 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 do conector incluem quando 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 obter mais informações, consulte Conectar sua solução externa usando o Common Event Format 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 de novo, 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 CEF por meio do Azure Monitor Agent (AMA), revise o CEF (Common Event Format) por meio das instruções do conector 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 consultas personalizadas. Para obter mais detalhes, consulte a seção de ações recomendadas nesta postagem do blog. O conteúdo pronto para uso (deteções, consultas de caça, 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 CEF, elas são apresentadas em guias separadas. Certifique-se de que está a utilizar as instruções no separador correto para o tipo de conector.

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

Validar a conectividade CEF

Depois de implantar o encaminhador de log e configurar sua solução de segurança para enviar mensagens CEF, use as etapas nesta seção para verificar a conectividade entre sua solução de segurança e o Microsoft Sentinel.

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

  1. Certifique-se de que tem os seguintes pré-requisitos:

    • Você deve ter permissões elevadas (sudo) em sua máquina de encaminhamento de log.

    • Você deve ter python 2.7 ou 3 instalado em sua máquina de encaminhador de log. Use o python --version comando para verificar.

    • Você pode precisar da ID do Espaço de Trabalho e da Chave Primária do Espaço de Trabalho em algum momento desse processo. Você pode encontrá-los no recurso de espaço de trabalho, em Gerenciamento de agentes.

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

    Pode levar cerca de 20 minutos até que seus logs comecem a aparecer 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. Ou tente executar algumas ações para gerar mensagens de log e verifique se as mensagens são encaminhadas para a máquina de encaminhamento Syslog designada.

  4. Para verificar a conectividade entre sua solução de segurança, o encaminhador de log e o Microsoft Sentinel, execute o seguinte script no encaminhador de log (aplicando a ID do espaço de trabalho 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 do Log Analytics. Ele também envia mensagens simuladas '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 orientando você a 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 orientando você a executar um comando para corrigir um problema com a análise de logs de firewall Cisco ASA. Consulte a explicação no script de validação para obter detalhes.

Explicação do guião de validação do MIE

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

daemon rsyslog

Para um daemon rsyslog, o script de validação 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 de eventos do Cisco ASA Firewall 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 produzirá uma mensagem de erro orientando você a executar manualmente o seguinte comando (aplicando a ID do espaço de trabalho 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á mapeado corretamente no agente do 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 produzirá uma mensagem de erro orientando você a executar manualmente o seguinte comando (aplicando a ID do espaço de trabalho 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 há algum aprimoramento de segurança na máquina que possa estar bloqueando o tráfego de rede (como um firewall de host).

  6. Verifica se o daemon syslog (rsyslog) está configurado corretamente para enviar mensagens (que identifica como CEF) para o agente do 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 syslog e o agente do Log Analytics:

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

    netstat -an | grep 514
    
    netstat -an | grep 25226
    
  9. Verifica se o daemon 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 MOCK para a porta 514 no localhost. Esses dados devem ser observáveis no espaço de trabalho do Microsoft Sentinel executando a seguinte consulta:

    CommonSecurityLog
    | where DeviceProduct == "MOCK"
    

daemon syslog-ng

Para um daemon syslog-ng, o script de validação 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 de eventos do Cisco ASA Firewall 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 produzirá uma mensagem de erro orientando você a executar manualmente o seguinte comando (aplicando a ID do espaço de trabalho 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á mapeado corretamente no agente do 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 produzirá uma mensagem de erro orientando você a executar manualmente o seguinte comando (aplicando a ID do espaço de trabalho 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 há algum aprimoramento de segurança na máquina que possa estar bloqueando o tráfego de rede (como um firewall de host).

  6. Verifica se o daemon syslog (syslog-ng) está configurado corretamente para enviar mensagens que identifica como CEF (usando um regex) para o agente do 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 syslog e o agente do Log Analytics:

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

    netstat -an | grep 514
    
    netstat -an | grep 25226
    
  9. Verifica se o daemon 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 MOCK para a porta 514 no localhost. Esses dados devem ser observáveis no espaço de trabalho 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 conector de dados CEF ou Syslog.

Máquina Virtual do Azure como um coletor CEF

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

  • Antes de implantar o script Python do conector de dados de formato de evento comum, verifique se a máquina virtual ainda não está conectada a um espaço de trabalho existente do Log Analytics. Você pode encontrar essas informações na lista Máquina Virtual do Espaço de Trabalho do Log Analytics, onde uma VM conectada a um espaço de trabalho Syslog é listada como Conectada.

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

    Para obter mais informações, consulte Etapa 1: implantar o encaminhador de log.

  • Certifique-se de que sua máquina está dimensionada corretamente com pelo menos os pré-requisitos mínimos necessários. Para obter mais informações, consulte Pré-requisitos do MIE.

Máquina Virtual local ou não Azure

Se estiver a utilizar uma máquina no local ou uma máquina virtual que não seja do Azure para o seu conector de dados, certifique-se de que executou o script de instalação numa nova instalação de um sistema operativo Linux suportado:

Gorjeta

Você também pode encontrar esse script na página do conector de dados Common Event Format 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>

Habilite sua instalação CEF e registre a coleta de gravidade

O servidor Syslog, rsyslog ou syslog-ng, encaminha todos os dados definidos no arquivo de configuração relevante, que é preenchido automaticamente pelas configurações definidas no espaço de trabalho do Log Analytics.

Certifique-se de adicionar detalhes sobre as instalações e os níveis de log de gravidade que você deseja que sejam ingeridos no Microsoft Sentinel. O processo de configuração pode levar cerca de 20 minutos.

Para obter mais informações, consulte Script de implantação explicado.

Por exemplo, para um servidor rsyslog, execute o seguinte comando para exibir as configurações atuais para o encaminhamento Syslog e revise todas 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

Resolver problemas do sistema operativo

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

Para solucionar problemas do sistema operacional:

  1. Se ainda não o fez, verifique se está a trabalhar com um sistema operativo suportado e uma versão Python. Para obter mais informações, consulte Pré-requisitos do MIE.

  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 seu cliente de log (Remetente) na porta 514.

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

    tcpdump -Ani any port 514 and host <ip_address_of_sender> -vv
    
  4. Execute 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 Syslog Collector.

    • Se vir pacotes a chegar, confirme que não estão a ser 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 CEF está processando os logs. Executar:

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

    Todos os registos do MIE que estejam a ser processados são apresentados em texto simples.

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

    netstat -anp | grep syslog
    

    Se você tiver algum log CEF ou ASA sendo enviado para seu Syslog Collector, 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ê pode ter uma conexão SELinux bloqueada com o agente do OMS ou um processo de firewall bloqueado. Use as instruções relevantes mais adiante 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 permissive estado ou está bloqueando uma conexão com o agente do OMS. Este procedimento é relevante quando seu sistema operacional é uma distribuição de RedHat ou CentOS, e para conectores de dados CEF e Syslog.

Nota

O suporte do Microsoft Sentinel para CEF e Syslog inclui apenas proteção FIPS. Outros métodos de proteção, como SELinux ou CIS não são suportados no momento.

  1. Executar:

    sestatus
    

    O status é exibido como um dos seguintes:

    • disabled. Esta configuração é suportada para a sua ligação ao Microsoft Sentinel.
    • permissive. Esta configuração é suportada para a sua ligação ao Microsoft Sentinel.
    • enforced. Essa configuração não é suportada e você deve desabilitar o status ou defini-lo como permissive.
  2. Se o estado estiver atualmente definido como enforced, desative-o temporariamente para confirmar se este foi o bloqueador. Executar:

    setenforce 0
    

    Nota

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

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

    getenforce
    

    O permissive Estado deve ser devolvido.

Importante

Esta 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 SELINUX valor para SELINUX=permissive.

Para obter mais informações, consulte 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 desativá-la conforme necessário. Este procedimento é relevante para os conectores de dados CEF e Syslog.

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

    watch -n 2 -d iptables -nvL
    
  2. Para manter a política de firewall ativada, crie uma regra de política para permitir as conexões. Adicione regras conforme necessário para permitir que as portas TCP/UDP 25226 e 25224 passem pelo 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 através do firewall ativo, adicione regras conforme necessário.

    1. Para instalar o editor de Políticas 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. Executar:

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

      sudo firewall-cmd --reload
      

Nota

Para desativar o firewall, execute: sudo systemctl disable firewalld

Se as etapas descritas anteriormente neste artigo não resolverem seu problema, você pode ter um problema de conectividade entre o Agente do OMS e o espaço de trabalho do Microsoft Sentinel.

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

  • Certifique-se de que você pode ver os pacotes chegando na porta TCP/UDP 514 no coletor Syslog

  • Certifique-se de que você pode ver os logs sendo gravados no arquivo de log local, / var/log/messages ou /var/log/syslog

  • Certifique-se de que você pode ver pacotes de dados fluindo na porta 25226

  • Verifique se 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

  • Certifique-se de que tem acesso aos URLs necessários a partir do seu coletor CEF através da sua política de firewall. Para obter mais informações, consulte Requisitos de firewall do agente 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 espaço de trabalho 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 pode ser bloqueado.