Como Analisar Logs com Wazuh para Detecção de Incidentes

26 min de leitura Segurança
Como Analisar Logs com Wazuh para Detecção de Incidentes

Visão Geral do Wazuh

O Wazuh é uma plataforma de segurança de código aberto extremamente robusta, projetada para atuar como uma solução completa de XDR (Extended Detection and Response) e SIEM (Security Information and Event Management). Diferente de ferramentas de monitoramento passivo, o Wazuh combina capacidades de detecção de ameaças, monitoramento de integridade de arquivos (FIM), detecção de rootkits e conformidade regulatória em um único ecossistema. Para administradores de sistemas e profissionais de segurança que gerenciam infraestruturas na Toda Solução, o Wazuh funciona como o cérebro centralizado que coleta, normaliza e analisa eventos de diversas fontes, desde servidores Linux e Windows até dispositivos de rede e instâncias cloud.

A arquitetura do Wazuh é composta por três componentes fundamentais que trabalham de forma coordenada. O primeiro é o Wazuh Indexer, um motor de busca e análise baseado em tecnologia de indexação de alta performance, responsável por armazenar os dados processados de forma que consultas complexas sejam executadas em milissegundos. O segundo é o Wazuh Server, que atua como o núcleo de inteligência; ele recebe os dados dos agentes, aplica regras de detecção, gerencia o motor de decodificação e executa as respostas ativas (Active Response) para mitigar ataques em tempo real. Por fim, o Wazuh Dashboard fornece a interface visual para visualização de alertas, criação de dashboards customizados e investigação forense.

O grande diferencial técnico do Wazuh reside na sua capacidade de análise de logs através de decoders e regras. Quando um log chega ao servidor, o componente de decodificação extrai campos estruturados (como IP de origem, usuário, porta e status de erro) de strings de texto não estruturadas. Em seguida, o motor de regras compara esses campos com assinaturas de ameaças conhecidas. Por exemplo, se o decoder identificar múltiplas tentativas de login falhas originadas de um mesmo IP em um curto intervalo de tempo, o Wazuh disparará um alerta de nível alto, podendo até executar um comando automático para bloquear esse IP no firewall do host através do módulo de Active Response.

Para ambientes de produção, o Wazuh permite o monitoramento de conformidade com padrões internacionais como PCI DSS, GDPR e NIST. Ao integrar logs de sistemas operacionais, aplicações web (como Apache e Nginx) e bancos de dados (MySQL, PostgreSQL), a ferramenta transforma dados brutos de auditoria em inteligência acionável, permitindo que equipes de TI não apenas identifiquem que um incidente ocorreu, mas compreendam o vetor de ataque e a extensão do comprometimento na infraestrutura.

Conceitos de Monitoramento e SIEM

Para compreender o funcionamento do Wazuh, é fundamental distinguir os papéis de monitoramento de logs e as capacidades de um SIEM (Security Information and Event Management). O monitoramento de logs refere-se à coleta, ingestão e análise de registros gerados por sistemas operacionais, aplicações e dispositivos de rede. No ecossistema Wazuh, esse processo inicia-se com a leitura de arquivos de log (como o /var/log/auth.log no Linux ou o Event Viewer no Windows) e a captura de eventos via Syslog ou APIs. O objetivo primário é garantir a visibilidade sobre o que ocorre na infraestrutura, transformando dados brutos em informações estruturadas.

O SIEM é uma camada de inteligência superior que utiliza esses logs para realizar a correlação de eventos. Enquanto um monitor de logs simples apenas armazena o que aconteceu, o SIEM analisa padrões entre diferentes fontes de dados para identificar ataques complexos. Por exemplo, um único erro de login em um servidor pode ser apenas um esquecimento do usuário, mas dez tentativas de login falhas em dez servidores diferentes em menos de um minuto, seguidas por um sucesso de login de um IP estrangeiro, caracteriza um ataque de brute force ou credential stuffing.

A arquitetura do Wazuh opera através de três pilares técnicos essenciais:

  • Decoders: São componentes responsáveis por realizar o parsing (análise sintática) das strings de log. Eles utilizam expressões regulares para extrair campos críticos, como endereços IP, nomes de usuários e códigos de erro, transformando uma linha de texto plano em um objeto JSON estruturado.
  • Rules (Regras): Após a decodificação, as regras aplicam a lógica de detecção. Elas verificam se os campos extraídos pelos decoders correspondem a padrões de ameaças conhecidos ou comportamentos anômalos, gerando um alerta caso os critérios de severidade sejam atingidos.
  • Indexação e Alerta: Os eventos que dispararam regras são enviados para o Indexer (baseado em OpenSearch), onde são armazenados de forma otimizada para busca rápida, permitindo que o dashboard do Wazuh exiba visualizações em tempo real sobre o estado de segurança da rede.

Dessa forma, o Wazuh não atua apenas como um repositório de auditoria, mas como um motor de detecção e resposta (XDR). Ele integra a análise de integridade de arquivos (FIM), verificação de vulnerabilidades e monitoramento de configuração, permitindo que o administrador de TI saia de uma postura reativa para uma postura proativa, identificando o incidente no momento exato de sua ocorrência.

Pré-requisitos do Ambiente

Para implementar uma arquitetura de monitoramento robusta utilizando o Wazuh, é fundamental garantir que o ambiente de infraestrutura possua os recursos de hardware e software adequados. O Wazuh não é apenas um agente, mas um ecossistema que exige componentes de indexação e análise de dados que demandam alta disponibilidade de recursos.

  • Servidor Central (Wazuh Manager/Indexer): Recomenda-se uma instância VPS ou Cloud com, no mínimo, 8GB de RAM e 4 vCPUs para ambientes pequenos. O processamento de logs em tempo real exige alta capacidade de I/O de disco para evitar gargalos no indexador.
  • Sistema Operacional Compatível: O servidor central deve rodar distribuições Linux estáveis, preferencialmente Ubuntu 22.04 LTS ou CentOS 7/8, devido à compatibilidade das dependências de bibliotecas de criptografia.
  • Agentes de Monitoramento: Os endpoints (servidores web, bancos de dados ou máquinas Windows) devem ter acesso de rede ao Manager. O sistema operacional do agente deve suportar a arquitetura x86_64 ou ARM.
  • Conectividade de Rede: É necessário liberar as portas 1514/TCP (comunicação de agentes para o manager) e 1515/TCP (registro de novos agentes) no firewall da sua infraestrutura ou no Security Group da sua nuvem.
  • Acesso Privilegiado (Root/Sudo): Todo o processo de instalação e configuração de decodificadores exige permissões de superusuário para manipular arquivos de configuração em /var/ossec/etc/ e gerenciar serviços do sistema.
  • Capacidade de Armazenamento: O volume de logs pode crescer exponencialmente. É imprescindível planejar um storage com expansão fácil, considerando que o Wazuh Indexer manterá o histórico de eventos para fins de auditoria e conformidade.
  • Dependências de Software: Para o servidor de gerenciamento, é necessário que o ambiente possua utilitários como curl, wget, tar e gnupg instalados para a gestão de repositórios e chaves GPG.

Preparação da Infraestrutura

A preparação da infraestrutura para o Wazuh exige uma divisão clara entre o servidor central (Manager) e os nós que serão monitorados (Agents). Para garantir a integridade dos dados e a performance de análise, o servidor deve possuir recursos dedicados, evitando a sobrecarga de serviços de produção como bancos de dados ou servidores web.

O primeiro passo consiste em preparar o sistema operacional do servidor central, garantindo que o repositório esteja atualizado e que as dependências de segurança, como o OpenSSL, estejam prontas para o tráfego criptografado.

  1. Atualize o sistema operacional do servidor central para garantir que todas as bibliotecas de segurança estejam na versão mais recente.
    sudo apt update && sudo apt upgrade -y

    O comando apt update atualiza a lista de pacotes, enquanto o upgrade aplica as novas versões, reduzindo vulnerabilidades conhecidas.

  2. Instale as dependências essenciais para a compilação e execução de módulos de segurança no Linux.
    sudo apt install curl apt-transport-https gnupg2 software-properties-common -y

    O pacote gnupg2 é fundamental para gerenciar as chaves GPG do repositório Wazuh, garantindo que o software baixado seja autêntico.

  3. Configure o Firewall (UFW) para permitir o tráfego de comunicação entre o Manager e os Agentes.
    sudo ufw allow 1514/tcp && sudo ufw allow 1515/tcp

    A porta 1514/tcp é utilizada para a comunicação de eventos (logs), enquanto a 1515/tcp é responsável pela autenticação e registro de novos agentes no cluster.

  4. Configure o Hostname de forma estática para evitar falhas de resolução de nomes durante o registro dos agentes.
    sudo hostnamectl set-hostname wazuh-manager.toda-solucao.local

    O comando hostnamectl define o nome da máquina de forma permanente, o que é vital para que os agentes saibam exatamente para qual destino enviar os logs via FQDN.

  5. Verifique a conectividade de rede e a integridade do serviço de rede após as alterações de firewall.
    sudo ufw status
    Status: active
    To: 1514/tcp ALLOW Anywhere
    To: 1515/tcp ALLOW Anywhere

    O output esperado deve listar as portas 1514 e 1515 como permitidas para o tráfego de entrada.

Certifique-se de que o servidor possui uma IP estático ou um DNS interno confiável. Se o endereço IP do Manager mudar, todos os agentes perderão a conexão e o monitoramento será interrompido, gerando alertas de "Agent Disconnected" no dashboard.

Configuração do Agente Wazuh

Após preparar a infraestrutura do servidor central, o próximo passo é a instalação e o registro do Wazuh Agent nos endpoints que você deseja monitorar. O agente é o componente responsável por coletar logs, monitorar integridade de arquivos e enviar os dados para o Manager via protocolo TLS.

  1. Realize o download do pacote de instalação correspondente à sua distribuição Linux. No exemplo abaixo, utilizaremos o comando para sistemas baseados em Debian/Ubuntu:
    wget https://packages.wazuh.com/4.x/apt/pool/main/w/wazuh-agent/wazuh-agent_4.7.2-1_amd64.deb
    O comando wget baixa o arquivo binário diretamente do repositório oficial da Wazuh.

     

  2. Instale o pacote utilizando o gerenciador de pacotes dpkg:
    sudo dpkg -i wazuh-agent_4.7.2-1_amd64.deb
    A flag -i (install) instrui o sistema a descompactar e configurar os binários no diretório /var/ossec/.

     

  3. Configure o endereço IP ou FQDN do seu <strong>Wazuh Manager</strong>. Você deve editar o arquivo <code class="command">ossec.conf para que o agente saiba para onde enviar os eventos:
    <code>sudo nano /var/ossec/etc/ossec.conf
    Dentro do arquivo, localize a seção <code class="command"><client> e altere a diretiva <server_address>:
    <code><client>
      <server_address>192.168.1.100</server_address>
      <config_share>no</config_share>
    </client>
    A diretiva <code class="command"><server_address> define o destino dos logs, enquanto o <config_share> determina se o Manager pode sobrescrever configurações locais via Agent Group.

     

  4. Habilite e inicie o serviço do agente no sistema operacional:
    <code>sudo systemctl enable wazuh-agent && sudo systemctl start wazuh-agent
    O comando <code class="command">enable garante que o agente inicie automaticamente após um reboot, e o start inicia o processo imediatamente.

     

Para garantir que a comunicação foi estabelecida com sucesso, verifique o status do serviço e o log de inicialização:

<code>sudo systemctl status wazuh-agent
<code">● wazuh-agent.service - Wazuh agent
   Active: active (running) since Mon 2023-10-23 10:00:00 UTC; 5s ago
   ...
   INFO: Wazuh agent started.</code">

Você também pode validar a conexão consultando o log interno do agente em busca da mensagem de registro:

sudo grep -i "connected to the server" /var/ossec/logs/ossec.log
2023年10月23 10:00:05 wazuh-agent: INFO: Connected to the server.</code"></pre>

<h2>Configuração de Regras e Decoders</h2>

<p>Após a instalação do agente, o próximo passo crítico é ensinar o <strong>Wazuh Manager</strong> a interpretar os logs brutos. O motor de análise utiliza <strong>decoders</strong> para extrair campos estruturados (como IP, usuário e comando) e <strong>rules</strong> para atribuir níveis de alerta baseados nesses dados extra</p>

<p>Os decoders funcionam como um parser de Regex. Se o seu log não possui um decoder compatível, o Wazuh tratará a linha apenas como um evento genérico, sem inteligência de segurança. As regras, por sua vez, utilizam os campos extraídos pelos decoders para disparar alertas de <strong>nível (level)</strong> específico.</p>

<ol>
	<li>Identifique o padrão do log de entrada. Acesse o servidor do Manager e localize o diretório de customização, evitando alterar os arquivos padrão do sistema para não perder alterações durante atualizações.
	<pre>
<code class="language-bash">cd /var/ossec/etc/ruleset/decoders/
  • Crie um novo decoder customizado para um serviço específico, como um log de aplicação web. Utilize o arquivo local_decoder.xml para manter a persistência.
    <decoder name="minha_app">
      <prematch>APP_LOG:</prematch>
      <regex>user: (\S+) ip: (\d+.\d+.\d+.\d+)</regex>
      <type>syslog</type>
    </decoder>

    A diretiva prematch define o padrão que identifica o início do log, enquanto o regex captura os grupos de dados em campos nomeados.

  • Configure a regra de detecção no arquivo local_rules.xml. Esta regra deve referenciar o nome do decoder criado anteriormente.
    <group name="web_app">
      <rule id="100001" level="7" decoder="minha_app">
        <description>Tentativa de acesso suspeita detectada</description>
        <match>admin</match>
      </rule>
    </group>

    O atributo level="7" define a severidade do alerta, e a tag match filtra apenas eventos que contenham a string "admin" dentro do log processado.

  • Reinicie o serviço do Wazuh Manager para que as novas definições de lógica de análise sejam carregadas na memória.
    systemctl restart wazuh-manager

    O comando systemctl restart é essencial, pois o motor de análise (analysisd) lê as configurações apenas no boot do processo.

  • Verificação do Monitoramento

    Após a instalação do agente e a configuração de regras, é fundamental validar se o fluxo de dados está íntegro entre o endpoint e o servidor Wazuh Manager. A verificação deve ser feita em duas camadas: a recepção do log no agente e o processamento do alerta no dashboard (Indexador/Dashboard).

    O primeiro passo é simular um evento de segurança no host monitorado para forçar o gatilho de uma regra existente. Utilizaremos o comando logger, que envia mensagens diretamente para o syslog do Linux, permitindo testar se o Wazuh captura e decodifica o padrão.

    1. No servidor ou máquina que possui o Wazuh Agent instalado, execute o comando abaixo para gerar um log de erro simulado:
      logger -p auth.err "Invalid user admin from 192.168.1.50"
      O parâmetro -p define a facility e a priority (neste caso, erro de autenticação), enquanto a string entre aspas é a mensagem que o decodificador tentará processar.
    2. Acesse o terminal do seu Wazuh Manager para verificar se o evento foi recebido e processado pelo motor de análise. Utilize o comando grep nos arquivos de log do manager:
      grep "Invalid user admin" /var/ossec/logs/alerts/alerts.log
      O arquivo alerts.log armazena todos os eventos que dispararam uma regra de nível superior ao nível zero. Se o comando retornar a linha do log, a comunicação está funcional.
    3. Verifique o status do agente no servidor central para garantir que ele não está em estado de disconnected ou disconnected (reconnecting):
      /var/ossec/bin/agent_control -l
      A flag -l lista todos os agentes registrados. Procure pelo ID do seu agente e confirme se o status exibido é Active.

    O resultado esperado no arquivo de alertas deve ser semelhante ao trecho abaixo, indicando que o decoder identificou o padrão e a rule aplicou a severidade correta:

    [01292024-14:30:05.123,456] alerts.log:
    rule: 5710
    level: 5
    description:sshd: authentication failed
    srcip: 192.168.1.50
    user: admin

    Se o log aparecer no alerts.log, mas não estiver visível na interface web (Wazuh Dashboard), o problema pode estar no pipeline de ingestão do Filebeat ou na indexação do OpenSearch. Certifique-se de que o serviço wazuh-indexer está saudável e que os dashboards foram atualizados com o novo índice.

    Troubleshooting de Logs

    A análise de falhas no fluxo de logs é uma etapa crítica para garantir que o Wazuh esteja entregando a visibilidade necessária para a segurança. Quando os eventos não aparecem no Dashboard, o problema geralmente reside na comunicação entre o agente e o manager, ou na interpretação dos dados pelo motor de análise.

    • Sintoma: Agente aparece como "Disconnected" ou "Never Connected" no painel do Wazuh.

      Boas Práticas de Segurança

      Implementar o Wazuh exige uma postura de segurança em camadas para garantir que a ferramenta de monitoramento não se torne um vetor de ataque. Como o Wazuh centraliza logs críticos de toda a sua infraestrutura, a proteção do servidor manager e dos agentes é o pilar fundamental da sua estratégia de defesa.

      • Segregação de Rede e Controle de Acesso: Nunca exponha a interface web do Wazuh (Dashboard) diretamente para a internet pública. Utilize uma VPN ou um túnel SSH para acessar o gerenciamento. Além disso, configure o firewall (iptables ou ufw) para permitir conexões na porta 1514 (agentes) apenas de IPs conhecidos ou subredes de produção.
      • Implementação de Autenticação Multifator (MFA): O acesso ao dashboard deve ser protegido por políticas de senhas fortes e, preferencialmente, integrado a um provedor de identidade (IdP) que suporte MFA. Isso mitiga o risco de credenciais administrativas vazadas através de ataques de brute-force.
      • Princípio do Menor Privilégio (PoLP): Ao configurar os agentes em servidores de produção, limite o escopo de leitura dos arquivos de log. O usuário que executa o processo do agente deve ter apenas permissão de leitura nos diretórios monitorados (como /var/log/auth.log), evitando que uma vulnerabilidade no agente comprometa outros dados sensíveis do sistema.
      • Criptografia de Comunicação: Certifique-se de que a comunicação entre o Wazuh Manager e os agentes utilize autenticação baseada em chaves. O processo de registro do agente deve ser validado para evitar o "spoofing" de agentes maliciosos tentando injetar logs falsos no seu SIEM para mascarar atividades de invasão.
      • Monitoramento da Integridade de Arquivos (FIM): Utilize o módulo Syscheck do Wazuh para monitorar não apenas logs, mas também binários críticos do sistema e arquivos de configuração do próprio Wazuh. Configure alertas para qualquer alteração em diretórios como /etc/ssh/ ou /usr/bin/.
      • Rotação de Logs e Retenção de Dados: Configure políticas de logrotate agressivas para evitar o esgotamento de disco no servidor manager, mas garanta que os dados brutos sejam movidos para um storage de backup frio (cold storage) antes da deleção. A conformidade com leis como a LGPD exige que você saiba exatamente quanto tempo armazena dados que podem conter informações sensíveis.
      • Hardening do Servidor Manager: Trate o servidor do Wazuh como um ativo de altíssima criticidade. Aplique patches de segurança do sistema operacional regularmente e utilize ferramentas de auditoria de conformidade (como o próprio módulo SCA do Wazuh) para verificar se o servidor segue as melhores práticas de hardening (CIS Benchmarks).

      Exemplos de Detecção de Ameaças

      A eficácia do Wazuh reside na sua capacidade de correlacionar eventos aparentemente isolados para identificar padrões de ataque complexos. Abaixo, detalhamos três cenários críticos que podem ser monitorados utilizando a lógica de decoders e ruleset nativos da plataforma.

      O primeiro exemplo clássico é a detecção de Brute Force via SSH. O Wazuh monitora o arquivo /var/log/auth.log (em sistemas Debian/Ubuntu) ou /var/log/secure (em RHEL/CentOS) em busca de múltiplas falhas de autenticação em um curto intervalo de tempo. Quando o agente identifica uma sequência de eventos com o mesmo IP de origem e o mesmo usuário, mas com status de falha, o motor de regras dispara um alerta de nível alto. Isso é vital para identificar tentativas de invasão automatizadas por bots que varrem a internet em busca de portas abertas.

      Um segundo cenário envolve a detecção de Escalação de Privilégios. Através do monitoramento de logs do comando sudo, o Wazuh pode identificar quando um usuário comum executa comandos com privilégios de root que fogem do padrão operacional da empresa. Por exemplo, o uso de comandos como chmod +x ou a alteração de permissões em diretórios sensíveis como /etc/shadow pode ser configurado para gerar um alerta imediato. Isso permite que a equipe de TI identifique um possível comprometimento de conta antes que o atacante consiga estabelecer persistência no servidor.

      Por fim, temos a detecção de Alterações em Arquivos Críticos (FIM - File Integrity Monitoring). O módulo FIM do Wazuah não apenas observa o conteúdo, mas rastreia metadados. Se um atacante modificar o arquivo de configuração do Nginx (/etc/nginx/nginx.conf) para redirecionar tráfego malicioso, o Wazuh detectará a mudança de hash do arquivo. A detecção ocorre seguindo este fluxo lógico:

      1. O agente realiza o scan periódico do diretório configurado no ossec.conf.
      2. Uma alteração de checksum (MD5/SHA1/SHA256) é detectada pelo agente.
      3. O evento é enviado ao Wazuh Manager.
      4. O Manager compara a alteração com as regras de integridade e gera um alerta de nível 7 ou superior, dependendo da sensibilidade da pasta.

      Esses exemplos demonstram que o Wazuh não é apenas um agregador de logs, mas uma ferramenta de inteligência de segurança que transforma dados brutos em ações preventivas e reativas fundamentais para a infraestrutura da sua empresa.

      Conclusão e Próximos Passos

      Implementar o Wazuh em sua infraestrutura é um marco fundamental para elevar o nível de maturidade da sua segurança cibernética. Ao longo deste tutorial, você estabeleceu a base para uma estratégia de monitoramento centralizado, transformando logs brutos e desconexos em inteligência acionável. No entanto, a configuração do SIEM não é um evento único, mas um processo contínuo de refinamento e expansosão de visibilidade.

      O sucesso de uma detecção de incidentes depende diretamente da qualidade dos dados ingeridos. Se o seu agente está coletando logs, mas as regras não estão disparando alertas para comportamentos anômalos, a sua infraestrutura permanece vulnerável. O próximo passo lógico após a configuração inicial é a automação da resposta. O Wazuh possui o módulo Active Response, que permite que o servidor envie comandos automáticos para os agentes, como o bloqueio de um IP via iptables ou o isolamento de um processo suspeito, reduzindo drasticamente o tempo de resposta (MTTR) diante de um ataque de força bruta ou ransomware.

      Para escalar sua operação, considere as seguintes etapas de evolução técnica:

      • Integração com Cloud: Configure a ingestão de logs de provedores como AWS (CloudWatch), Azure ou Google Cloud para ter uma visão unificada de sua infraestrutura híbrida.
      • Enriquecimento de Dados: Utilize o módulo de Threat Intelligence para cruzar os logs coletados com bases de dados de reputação de IPs e hashes de malware conhecidos.
      • Customização de Regras: Não dependa apenas das regras padrão. Desenvolva decoders específicos para suas aplicações proprietárias ou sistemas legados que operam em portas não convencionais.
      • Monitoramento de Integridade (FIM): Refine a política de File Integrity Monitoring para monitorar arquivos críticos do sistema operacional e diretórios de configuração de servidores web como o Nginx ou Apache.

      A jornada de segurança é cíclica. Utilize o dashboard do Wazuh para realizar auditorias periódicas e identificar "pontos cegos" onde a falta de logs impede a correta correlação de eventos. Com o tempo, sua infraestrutura deixará de ser apenas reativa para se tornar uma camada de defesa proativa e resiliente, capaz de antecipar ameaças antes que elas causem impacto ao seu negócio.

    Compartilhar: Link copiado!
    Esse tutorial foi útil?

    Comentários (0)

    Seja o primeiro a comentar.

    Deixe seu comentário

    Seu comentário será analisado antes de ser publicado.

    0/2000