implant threat-status

Subcomando read-only que coleta 8 seções de métricas vivas (9 com o audit aplicado) e calcula severity (ok/warn/crit) por seção. Não duplica logs existentes (fail2ban.log, ufw.log, journald) — só agrega ESTADO VIVO + marca TRANSIÇÕES.

Comandos

Comando Descrição
implant threat-status Snapshot atual + grava JSONL
implant threat-status --no-record Dry-read (sem gravar)
implant threat-status snapshots [--last N] Histórico recente (default 10)
implant threat-status events [--last N] Transition events (default 20)
implant threat-status clear-history Limpa snapshots + events

Seções coletadas

Seção Fonte Severity threshold
conntrack /proc + conntrack tool ≥70% warn, ≥90% crit
tcp_sockets ss -s SYN_RECV ≥1000/≥5000
iptables_drops iptables -L (INPUT + IMPLANT_GEO_IN; implant_ratelimit soma os DROPs do rate-limit, incluindo IMPLANT_RL_DROP) delta ≥100/min, ≥1000/min
fail2ban fail2ban-client bans ≥10/≥100
log_auth journalctl -u ssh failed ≥50/≥500 em 5min
system_health /proc, free, ps load ≥ncpu×2/×4, mem ≥80%/95%
services_status systemctl essentials inactive=crit
hardening_state reusa modules existentes informacional
audit eventos do auditd por chave (só com implant audit aplicado) limiares configuráveis

Storage

  • /var/lib/implant/threat-snapshots.jsonl (max 500 entries)
  • /var/lib/implant/threat-events.jsonl (max 200 entries)
  • Auto-truncate, perm 600, sem rotação por tempo.

Filosofia

Implant é AGREGADOR + EVENT-EMITTER, não logger:

  • Logs detalhados ficam onde já estão (fail2ban.log, journald, etc.)
  • threat-status grava só snapshots (point-in-time) + events (transitions)
  • Footprint < 1.2MB total no disco