Intermediário Sistema e Host
Análise de Logs — onde ficam, o que procurar e eventos suspeitos
Logs são a principal fonte de evidência em um incidente de segurança. Saber onde ficam, o que significam e como filtrar o ruído é uma habilidade central para qualquer analista de segurança.
Linux — principais arquivos de log
/var/log/auth.log — autenticações SSH, sudo, su (Debian/Ubuntu)
/var/log/secure — mesmo, em Red Hat/CentOS
/var/log/syslog — mensagens gerais do sistema
/var/log/kern.log — mensagens do kernel
/var/log/cron — execuções de cron jobs
/var/log/audit/audit.log — eventos do auditd (detalhado)
/var/log/apache2/ — logs de acesso e erro do Apache
/var/log/nginx/ — logs do Nginx
O que procurar em auth.log
# Falhas de autenticação SSH (força bruta)
grep "Failed password" /var/log/auth.log | awk '{print $11}' | sort | uniq -c | sort -rn | head -20
# Login bem-sucedido após múltiplas falhas — sinal de brute-force bem-sucedido
grep "Accepted password\|Accepted publickey" /var/log/auth.log
# Uso de sudo
grep "sudo:" /var/log/auth.log | grep -v "pam_unix"
# Adição de usuário ou mudança de senha
grep "useradd\|passwd\|usermod" /var/log/auth.log
Windows — Event Viewer e IDs críticos
ID 4624 — Logon bem-sucedido
ID 4625 — Falha de logon (brute-force indicator)
ID 4648 — Logon com credenciais explícitas (pass-the-hash, runas)
ID 4672 — Privilégios especiais atribuídos
ID 4688 — Processo criado (com Sysmon, inclui linha de comando)
ID 4698 — Tarefa agendada criada
ID 4720 — Conta de usuário criada
ID 4728 — Membro adicionado ao grupo privilegiado
ID 7045 — Serviço instalado
ID 1102 — Log de auditoria limpo (sinal de cobertura de rastros)
# Filtrar falhas de logon nas últimas 24h
Get-WinEvent -FilterHashtable @{
LogName='Security'; Id=4625;
StartTime=(Get-Date).AddHours(-24)
} | Select-Object TimeCreated, Message | Format-List
Padrões suspeitos
Brute-force SSH:
Dezenas de "Failed password" para o mesmo IP em minutos
Seguido de "Accepted" — comprometimento confirmado
Movimento lateral:
Logon tipo 3 (rede) de IP interno incomum
Logon fora do horário comercial
Criação de backdoor:
useradd + usermod -aG sudo em sequência
Novo serviço instalado (7045) + binário fora de System32
Limpeza de rastros:
Event ID 1102 (log limpo) ou log truncado subitamente
Lacuna de tempo nos logs — indicativo de manipulação
Correlação e centralização
Logs isolados em cada máquina são difíceis de correlacionar. Use um SIEM ou stack de log centralizado:
Fluxo típico:
Host → rsyslog/winlogbeat → Logstash/Fluentd → Elasticsearch → Kibana/Grafana
Regra de correlação simples:
Se o mesmo IP gerar > 10 falhas de logon em 5 minutos → alerta
Se houver logon bem-sucedido após falhas consecutivas → alerta crítico
Ferramentas úteis
# grep + awk para análise rápida
grep "Failed password" /var/log/auth.log | awk '{print $11}' | sort | uniq -c | sort -rn
# journalctl (systemd)
journalctl -u sshd --since "1 hour ago" --no-pager
# last — histórico de logins
last -a | head -30
lastb | head -30 # tentativas falhas
Preserve logs: configure rotação para manter ao menos 90 dias e envie cópias para storage imutável (S3 com Object Lock, por exemplo).