
Configuración de Auditd según las mejores prácticas
___ ___ __ __
/ | __ ______/ (_) /_____/ /
/ /| |/ / / / __ / / __/ __ /
/ ___ / /_/ / /_/ / / /_/ /_/ /
/_/ |_\__,_/\__,_/_/\__/\__,_/
Configuración de Auditd de Buenas Prácticas
La idea de esta configuración de auditd es proporcionar una línea base de buenas prácticas que
El conjunto de reglas simplificado incluye intencionalmente algo de telemetría de alto valor pero potencialmente de alto volumen, especialmente eventos de creación de procesos, creación de sockets y fallos de acceso a archivos. Ajuste estas secciones a su entorno si es necesario.
La configuración actual se centra en las siguientes áreas de cobertura:
ptrace, memfd_create, bpf, espacios de nombres, io_uring y userfaultfdexecve, execveat, creación de sockets, eliminación de archivos y uso de ABI de 32 bitsEste conjunto de reglas pretende mantenerse agnóstico respecto a la lógica de detección descendente. Se centra en recopilar telemetría de auditoría ampliamente útil que luego pueda analizarse de diferentes maneras, por ejemplo, con herramientas basadas en Sigma o consultas SIEM.
Un proyecto de código abierto que puede hacer uso de estos datos de auditoría es Aurora Linux, un agente ligero y personalizable basado en Sigma para Linux que combina telemetría basada en eBPF con enriquecimiento en espacio de usuario y coincidencia de reglas Sigma.
Este conjunto de reglas incluye intencionalmente -i para que las rutas opcionales específicas de la distribución
no impidan la carga en sistemas donde algunos binarios o directorios están ausentes.
Esto simplifica la implementación por defecto, pero también significa que los errores de carga de reglas se ignoran.
Si desea una validación estricta previa a la implementación, pruebe una copia temporal con la
línea -i eliminada, por ejemplo:
grep -v '^-i$' audit.rules > /tmp/audit.rules.strict
auditctl -R /tmp/audit.rules.strict
El repositorio también incluye comprobaciones de GitHub Actions que verifican las reglas y validan que una copia portable de CI y una copia estricta puedan cargarse en Ubuntu.
Varias reglas en audit.rules usan auid>=1000 -F auid!=unset para enfocarse en
actividad de usuarios interactivos y excluir sesiones de inicio de sesión no establecidas.
1000 es el UID_MIN común en muchas distribuciones de Linux, pero no es
universal. Si su host usa un UID_MIN diferente, revise /etc/login.defs
y reemplace 1000 en audit.rules antes de la implementación:
awk '$1=="UID_MIN" { print $2 }' /etc/login.defs
El 29 de abril de 2026, Xint publicó Copy Fail (CVE-2026-31431), una técnica
de escalada de privilegios local que abusa de la interfaz de espacio de usuario del cifrado del kernel (AF_ALG)
junto con splice() para corromper archivos respaldados por caché de página en memoria.
Este conjunto de reglas incluye un pequeño bloque af_alg para recopilar las partes estables y de bajo ruido
de esa configuración desde sesiones de usuario atribuibles:
socket(AF_ALG, ...)bind() usando el struct sockaddr_alg de tamaño fijo comúnsetsockopt(..., SOL_ALG, ...)Esto es intencionalmente más genérico que una firma única para
authencesn(hmac(sha256),cbc(aes)) porque los filtros de llamadas al sistema de auditoría no pueden coincidir con argumentos de cadena.
En la práctica, el nombre del algoritmo reside en el registro SOCKADDR emitido por bind(), por lo que la detección
descendente recomendada es:
key=af_algSOCKADDR.saddr / SADDR={ saddr_fam=alg ... }salg_type=aead cuando salg_name contenga authencesn(pid, exe o auid emita muchos de estos bind en una ventana cortaLa prueba de concepto descrita por Xint también se basa en operaciones repetidas de splice().
Esas llamadas al sistema son demasiado ruidosas para el conjunto de reglas predeterminado en muchos sistemas, por lo que
el repositorio solo incluye una superposición splice_user comentada en audit.rules. Actívela solo si
splice / vmsplice son poco comunes en su entorno y correlaciónela con actividad reciente de af_alg del mismo proceso
o sesión de usuario.
La configuración se basa en las siguientes fuentes y años de mejoras fusionadas al conjunto de reglas predeterminado:
Reglas auditd de Gov.uk https://github.com/gds-operations/puppet-auditd/pull/1
Endurecimiento de CentOS 7 https://highon.coffee/blog/security-harden-centos-7/#auditd---audit-daemon
Repositorio de Linux audit https://github.com/linux-audit/audit-userspace/tree/master/rules
Auditoría Linux de alto rendimiento con auditd https://linux-audit.com/tuning-auditd-high-performance-linux-auditing/
Copy Fail: 732 Bytes to Root on Every Major Linux Distribution. https://xint.io/blog/copy-fail-linux-distributions
Interfaz de espacio de usuario del cifrado del kernel de Linux (AF_ALG) https://docs.kernel.org/crypto/userspace-if.html
No todas estas reglas han sido incluidas.
Para cumplimiento PCI DSS consulte: https://github.com/linux-audit/audit-userspace/blob/master/rules/30-pci-dss-v31.rules
Para cumplimiento NISPOM consulte: https://github.com/linux-audit/audit-userspace/blob/master/rules/30-nispom.rules
IppSec grabó un video que explica cómo detectar la explotación de la
vulnerabilidad OMIGOD usando auditd. Los conceptos centrales de auditd en ese video siguen siendo
útiles, pero el conjunto de reglas en este repositorio se ha simplificado
significativamente. Considere el video como un antecedente histórico y una introducción a las ideas de detección
basadas en auditd, no como documentación línea por línea del audit.rules actual.
https://www.youtube.com/watch?v=lc1i9h1GyMA
Por favor, contribuya con sus cambios como solicitudes de extracción (pull requests).