O que é SIEM
Security Information and Event Management coleta, normaliza e correlaciona logs de toda a infraestrutura em tempo real. Um firewall, um AD, um endpoint e um servidor web geram eventos isolados — o SIEM os correlaciona para identificar padrões de ataque que nenhuma ferramenta isolada veria.
Fontes de Log Essenciais
Endpoint:
Windows Event Log (Security, System, Application)
Linux /var/log/auth.log, /var/log/syslog
EDR (CrowdStrike, Defender, SentinelOne)
Rede:
Firewall (allow/deny por regra, IP, porta)
IDS/IPS (Snort, Suricata — alertas de assinatura)
DNS (queries — exfiltração via DNS, DGA)
Proxy web (URLs acessadas, User-Agent, categorias)
NetFlow (volume de tráfego por par IP/porta)
Identidade:
Active Directory (4624 logon, 4625 falha, 4740 lockout)
Azure AD / Okta (MFA, Conditional Access, risky sign-ins)
VPN (conexões, localizações, horas incomuns)
Aplicação:
Web Server (Apache/Nginx access.log)
WAF (bloqueios, tentativas de SQLi/XSS)
API Gateway (rate limiting, 401/403 em massa)
Banco de dados (queries anômalas, acesso a tabelas sensíveis)
Cloud:
AWS CloudTrail (todas as chamadas de API)
Azure Monitor / Activity Log
GCP Cloud LoggingRegras de Detecção — O Coração do SIEM
Brute Force de SSH
# Splunk SPL
index=linux sourcetype=auth
| rex "Failed password for (?P<user>\S+) from (?P<src_ip>\S+)"
| stats count by src_ip, user
| where count > 10
| eval severity="HIGH"
| table _time, src_ip, user, count, severity
# Regra: mais de 10 falhas de autenticação SSH em 5 minutos do mesmo IPLateral Movement — Pass the Hash / Pass the Ticket
# Windows Event IDs relevantes:
# 4624 Type 3 = Network logon (normal)
# 4624 Type 9 = NewCredentials (runas /netonly — suspeito)
# 4768 = Kerberos TGT request
# 4769 = Kerberos service ticket (TGS)
# 4771 = Kerberos pre-auth failed
# Sigma Rule (formato agnóstico de SIEM):
title: Pass-the-Hash Detection
id: 8eef149c-bd26-49f2-9aeb-afa66719e7a5
status: stable
detection:
selection:
EventID: 4624
LogonType: 9
LogonProcessName: seclogo
condition: selection
level: highExfiltração de Dados via DNS
# Queries DNS muito longas = tunneling
index=dns
| eval qname_len=len(query)
| where qname_len > 50
| stats count by src_ip, query
| where count > 100
| sort -count
# Alta frequência de subdomain requests para mesmo domínio
index=dns
| rex field=query "[^.]+\.(?P<parent_domain>[^.]+\.[^.]+)$"
| stats dc(query) as unique_subdomains by src_ip, parent_domain
| where unique_subdomains > 50Ransomware — Criptografia em Massa
# Alta taxa de operações de rename/write em compartilhamentos
index=windows EventCode=4663
| where Object_Type="File"
| rex field=Object_Name "(?P<ext>\.[^.]+)$"
| where match(ext, "\.(encrypted|locked|WNCRY|locky|zepto)")
| stats count by ComputerName
| where count > 50
# Volume Shadow Copy deletado (precursor de ransomware)
index=windows EventCode=4688
| where CommandLine like "%vssadmin%delete%shadows%"
OR CommandLine like "%wmic%shadowcopy%delete%"Reconhecimento Interno
# Port scan interno
index=firewall action=deny
| stats dc(dest_port) as unique_ports by src_ip
| where unique_ports > 100
| sort -unique_ports
# LDAP enumeration do Active Directory
index=windows EventCode=4662
| stats count by SubjectUserName
| where count > 500
# BloodHound queries no AD (enumeração massiva)
index=ldap
| stats dc(query) as query_count by src_ip
| where query_count > 1000Arquitetura de SIEM
# Stack ELK (Open Source)
Elasticsearch — armazenamento e busca de logs
Logstash — ingestão, parse e enriquecimento
Kibana — visualização e dashboards
Beats — agentes de coleta (Filebeat, Winlogbeat, Auditbeat)
# Configuração básica Filebeat (Linux)
# /etc/filebeat/filebeat.yml
filebeat.inputs:
- type: log
paths:
- /var/log/auth.log
- /var/log/nginx/access.log
- /var/log/apache2/*.log
output.elasticsearch:
hosts: ["siem:9200"]
# Wazuh (SIEM + XDR open source)
# Agentes em todos os endpoints
# Detecção de rootkits, FIM, compliance
docker run -d --name wazuh-manager wazuh/wazuh-manager:latest
# Splunk (enterprise)
# index=main sourcetype=syslog
# Linguagem SPL (Search Processing Language)
# Microsoft Sentinel (cloud)
# KQL (Kusto Query Language)
# Integração nativa com Azure AD, O365, DefenderEstrutura do SOC
Tier 1 — Analista de Alertas
- Triagem de alertas (60-100 por dia)
- Classificar: falso positivo ou incidente real?
- Escalar para Tier 2 se incidente confirmado
- Primeiro a responder (15 min SLA)
Tier 2 — Investigação
- Análise profunda de incidentes escalados
- Correlação de múltiplos alertas
- Containment inicial
- Documentação detalhada do incidente
Tier 3 — Threat Hunting e Forense
- Busca proativa de ameaças não alertadas
- Análise forense de malware
- Desenvolvimento de novas regras de detecção
- Inteligência de ameaças
Engenharia de Segurança
- Manutenção e tuning do SIEM
- Integração de novas fontes
- Automação (SOAR)
- Documentação de playbooksSOAR — Automação de Resposta
# Security Orchestration, Automation and Response
# Reduz MTTR (Mean Time to Respond) de horas para minutos
# Playbook: Phishing recebido
1. Alert disparado → extrai hash do anexo
2. Auto: consultar VirusTotal API → malicioso? → bloquear
3. Auto: extrair URLs → consultar URLhaus → bloquear no proxy
4. Auto: identificar todos que receberam o email
5. Auto: revogar sessões de quem clicou
6. Notificar: analista com contexto completo
7. Auto: abrir ticket no ServiceNow
# Soluções SOAR:
# Splunk SOAR (Phantom)
# Microsoft Sentinel Automation Rules
# Palo Alto XSOAR
# Shuffle (open source)
# TheHive + Cortex (open source)Métricas do SOC
- MTTD — Mean Time to Detect: tempo médio entre compromisso e detecção (meta: < 24h)
- MTTR — Mean Time to Respond: tempo até containment (meta: < 4h)
- False Positive Rate — alertas inválidos / total de alertas (meta: < 20%)
- Alert Volume — alertas por analista por dia (meta: < 50 para análise de qualidade)
- Coverage — % da infraestrutura enviando logs para o SIEM (meta: 100%)
Quer testar isso na prática?
A CyberZ realiza testes autorizados de segurança usando as técnicas descritas neste artigo — e muito mais. Identifique suas vulnerabilidades antes que os invasores o façam.
Falar com Especialista