___ ___ __ __
/ | __ ______/ (_) /_____/ /
/ /| |/ / / / __ / / __/ __ /
/ ___ / /_/ / /_/ / / /_/ /_/ /
/_/ |_\__,_/\__,_/_/\__/\__,_/
最佳实践 Auditd 配置
本 auditd 配置的核心理念是提供一个最佳实践基线,该基线:
简化后的规则集有意识地保留了一些高价值但可能高流量的遥测,特别是进程创建、套接字创建和文件访问失败事件。如有需要,可根据您的环境调整这些部分。
当前配置侧重于以下覆盖领域:
ptrace、memfd_create、bpf、命名空间、io_uring 和 userfaultfdexecve、execveat、套接字创建、文件删除和 32 位 ABI 使用此规则集旨在与下游检测逻辑保持无关性。它专注于收集广泛有用的审计遥测数据,这些数据可以通过不同方式分析,例如使用基于 Sigma 的工具或 SIEM 查询。
一个可以利用这些审计数据的开源项目是 Aurora Linux,这是一个轻量级、可定制的基于 Sigma 的 Linux 代理,它结合了 eBPF 遥测、用户空间丰富化和 Sigma 规则匹配。
此规则集特意包含了 -i 参数,以便在缺少某些二进制文件或目录的系统上,可选的发行版特定路径不会中止加载。这简化了默认部署,但同时也意味着规则加载错误会被忽略。
如果您希望进行严格的部署前验证,请测试一个移除了 -i 行的临时副本,例如:
grep -v '^-i$' audit.rules > /tmp/audit.rules.strict
auditctl -R /tmp/audit.rules.strict
该仓库还包含了 GitHub Actions 检查,用于 lint 规则并验证一个可移植的 CI 副本和一个严格副本都能在 Ubuntu 上加载。
audit.rules 中的几条规则使用了 auid>=1000 -F auid!=unset 来关注交互式用户活动,并排除未设置的登录会话。
1000 是许多 Linux 发行版上常用的 UID_MIN,但并非普遍适用。如果您的宿主机使用了不同的 UID_MIN,请检查 /etc/login.defs,并在部署前替换 audit.rules 中的 1000:
awk '$1=="UID_MIN" { print $2 }' /etc/login.defs
2026年4月29日,Xint 发布了 Copy Fail (CVE-2026-31431),这是一种利用内核加密用户空间接口 (AF_ALG) 结合 splice() 来破坏内存中页缓存后备文件的本地权限提升技术。
本规则集包含了一个小型的 af_alg 代码块,用于从可归属的用户会话中收集该设置中稳定、低噪声的部分:
socket(AF_ALG, ...)struct sockaddr_alg 的 bind()setsockopt(..., SOL_ALG, ...)这特意设计得比一次性签名 authencesn(hmac(sha256),cbc(aes)) 更通用,因为审计系统调用过滤器无法匹配字符串参数。实际操作中,算法名称存储在由 bind() 发出的 SOCKADDR 记录中,因此推荐的下游检测方式是:
key=af_algSOCKADDR.saddr / SADDR={ saddr_fam=alg ... }salg_type=aead 且 salg_name 包含 authencesn(pid、exe 或 auid 在短时间内发出许多此类 bind 时,提高优先级Xint 描述的概念验证还依赖于重复的 splice() 操作。在许多系统上,这些系统调用对于默认规则集来说过于嘈杂,因此该仓库仅在 audit.rules 中提供了一个被注释掉的 splice_user 覆盖层。仅当 splice / vmsplice 在您的环境中不常见时,才启用它,并将其与同一进程或用户会话中的最近的 af_alg 活动进行关联。
该配置基于以下来源以及多年来对默认规则集的改进合并:
Gov.uk auditd 规则 https://github.com/gds-operations/puppet-auditd/pull/1
CentOS 7 强化 https://highon.coffee/blog/security-harden-centos-7/#auditd---audit-daemon
Linux audit 仓库 https://github.com/linux-audit/audit-userspace/tree/master/rules
Auditd 高性能 Linux 审计 https://linux-audit.com/tuning-auditd-high-performance-linux-auditing/
Copy Fail: 732 字节即可在每一个主流 Linux 发行版上获得 root 权限。 https://xint.io/blog/copy-fail-linux-distributions
Linux 内核加密用户空间接口 (AF_ALG) https://docs.kernel.org/crypto/userspace-if.html
并非所有这些规则都已包含在内。
若要满足 PCI DSS 合规性,请参阅: https://github.com/linux-audit/audit-userspace/blob/master/rules/30-pci-dss-v31.rules
若要满足 NISPOM 合规性,请参阅: https://github.com/linux-audit/audit-userspace/blob/master/rules/30-nispom.rules
IppSec 录制了一段视频,解释了如何使用 auditd 检测 OMIGOD 漏洞的利用。该视频中的核心 auditd 概念仍然有用,但本仓库中的规则集自那时起已大幅简化。请将该视频视为历史背景和基于 auditd 的检测思路的介绍,而非当前 audit.rules 的逐行文档。
https://www.youtube.com/watch?v=lc1i9h1GyMA
请通过拉取请求提交您的更改。