
Configuração de Melhores Práticas do Auditd
___ ___ __ __
/ | __ ______/ (_) /_____/ /
/ /| |/ / / / __ / / __/ __ /
/ ___ / /_/ / /_/ / / /_/ /_/ /
/_/ |_\__,_/\__,_/_/\__/\__,_/
Configuração de Auditoria (Auditd) de Melhores Práticas
A ideia desta configuração do auditd é fornecer uma linha de base de melhores práticas que
O conjunto simplificado de regras intencionalmente mantém alguma telemetria de alto valor, mas potencialmente de alto volume, especialmente eventos de criação de processos, criação de sockets e falhas de acesso a ficheiros. Ajuste estas secções ao seu ambiente, se necessário.
A configuração atual foca-se nas seguintes áreas de cobertura:
ptrace, memfd_create, bpf, namespaces, io_uring e userfaultfdexecve, execveat, criação de sockets, eliminação de ficheiros e uso de ABI de 32 bitsEste conjunto de regras pretende manter-se agnóstico em relação à lógica de deteção a jusante. Foca-se em recolher telemetria de auditoria amplamente útil que pode então ser analisada de diferentes formas, por exemplo, com ferramentas baseadas em Sigma ou consultas SIEM.
Um projeto de código aberto que pode utilizar estes dados de auditoria é Aurora Linux, um agente leve e personalizável baseado em Sigma para Linux que combina telemetria baseada em eBPF com enriquecimento no espaço do utilizador e correspondência de regras Sigma.
Este conjunto de regras inclui intencionalmente -i para que caminhos opcionais específicos da distribuição
não impeçam o carregamento em sistemas onde alguns binários ou diretórios estão ausentes.
Isso mantém a implementação padrão simples, mas também significa que erros de carregamento de regras são ignorados.
Se deseja uma validação rigorosa antes da implementação, teste uma cópia temporária com a
linha -i removida, por exemplo:
grep -v '^-i$' audit.rules > /tmp/audit.rules.strict
auditctl -R /tmp/audit.rules.strict
O repositório também inclui verificações do GitHub Actions que analisam as regras e validam que uma cópia portátil do CI e uma cópia rigorosa podem ser carregadas no Ubuntu.
Várias regras em audit.rules usam auid>=1000 -F auid!=unset para focar na
atividade do utilizador interativo e excluir sessões de login não definidas.
1000 é o UID_MIN comum em muitas distribuições Linux, mas não é
universal. Se o seu anfitrião usar um UID_MIN diferente, verifique /etc/login.defs
e substitua 1000 em audit.rules antes da implementação:
awk '$1=="UID_MIN" { print $2 }' /etc/login.defs
Em 29 de abril de 2026, a Xint publicou o Copy Fail (CVE-2026-31431), uma
técnica de escalada de privilégios local que abusa da interface de espaço do utilizador de criptografia do kernel
(AF_ALG) juntamente com splice() para corromper ficheiros suportados por cache de página na memória.
Este conjunto de regras inclui um pequeno bloco af_alg para recolher as partes estáveis e de baixo ruído
dessa configuração a partir de sessões de utilizador atribuíveis:
socket(AF_ALG, ...)bind() usando o struct sockaddr_alg de tamanho fixo comumsetsockopt(..., SOL_ALG, ...)Isto é intencionalmente mais genérico do que uma assinatura única para
authencesn(hmac(sha256),cbc(aes)) porque os filtros de syscall de auditoria não conseguem corresponder
argumentos de string. Na prática, o nome do algoritmo reside no registo SOCKADDR
emitido por bind(), pelo que a deteção a jusante recomendada é:
key=af_algSOCKADDR.saddr / SADDR={ saddr_fam=alg ... }salg_type=aead com salg_name contendo authencesn(pid, exe ou auid emitir muitos desses binds num curto intervaloA prova de conceito descrita por Xint também depende de operações repetidas de splice().
Essas syscalls são demasiado ruidosas para o conjunto de regras predefinido em muitos
sistemas, por isso o repositório inclui apenas uma sobreposição splice_user comentada em
audit.rules. Ative-a apenas se splice / vmsplice forem incomuns no seu
ambiente e correlacione-a com atividade recente de af_alg do mesmo
processo ou sessão de utilizador.
A configuração baseia-se nas seguintes fontes e anos de melhorias fundidas no conjunto de regras predefinido:
Regras auditd do Gov.uk https://github.com/gds-operations/puppet-auditd/pull/1
Endurecimento CentOS 7 https://highon.coffee/blog/security-harden-centos-7/#auditd---audit-daemon
Repositório Linux audit https://github.com/linux-audit/audit-userspace/tree/master/rules
Auditoria auditd de alto desempenho para Linux https://linux-audit.com/tuning-auditd-high-performance-linux-auditing/
Copy Fail: 732 Bytes para Root em Todas as Principais Distribuições Linux. https://xint.io/blog/copy-fail-linux-distributions
Interface de espaço do utilizador de criptografia do kernel Linux (AF_ALG) https://docs.kernel.org/crypto/userspace-if.html
Nem todas estas regras foram incluídas.
Para conformidade com PCI DSS, consulte: https://github.com/linux-audit/audit-userspace/blob/master/rules/30-pci-dss-v31.rules
Para conformidade com NISPOM, consulte: https://github.com/linux-audit/audit-userspace/blob/master/rules/30-nispom.rules
O IppSec gravou um vídeo que explica como detetar a exploração da
vulnerabilidade OMIGOD usando auditd. Os conceitos centrais de auditd nesse vídeo ainda são
úteis, mas o conjunto de regras neste repositório foi desde então simplificado
significativamente. Trate o vídeo como um histórico e uma introdução a
ideias de deteção baseadas em auditd, não como documentação linha a linha do audit.rules atual.
Por favor, contribua com as suas alterações como pull requests.