[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.
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.
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.
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.
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:
Verifica se o arquivo
/etc/opt/microsoft/omsagent/[WorkspaceID]/conf/omsagent.d/security_events.conf
existe e é válido.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>
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]
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]
Verifica se existem aprimoramentos de segurança no computador que podem estar bloqueando o tráfego de rede (como um firewall de host).
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
Reinicia o daemon de syslog e o agente de Log Analytics:
service rsyslog restart /opt/microsoft/omsagent/bin/service_control restart [workspaceID]
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
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
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:
Verifica se o arquivo
/etc/opt/microsoft/omsagent/[WorkspaceID]/conf/omsagent.d/security_events.conf
existe e é válido.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>
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]
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]
Verifica se existem aprimoramentos de segurança no computador que podem estar bloqueando o tráfego de rede (como um firewall de host).
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);};
Reinicia o daemon de syslog e o agente de Log Analytics:
service syslog-ng restart /opt/microsoft/omsagent/bin/service_control restart [workspaceID]
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
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
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:
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.
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.
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
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
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.
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 permissive
estado 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.
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 comopermissive
.
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.
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.
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
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
Para criar uma regra para permitir as portas TCP/UDP 25226 e 25224 por meio do firewall ativo, adicione regras conforme necessário.
Para instalar o editor de Política de Firewall, execute:
yum install policycoreutils-python
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
Verifique se a exceção foi adicionada. Execute:
sudo firewall-cmd --direct --get-rules ipv4 filter INPUT
Recarregue o firewall. Execute:
sudo firewall-cmd --reload
Observação
Para desabilite o firewall, execute: sudo systemctl disable firewalld
Problemas relacionados ao Agente do Linux e do OMS
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.