SIEM/XDR • Blue Team • Threat Hunting • Detection Engineering

Wazuh SIEM/XDR O centro do SOC Home Lab

Wazuh 4.14.5 instalado no Ubuntu Server, com múltiplos agentes ativos (Kali Linux e Windows Server 2025), integrado ao Suricata IDS e ao pfSense. Pipeline completo de detecção com regras customizadas, tuning de falsos positivos, SCA, FIM e Threat Hunting real validado contra ataques do Metasploit e OWASP Juice Shop.

Arquitetura do lab

Kali Linux (Suricata + Agente) + Windows Server (Sysmon + Agente) Wazuh Manager — Ubuntu Server (10.10.10.10) Wazuh Indexer + Dashboard pfSense — Gateway/Firewall da LAN

Aviso sobre o ambiente

Este laboratório foi executado em ambiente local, controlado e autorizado. Endereços IP, hostnames, usuários, comandos e evidências exibidos pertencem ao ambiente de estudo ou foram anonimizados. Nenhuma credencial real, token, chave privada ou dado sensível deve ser publicado.

Navegue pelo conteúdo desta documentação.

O centro do SOC Home Lab.

O Wazuh é o eixo central do laboratório — é ele que coleta, processa, correlaciona e apresenta os eventos de segurança de todos os outros componentes. Sem o Wazuh, os logs do Suricata ficam em arquivos JSON isolados, os eventos do Sysmon ficam no Event Viewer do Windows e as detecções do pfSense ficam no syslog. Com o Wazuh, tudo converge num único painel com busca, correlação e alertas.

Este laboratório foi construído progressivamente: primeiro o Manager e o agente do Kali, depois a integração com o Suricata, depois o pfSense, e finalmente o agente do Windows Server com Sysmon. Cada etapa adicionou uma nova camada de visibilidade ao ambiente — e cada integração trouxe novos problemas reais pra diagnosticar e resolver.

Ambiente técnico do laboratório.

Host físico

Dell OptiPlex com Windows 11, Intel Core i7-10700T, 32GB RAM e SSD NVMe 1TB. Base de virtualização para todas as VMs do lab.

Dell OptiPlex i7-10700T 32GB RAM VMware Workstation

Wazuh Manager

Ubuntu Server com Wazuh 4.14.5 completo — Manager, Dashboard, Indexer e Filebeat. IP 10.10.10.10 na LAN do pfSense. Ponto central de coleta e correlação de todos os eventos do lab.

Wazuh 4.14.5 Ubuntu Server Manager + Indexer + Dashboard

Agente Kali Linux

Kali Linux com agente Wazuh e Suricata 8.0.5. Dupla função: endpoint monitorado (agente) e sensor de rede (Suricata → eve.json → Wazuh).

Kali Linux 2026.1 Wazuh Agent Suricata 8.0.5

Agente Windows Server

Windows Server 2025 com Sysmon (SwiftOnSecurity config), auditoria avançada (Event ID 4688/4104) e agente Wazuh. Telemetria de host Windows completa.

Windows Server 2025 Sysmon Wazuh Agent 4.14.5

Do servidor ao pipeline completo.

A implementação foi progressiva — cada etapa adicionou uma nova camada de visibilidade. A metodologia foi a mesma em todas: backup, leitura da documentação, planejamento, execução, teste e validação antes de avançar.

Concluído

Instalação do Wazuh Manager

Instalação do stack completo no Ubuntu Server via script oficial: Manager, Indexer, Dashboard e Filebeat. Validação com systemctl status wazuh-manager e acesso ao dashboard via HTTPS.

Ubuntu ServerWazuh 4.14.5Dashboard HTTPS
Concluído

Agente Kali Linux

Deploy do agente no Kali via comando gerado pelo dashboard (Agents Management → Deploy new agent). Registro automático no Manager, status Active confirmado.

wazuh-agentossec.confTCP 1514
Concluído

Integração com Suricata

Adição do eve.json no ossec.conf do agente Kali. Wazuh passou a ingerir alertas do Suricata com decoders nativos — 710+ eventos nas primeiras 24h.

eve.jsonlog_format jsonrule 86601
Concluído

Agente Windows Server + Sysmon

Deploy do agente no Windows Server 2025 via MSI. Configuração dos canais Sysmon/Operational e PowerShell/Operational no ossec.conf. Telemetria completa de host Windows no dashboard.

Windows Server 2025Sysmoneventchannel
Concluído

Tuning de regras

Falso positivo identificado: regra 92205 (nível 9) disparando pra execução legítima do módulo SCA do próprio Wazuh. Regra de exceção criada no local_rules.xml com nível rebaixado para 3.

local_rules.xmlRule ID 100205if_sid: 92205

Dois endpoints. Dois sistemas operacionais. Uma visão centralizada.

Ter agentes em Linux e Windows é fundamental pra cobertura real de SOC — a maioria das detecções do mercado são para Windows (Event Log, Sysmon, PowerShell), mas ambientes Linux (servidores, Kali como atacante) também precisam de monitoramento. Este lab cobre os dois.

kali-linux (ID 001)

Agente no Kali Linux monitorando autenticação, processos, integridade de arquivos e ingerindo eventos do Suricata (50k+ regras). Versão 4.14.5, status Active.

Kali GNU/Linux 2026.2 v4.14.5 Active Suricata pipeline

win-srv01 (ID 002)

Agente no Windows Server 2025 com telemetria completa — Sysmon (Event IDs 1/3/11/13), Security log (4688 com linha de comando) e PowerShell/Operational (4104 script block logging). Versão 4.14.5, status Active.

Windows Server 2025 v4.14.5 Active Sysmon + 4688 + 4104
<!-- Canais padrão -->
<localfile><location>Application</location><log_format>eventchannel</log_format></localfile>
<localfile><location>Security</location><log_format>eventchannel</log_format></localfile>
<localfile><location>System</location><log_format>eventchannel</log_format></localfile>

<!-- Canais adicionados manualmente -->
<localfile>
  <location>Microsoft-Windows-Sysmon/Operational</location>
  <log_format>eventchannel</log_format>
</localfile>
<localfile>
  <location>Microsoft-Windows-PowerShell/Operational</location>
  <log_format>eventchannel</log_format>
</localfile>

Wazuh como centro de correlação do lab.

Suricata IDS/IPS

O eve.json do Suricata é lido continuamente pelo Wazuh Logcollector no agente Kali. Decoders nativos processam campos como alert.signature, src_ip e dest_port — correlacionando tráfego de rede com eventos de host.

Windows Event Log + Sysmon

O agente Windows coleta via eventchannel os canais Application, Security, System, Sysmon/Operational e PowerShell/Operational. Regras nativas do Wazuh como 67027 (Event ID 4688) e regras Sysmon decodam e classificam cada evento automaticamente.

pfSense (Firewall)

O pfSense está na mesma rede (VMnet1) e atua como gateway do lab — todo tráfego entre as VMs e a internet passa por ele. Integração via syslog documenta conexões e bloqueios do firewall no Wazuh.

Threat Hunting — Dashboard

Todos os eventos convergem no módulo Threat Hunting → Events, pesquisável em DQL. Filtros como rule.groups: suricata, agent.name: win-srv01 e data.alert.signature_id: 3400020 permitem isolar eventos específicos de qualquer fonte.

Falso positivo identificado e corrigido.

Durante a operação normal do lab, a regra nativa 92205 (nível 9 — "Powershell process created an executable file in Windows root folder") disparou de forma persistente para uma execução completamente legítima. Análise do alerta revelou a causa raiz.

Alerta disparado

Regra 92205, nível 9. Processo: SecEdit.exe /export /cfg C:\Windows\TEMP\secexport.cfg. Parecia suspeito pelo nível alto — mas a análise mostrou que era legítimo.

Rule 92205Nível 9SecEdit.exe

Análise do evento

Campos inspecionados: win.eventdata.currentDirectory = C:\Program Files (x86)\ossec-agent\, integrityLevel = System, binário assinado por Microsoft. Conclusão: módulo SCA do próprio Wazuh fazendo auditoria de política de segurança local.

parentImage: ossec-agentMicrosoft CorpSYSTEM

Regra de exceção criada

Regra customizada 100205 no local_rules.xml do Manager: quando a 92205 dispara com SecEdit.exe + ossec-agent como pai, rebaixa o nível para 3 (informativo).

Rule ID 100205Nível 3if_sid: 92205
<group name="local,sca,">
  <rule id="100205" level="3">
    <if_sid>92205</if_sid>
    <field name="win.eventdata.image">SecEdit.exe</field>
    <field name="win.eventdata.parentImage">ossec-agent</field>
    <description>Wazuh SCA module exporting security policy via SecEdit - expected behavior</description>
    <options>no_full_log</options>
  </rule>
</group>

⚠️ IDs de regra customizada usam a faixa 100000–119999 — nunca reutilizar IDs do ruleset padrão (evita conflito em updates do Wazuh).

Alertas reais de ataques executados no lab.

O Threat Hunting no Wazuh não é sobre alertas sintéticos — é sobre ataques reais, executados do Kali contra alvos reais do lab, com detecção validada no dashboard. Dois exercícios de Red Team vs Blue Team foram conduzidos e correlacionados no SIEM.

CVE-2007-2447 — Shell reversa detectada

Reconhecimento

nmap -sV -p- contra o alvo. Suricata detectou e encaminhou ao Wazuh: POSSBL PORT SCAN (NMAP -sA), rule 86601.

nmap -sV -p-Rule 86601Suricata → Wazuh

Shell reversa detectada

Exploração via exploit/multi/samba/usermap_script. Shell reversa na porta 4444 detectada pelo Suricata: POSSBL SCAN SHELL M-SPLOIT TCP, severity 1, "Network Trojan detected".

SID 3400020Severity 1Porta 4444

No Wazuh

Busca data.alert.signature_id: 3400020 em Threat Hunting retornou 2 hits — reconhecimento e exploração — com timestamps e IPs documentados.

2 hitsThreat HuntingLast 4 hours

SQL Injection detectado via regra customizada

SQLi em POST JSON

Payload ' OR 1=1-- no POST /rest/user/login. Regra customizada SID 9000001 (criada no Suricata) detectou e encaminhou ao Wazuh: LOCAL SQLi Attempt - OR 1=1 in HTTP Body.

SID 9000001POST /rest/user/loginRule 86601

DOM XSS — invisível

DOM XSS executado com sucesso no navegador, mas não apareceu no Wazuh — parâmetro processado inteiramente no frontend, nunca trafegou como requisição HTTP. Gap estrutural confirmado.

DOM XSSClient-sideSem alerta

No Wazuh

Busca data.dest_port: 3000 AND data.alert.category: "Web Application Attack" retornou 1 hit — SQLi detectado, XSS ausente conforme esperado.

1 hitWeb Application AttackGap documentado
# Todos os eventos do Suricata
rule.groups: suricata

# Shell reversa do Metasploit
data.alert.signature_id: 3400020

# Eventos do Windows Server
agent.name: win-srv01

# SQLi no Juice Shop
data.dest_port: 3000 AND data.alert.category: "Web Application Attack"

# Criação de processo (Sysmon)
agent.name: win-srv01 AND location: Microsoft-Windows-Sysmon/Operational

O que este laboratório construiu na prática.

O que foi entregue neste laboratório.

2Agentes ativos (Linux + Windows)
4Integrações (Suricata, Sysmon, pfSense, PowerShell)
2Ataques reais detectados no SIEM
1Regra customizada de tuning

Registros do laboratório.

2 agentes Active no dashboard Alertas de Red Team no Threat Hunting Tuning de falso positivo documentado local_rules.xml no Manager
Dashboard principal do Wazuh
Dashboard principal — 2 agentes ativos, Kali Linux e Windows Server.
Serviços do Wazuh em execução
Serviços do Wazuh executando corretamente no Ubuntu Server.
Agentes ativos no Wazuh
kali-linux (ID 001) e win-srv01 (ID 002) — ambos Active.
Eventos de segurança no Wazuh
Threat Hunting — alertas do Suricata e Sysmon correlacionados no dashboard.
Ver repositório completo no GitHub

SIEM operacional. Ataques detectados. Pipeline validado.

O Wazuh foi o primeiro lab do ambiente e continua sendo o centro dele — cada nova ferramenta adicionada (Suricata, pfSense, Windows Server) se integra ao Wazuh como ponto de convergência. O resultado é um pipeline de detecção que cobre host Linux, host Windows, tráfego de rede e perímetro de firewall em um único painel, com alertas validados contra ataques reais executados no próprio lab.

Instalação do Wazuh Manager

Instalação via script oficial (all-in-one) no Ubuntu Server:

curl -sO https://packages.wazuh.com/4.14/wazuh-install.sh
sudo bash wazuh-install.sh -a

O script instala Manager, Indexer, Dashboard e Filebeat. Ao final, exibe a senha gerada do usuário admin. Acesso ao dashboard via https://<IP>.

Validação dos serviços:

sudo systemctl status wazuh-manager --no-pager
sudo systemctl status wazuh-indexer --no-pager
sudo systemctl status wazuh-dashboard --no-pager

Agente Kali Linux

Deploy gerado pelo dashboard (Agents Management → Deploy new agent → Linux/DEB amd64):

wget https://packages.wazuh.com/4.x/apt/pool/main/w/wazuh-agent/wazuh-agent_4.14.5-1_amd64.deb
sudo WAZUH_MANAGER='10.10.10.10' WAZUH_AGENT_NAME='kali-linux' \
  dpkg -i ./wazuh-agent_4.14.5-1_amd64.deb
sudo systemctl start wazuh-agent
sudo systemctl enable wazuh-agent

Confirmação no dashboard: agente kali-linux com status Active, ID 001.

Integração com Suricata

Bloco adicionado ao /var/ossec/etc/ossec.conf do agente Kali:

<localfile>
  <location>/var/log/suricata/eve.json</location>
  <log_format>json</log_format>
</localfile>

Confirmação nos logs do agente após restart:

sudo tail -50 /var/ossec/logs/ossec.log | grep -i suricata
# wazuh-logcollector: INFO: (1950): Analyzing file: '/var/log/suricata/eve.json'

⚠️ Cuidado com entrada duplicada no ossec.conf — o Wazuh avisa com "Log file is duplicated" e ignora a segunda entrada, mas o warning aparece nos logs.

Agente Windows Server + Sysmon

Deploy via MSI gerado pelo dashboard (Windows):

Invoke-WebRequest -Uri https://packages.wazuh.com/4.x/windows/wazuh-agent-4.14.5-1.msi `
  -OutFile $env:tmp\wazuh-agent.msi
msiexec.exe /i $env:tmp\wazuh-agent.msi /q `
  WAZUH_MANAGER='10.10.10.10' `
  WAZUH_AGENT_NAME='win-srv01'
NET START WazuhSvc

Canais adicionados ao ossec.conf para telemetria completa:

Tuning — Falso positivo Rule 92205

O evento que disparou a regra 92205 tinha estes campos no data.win.eventdata:

Regra criada no Manager em /var/ossec/etc/rules/local_rules.xml:

<rule id="100205-2" level="3">
  <if_sid>92205</if_sid>
  <field name="win.eventdata.image">SecEdit.exe</field>
  <field name="win.eventdata.parentImage">ossec-agent</field>
  <description>Wazuh SCA - SecEdit export - expected behavior</description>
</rule>

Aplicado com sudo systemctl restart wazuh-manager. Validado com sudo /var/ossec/bin/wazuh-logtest.