implant audit
Configura auditd com baseline STIG-light (~12 rules cobrindo file integrity + privilege escalation + login/logout) + expõe events via CLI + integra como 9º collector no threat-status. Também expõe a trilha de conexões SSH (audit ssh).
Setup
sudo implant audit apply # apt install auditd (se ausente) + write rules + restart
sudo implant audit status # verificaSTIG-light ruleset
Rules em /etc/audit/rules.d/protocolo-implant.rules. Não editar — apply sobrescreve. Para customizar: crie outro arquivo em /etc/audit/rules.d/.
| Key | Watches/Syscalls | Purpose |
|---|---|---|
identity |
/etc/passwd, /etc/shadow, /etc/gshadow | Tamper de credenciais |
privilege |
/etc/sudoers, /etc/sudoers.d/ | Modificação de sudoers |
sshd_config |
/etc/ssh/sshd_config | SSH config tamper |
exec_priv |
execve com euid=0 vindo de user normal | Privilege escalation |
perm_mod |
chmod/chown críticos | Permission manipulation |
logins |
/var/log/wtmp, /var/log/btmp, /var/log/lastlog | Login/logout |
Events query
# Últimos 50 (default)
sudo implant audit events
# Por key
sudo implant audit events --key exec_priv
# Por user
sudo implant audit events --user alice
# Combinado
sudo implant audit events --since 1h --key privilege --user aliceTrilha de conexões SSH
# Últimas 24h (default), até 500 eventos
sudo implant audit ssh
# Janela custom, em JSON
sudo implant audit ssh --since "1 hour ago" --limit 100 -o jsonLê o journal do sshd (SYSLOG_IDENTIFIER=sshd e sshd-session, que é
por onde o OpenSSH 9.x loga): logins Accepted/Failed com origem,
usuário, método, fingerprint da chave (publickey) e invalid_user. Não
depende do auditd. Em JSON devolve
{total, accepted, failed, events[]}.
threat-status integration
implant threat-status ganha seção audit quando applied:
{
"audit": {
"severity": "warn",
"counts_by_key": { "exec_priv": 3, "privilege": 4 },
"window_minutes": 5,
"auditd_running": true
}
}Severity thresholds (configuráveis em /etc/protocolo-implant/audit.yml):
crit: exec_priv > 5 em 5minwarn: privilege > 3 OU identity > 1ok: caso contrário
Comandos
| Comando | Descrição |
|---|---|
service status/start/stop/restart |
Wraps systemctl auditd |
service logs [--lines N] |
journalctl -u auditd |
apply |
Install pkg + write rules (STIG-light) + restart |
revert |
Remove rules + restart |
status |
applied, rules_count, auditd_running, recent_events |
events [--last N] [--since X] [--key K] [--user U] |
Query auditd |
ssh [--since X] [--limit N] |
Trilha de conexões SSH (journal do sshd) |
config show/path |
Config |
Todos com --output json.
Emergency-mode
audit é uma feature opt-in. emergency-mode enable chama audit revert (remove só nossas rules; auditd daemon continua se outros usam).