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).