Em segurança da informação, os logs são registros detalhados de eventos que ocorrem em sistemas, aplicações e redes. Eles são fundamentais para auditoria, investigação de incidentes e detecção de ameaças. No entanto, a mera existência de logs não é suficiente: é preciso gerenciá-los de forma segura e eficaz. Nesta aula, exploraremos os pilares da segurança de logs e monitoramento: centralização, retenção, alertas e detecção de anomalias.

Uma estratégia robusta de logs permite que uma organização identifique atividades maliciosas, atenda requisitos de conformidade e responda rapidamente a incidentes. Sem uma abordagem estruturada, logs ficam espalhados, são perdidos ou manipulados, comprometendo a integridade das evidências. Vamos mergulhar em cada aspecto, com exemplos práticos e boas práticas.

Centralização

A centralização de logs consiste em consolidar os registros de diversas fontes (servidores, firewalls, aplicações, bancos de dados, etc.) em um único local ou plataforma. Isso facilita a busca, a correlação e a análise. Sem centralização, cada sistema mantém seus próprios logs, tornando impossível ter uma visão unificada da segurança.

Existem várias ferramentas para centralização, como ELK Stack (Elasticsearch, Logstash, Kibana), Splunk, Graylog e serviços em nuvem (AWS CloudWatch, Azure Monitor). Essas plataformas coletam logs, normalizam formatos e oferecem interfaces de consulta e visualização. Além disso, a centralização permite aplicar controles de acesso e criptografia de forma consistente.

Um exemplo prático de configuração de um coletor de logs com Filebeat (parte da ELK Stack) para enviar logs para o Elasticsearch:

filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /var/log/*.log
output.elasticsearch:
  hosts: ["localhost:9200"]

Nesse exemplo, o Filebeat monitora todos os arquivos .log em /var/log e os envia ao Elasticsearch. Essa é uma forma simples de começar a centralizar logs.

É crucial proteger o pipeline de logs: use TLS para comunicação, autentique as fontes e garanta que os logs não sejam alterados durante a transmissão. Além disso, a centralização deve incluir logs de segurança, como autenticação e mudanças de configuração.

Retenção

A retenção de logs define por quanto tempo os registros devem ser armazenados. Isso é determinado por requisitos legais, regulatórios (como LGPD, PCI-DSS) e necessidades operacionais. Por exemplo, a LGPD pode exigir que dados pessoais sejam mantidos apenas pelo tempo necessário; já o PCI-DSS recomenda manter logs de auditoria por pelo menos um ano.

Uma política de retenção deve especificar os tipos de logs, o período de armazenamento e o método de descarte seguro. É comum usar camadas de armazenamento: logs recentes em armazenamento de alto desempenho, e logs antigos em arquivos compactados ou em storage de baixo custo.

Exemplo de política de retenção em um arquivo de configuração do Logstash, usando o filtro de data e o output para S3 (Amazon Simple Storage Service) com ciclo de vida:

output {
  s3 {
    bucket => "my-logs-bucket"
    prefix => "%{+YYYY}/%{+MM}/%{+dd}/"
    time_file => 3600
    codec => json_lines
  }
}

Aqui, os logs são enviados para o S3 com uma estrutura de pastas por data. O AWS S3 pode ser configurado com regras de ciclo de vida para mover objetos para Glacier ou expirar após um período definido.

É importante também proteger os logs armazenados: criptografe em repouso, restrinja o acesso e realize backups periódicos. A destruição de logs deve ser feita de forma segura, sobretudo se contiverem dados sensíveis.

Alertas

Alertas são notificações automáticas disparadas quando determinados eventos ocorrem nos logs. Eles permitem que a equipe de segurança responda rapidamente a potenciais incidentes. Alertas eficazes são baseados em regras bem definidas e evitam ruído excessivo (falsos positivos).

Ferramentas de SIEM (Security Information and Event Management) como Splunk, QRadar e Wazuh permitem criar alertas personalizados. Além disso, o Elasticsearch com Watcher ou Kibana Alerts pode ser usado. Uma boa prática é usar o conceito de "thresholds" (limiares) e janelas de tempo para reduzir falsos positivos.

Exemplo de uma regra de alerta simples no formato do Elasticsearch Watcher (agora chamado Elastic Alerting):

PUT _watcher/watch/failed_login_alert
{
  "trigger": {
    "schedule": { "interval": "5m" }
  },
  "input": {
    "search": {
      "request": {
        "indices": ["filebeat-*"],
        "body": {
          "query": {
            "bool": {
              "filter": [
                { "term": { "event.category": "authentication" } },
                { "term": { "event.outcome": "failure" } }
              ],
              "must": { "range": { "@timestamp": { "gte": "now-5m" } } }
            }
          }
        }
      }
    }
  },
  "actions": {
    "email": {
      "email": {
        "to": "security@example.com",
        "subject": "Múltiplas falhas de autenticação",
        "body": "Foram detectadas falhas de autenticação nos últimos 5 minutos."
      }
    }
  }
}

Esse alerta é acionado a cada 5 minutos se houver eventos de autenticação com falha. Ajuste os thresholds conforme o ambiente para evitar alertas excessivos.

É essencial definir prioridades para os alertas (crítico, alto, médio, baixo) e estabelecer um processo de resposta (runbooks). Alertas sem ação são inúteis; portanto, integre-os a ferramentas de ticketing ou canais de comunicação (Slack, PagerDuty).

Anomalias

A detecção de anomalias envolve identificar padrões incomuns nos logs que podem indicar ataques ou mau funcionamento. Isso vai além de simples correspondência de regras, pois busca comportamentos que se desviam da linha de base. Técnicas incluem análise estatística, aprendizado de máquina e correlação de eventos.

Por exemplo, um usuário que normalmente faz login durante o dia e, de repente, acessa o sistema às 3h da manhã de um IP estrangeiro é uma anomalia. Da mesma forma, um aumento súbito no tráfego de rede pode indicar um ataque DDoS.

Ferramentas como Elastic ML (Machine Learning) podem detectar anomalias automaticamente em dados de logs. Um exemplo de configuração de um job de ML para detectar picos de tráfego:

PUT _ml/anomaly_detectors/traffic_anomaly
{
  "analysis_config": {
    "bucket_span": "15m",
    "detectors": [
      {
        "function": "high_count",
        "partition_field_name": "source_ip"
      }
    ]
  },
  "data_description": {
    "time_field": "@timestamp"
  }
}

Esse job detecta contagens altas de eventos por IP de origem, o que pode revelar varreduras ou ataques.

Para implementar detecção de anomalias de forma eficaz, é preciso estabelecer uma linha de base do comportamento normal. Isso requer histórico de logs e ajuste contínuo. Além disso, combine anomalias com alertas para que a equipe seja notificada quando algo incomum ocorrer.

Boas Práticas e Observações Finais

  • Use o princípio do menor privilégio para acesso aos logs.
  • Garanta a integridade dos logs (imutabilidade, assinatura digital).
  • Monitore também os logs do próprio sistema de logs (SIEM).
  • Documente todos os processos de gerenciamento de logs.
  • Revise regularmente as regras de alerta e os modelos de anomalia.

Lembre-se: logs são evidências. Trate-os com o mesmo cuidado que trataria qualquer dado sensível. Com centralização, retenção adequada, alertas eficientes e detecção de anomalias, sua organização estará muito mais preparada para enfrentar ameaças.

Referências

Exercícios

  1. Explique por que a centralização de logs é importante para a segurança da informação. Cite pelo menos três benefícios.

    ✓ Resposta: A centralização permite consolidar logs de várias fontes em um único local, facilitando a correlação de eventos, a busca e a análise. Benefícios: visão unificada da segurança, detecção mais rápida de incidentes, conformidade com regulamentações, e redução de custos operacionais.
  2. Quais fatores devem ser considerados ao definir uma política de retenção de logs? Dê um exemplo de período de retenção para logs de autenticação em uma empresa que deve cumprir a LGPD.

    ✓ Resposta: Fatores: requisitos legais e regulatórios, necessidade operacional, custo de armazenamento, tipo de dado. Para LGPD, logs de autenticação podem ser retidos por 6 meses a 1 ano, desde que justificado; o período deve ser definido com base na finalidade e minimização.
  3. Descreva como você criaria um alerta para detectar múltiplas tentativas de login com falha em um curto período. Que ferramenta você usaria e qual seria a regra?

    ✓ Resposta: Usaria um SIEM como Splunk ou Elastic. Regra: alertar se houver mais de 5 falhas de autenticação para o mesmo usuário em 5 minutos. Exemplo em Elastic Watcher: agendar a cada 5 min, consultar logs de autenticação com outcome=failure, e se count > 5, disparar e-mail.
  4. O que é uma anomalia em logs? Dê um exemplo de comportamento que seria considerado anômalo e explique como você poderia detectá-lo.

    ✓ Resposta: Anomalia é um padrão que se desvia do comportamento normal. Exemplo: um usuário acessa o sistema fora do horário de trabalho, vindo de um país diferente. Pode ser detectado por análise estatística do horário e geolocalização, ou por ML.
  5. Cite três boas práticas para garantir a segurança dos logs em si.

    ✓ Resposta: 1) Restringir o acesso aos logs apenas a pessoal autorizado (menor privilégio). 2) Criptografar logs em trânsito e em repouso. 3) Garantir a integridade dos logs, por exemplo, usando assinatura digital ou armazenamento imutável.