auditd规则定制需围绕“谁、何时、对何资源、做何操作”构建可追溯证据链,聚焦高价值行为,满足等保2.0等合规要求,遵循可定位、不可绕过、低干扰原则,并通过验证与运营确保实效。

auditd 规则定制不是堆砌监控项,而是围绕“谁、在何时、对什么资源、做了什么操作”构建可追溯、可验证、可合规的审计证据链。关键在于聚焦高价值行为,避开日志泛滥陷阱,同时满足等保2.0、PCI-DSS、GDPR等主流合规框架对身份鉴别、访问控制、安全审计的刚性要求。
核心规则设计原则
规则必须具备三个特征:可定位(含明确用户ID、时间戳、进程路径)、不可绕过(监控内核级系统调用而非应用日志)、低干扰(不记录高频无意义事件)。例如,监控 /etc/shadow 的写入比监控所有 open() 系统调用更有效;记录 execve 调用时带上 -F euid!=uid 条件,才能精准捕获提权行为,而不是淹没在普通命令执行日志中。
行业合规模板(可直接部署)
以下规则已按等保2.0三级“安全审计”条款(如8.1.4.3、8.1.4.4)和PCI-DSS 10.2条目校验,存为 /etc/audit/rules.d/50-compliance.rules 后执行 sudo augenrules --load 即可生效:
-
身份鉴别审计:监控所有认证相关文件变更与登录行为
-w /var/log/secure -p wa -k auth_log
-w /var/log/lastlog -p wa -k lastlog_update
-w /var/log/btmp -p wa -k failed_login -
访问控制审计:捕获权限变更与越权尝试
-a always,exit -F arch=b64 -S execve -F euid!=uid -k privilege_escalation
-w /etc/sudoers -p wa -k sudoers_modify
-w /etc/passwd -p w -F uid!=0 -k passwd_write -
重要数据保护:锁定敏感配置与业务数据路径
-w /etc/ssh/sshd_config -p wa -k sshd_config_change
-w /data/ -p rwxa -k business_data_access(请将 /data/ 替换为实际业务目录)
-w /etc/hosts -p wa -k hosts_spoofing
规则验证与持续运营
加载后必须验证是否真正捕获目标事件,不能只看规则是否列在 auditctl -l 中:
- 触发一次测试行为,例如:sudo touch /etc/testflag
- 立即查询:ausearch -k testflag -i | tail -2,确认输出含 auid(原始UID)、uid(当前UID)、exe(执行程序)、cwd(工作目录)
- 定期导出统计报告:aureport -m -ts today --key sshd_config_change -i,用于内部审计留痕
避免常见失效陷阱
很多规则看似正确却查不到日志,问题通常出在三处:
- 路径不存在或拼写错误:auditd 不会报错,但规则自动失效。执行前先 ls -l /path/to/monitored
- 架构标识缺失:64位系统必须加 -F arch=b64,否则 execve 类规则不匹配
- 权限标记不全:监控文件属性变更(如 chmod)必须包含 a(attribute),仅写 -p w 会漏掉 chown/chmod 操作











