Skip to content

ADR-007 — Security stack avançada deferida

Status

Vigente — 2026-05-01.

Contexto

Discussões com Gemini levantaram várias ferramentas de segurança modernas:

  • CrowdSec (sucessor moderno do Fail2Ban com inteligência coletiva)
  • Suricata (IDS/IPS por assinaturas)
  • Wazuh (SIEM/EDR completo)
  • Octelium (ZTNA/PAM)
  • Headscale (Tailscale OSS)

Cada uma é tecnicamente boa, mas a soma vira stack inviável pra time de 1-3 admins (já com 11+ peças no pipeline). Codex review confirmou que o MVP que falta não é security stack moderna — é secrets management, certs, CI/CD de IaC.

Decisão

Security stack avançada deferida. MVP de segurança usa componentes simples e bem-conhecidos:

Tier 0 — Higiene básica (MVP)

ComponenteCobertura
VyOS firewall rulesDefault-deny inbound, allow explicit por serviço
SSH hardeningKey-only auth, PermitRootLogin no, fail2ban no SSH
Cloudflare proxyRate limiting básico, WAF gratuito, DDoS protection nos hostnames públicos
TLS em tudo públicoLet’s Encrypt via DNS-01, sem HTTP plain — depende de ADR-006 e cert-manager
Secrets management (ADR-006)SOPS + age, evita leak de credenciais

Tier 1 — Após MVP de plataforma

ComponenteCobertura
Cilium NetworkPolicy default-denyMicrosegmentação intra-K8s
Authentik (IdP) + LDAP OutpostSSO unificado, MFA, RBAC por grupos
Audit log K8s → OpenObserveTrilha de auditoria de mudanças no cluster

Tier 2 — Avaliar com critérios objetivos

ComponenteCritério de ativação
CrowdSec(a) >100 IPs únicos/mês fazendo brute-force OU (b) serviço público alto valor com tráfego significativo
Suricata IDS/IPSAtaque sofisticado detectado por assinatura específica
Wazuh SIEM/EDRCompliance acadêmico formal exigir audit trail granular
Octelium / TeleportAudit trail de acesso a DB/SSH virar requisito formal OU >10 pesquisadores acessando infra com frequência
Headscale>5 nodes externos OU pesquisadores acessando K3s da casa

Alternativas rejeitadas (pra MVP)

  • Adotar CrowdSec já: bom mas mais um componente; fail2ban + Cloudflare cobrem 70% pelo MVP
  • Adotar Octelium já: maturidade baixa (projeto 2023-2024), substitui SSH+Authentik LDAP que nem temos ainda
  • Adotar Wazuh: pesado demais pra time pequeno; agente em cada nó + ElasticSearch backend
  • Adotar Suricata: requer tuning constante de rules pra evitar false positives

Consequências

Positivas:

  • Stack operacional mais leve, MVP entregável em prazo realista
  • Componentes do Tier 0 são bem-conhecidos e documentados
  • Foco do tempo de SRE em fundamentos (secrets, certs, CI) em vez de proteção exótica
  • Clareza sobre quando cada Tier 2 entra (critérios objetivos, não “elegância”)

Negativas:

  • Sem inteligência coletiva (CrowdSec) — perde-se proteção contra bots já bloqueados em outras orgs
  • Sem audit L7 detalhado (Octelium) — auditoria depende de logs fragmentados
  • Sem IDS/IPS por assinatura — exploits zero-day passam pelo VyOS
  • Sem mesh administrativa (Headscale) — adicionar admin remoto exige config manual

Critério de revisão

Reabrir Tier 2 quando:

  1. Métricas dos logs mostrarem padrões que justifiquem (ex: VyOS log mostra 200 IPs únicos/mês fazendo SSH brute-force → CrowdSec faz sentido)
  2. Compliance institucional Unesp exigir formalmente algo que MVP não cobre
  3. Time aumentar pra 4+ admins (alguém pode ser dono de security)
  4. Incidente real acontecer e MVP for insuficiente pra investigar/conter

Notas operacionais

  • Cada release de aplicação nova deve documentar superfície de ataque adicionada
  • Logs do VyOS e SSH devem ir pro OpenObserve (Fase 8) — sem isso, métricas pra critério de revisão não existem
  • Default-deny em Cilium NetworkPolicy entra com Cilium (Fase 5), não antes