要让系统关键访问行为全程可追溯,核心在于将操作主体、动作、对象、时间、结果五要素绑定于不可篡改的同一条链:需明确审计目标(如账号冒用、敏感文件删除、特权滥用),通过auditd固化永久规则(如-w /etc/shadow -p wa -k identity_mod、-a always,exit -f arch=b64 -s execve -c uid!=euid),启用auid保障身份溯源,联动审批id注入执行环节,并将日志实时转发至siem或区块链节点实现防篡改集中存证。

要让系统关键访问行为全程可追溯,核心不是“记多少”,而是“记得准、串得牢、查得快”。关键在于把操作主体、动作、对象、时间、结果这五个要素绑在同一条链上,且不可篡改。下面分三块说清楚怎么做。
明确审计目标与关键对象
先想清楚你最怕什么:是账号被冒用?敏感文件被删?还是特权命令被滥用?不同风险对应不同审计重点:
-
登录与身份验证:必须记录成功/失败的登录事件(Windows用事件ID 4624/4625;Linux通过auditd监控
/var/log/secure或pam_exec模块捕获execve) -
敏感文件访问:如
/etc/passwd、/etc/shadow、/etc/sudoers、数据库配置文件等,规则中加-p wa(写+属性变更)并打唯一标签,例如-k identity_mod -
特权执行行为:监控
sudo、su、ssh、reboot等命令调用,用-a always,exit -F arch=b64 -S execve -C uid!=euid精准识别提权动作 -
关键服务变更:如修改防火墙规则(
setsockopt)、调整系统时间(adjtimex)、重启服务(/sbin/shutdown)等,单独设规则并打标
统一配置并固化审计规则
临时规则(auditctl -w)只用于测试,生产环境必须用永久规则,确保重启不失效:
- 在
/etc/audit/rules.d/下新建规则文件,比如10-critical-access.rules - 每条规则后加
-k关键词,便于后续用ausearch -k xxx快速检索 - 避免通配或高频路径(如
/proc、/sys),防止日志爆炸;对目录用-w,对系统调用用-a always,exit - 写完执行
sudo augenrules --load加载,再用sudo auditctl -l | grep k确认生效
打通链路实现行为闭环追溯
单点日志没用,必须把“谁触发→谁批准→谁执行”串成一条线:
-
用户行为绑定真实身份:Linux启用
auid(审计UID),即使切换用户也能回溯原始登录者,规则中加-F auid!=unset -
审批与执行联动:运维平台或OA系统生成审批单时,同步生成唯一请求ID(如
REQ-20260618-7732),该ID需透传至执行环节(如注入到命令环境变量或API请求头),最终写入审计日志的msg=字段 -
日志集中与防篡改:本地
/var/log/audit/audit.log仅作缓冲,必须实时转发至SIEM或区块链存证节点;Windows安全日志建议启用Event Forwarding并配置证书双向认证 -
验证是否真可追溯:挑一个已知操作(如用某账号改了
/etc/ssh/sshd_config),用ausearch -k sshd_config -i查完整记录,确认含时间、用户、命令、返回码、请求ID(如有)











