linux权限审计核心是捕获真实提权动作:1.监控euid≠uid的execve调用;2.锁定sudo/su等特权命令执行;3.审计sudoers/shadow等关键文件写入与属性变更;4.规则需持久化并验证auid溯源。

Linux 权限审计的核心不是看谁在 sudoers 里,而是盯住真实发生的提权动作——比如有效 UID 变了、特权命令被执行、关键配置被改写。auditd 能深入系统调用层,不依赖命令名或 shell 解析,只记录内核确认过的操作。
捕获所有提权执行行为
只要进程的 euid 和 uid 不一致,就说明发生了身份切换。这条规则覆盖 sudo、su、ssh -l root、甚至自定义提权脚本:
- 64 位系统加规则:-a always,exit -F arch=b64 -S execve -F euid!=uid -k priv_escalation
- 32 位兼容补一条:-a always,exit -F arch=b32 -S execve -F euid!=uid -k priv_escalation
- 规则生效后,日志里会明确记录 auid(原始登录用户)、uid(当前用户)、euid(有效用户)、exe(执行路径)和 cmdline(完整命令行)
锁定特权命令二进制文件调用
不靠解析参数,直接监控 /usr/bin/sudo、/bin/su 等文件被“执行”的瞬间,防绕过更可靠:
- -w /usr/bin/sudo -p x -k sudo_exec
- -w /bin/su -p x -k su_exec
- -w /usr/bin/passwd -p x -k passwd_exec
- -p x 表示只触发“执行权限”,不响应读或写,精准对应提权意图
监控敏感文件的真实写入与属性变更
攻击者提权后常改 /etc/sudoers、/etc/shadow 或新增账号,必须捕获物理层面的修改:
- /etc/sudoers:-w /etc/sudoers -p wa -k sudoers_change
- /etc/shadow:-w /etc/shadow -p wa -k shadow_modification
- 新建用户:-a always,exit -F arch=b64 -S useradd,groupadd -k account_mgmt
- 注意:用 ls -i 确认真实 inode 路径,避免软链接导致规则失效
确保规则持久化且日志可溯源
临时规则重启即丢,必须走标准加载流程,并验证 auid 字段完整:
- 把上述规则分别存为 /etc/audit/rules.d/10-privilege.rules 和 /etc/audit/rules.d/20-sensitive-files.rules
- RHEL/CentOS 执行:sudo augenrules --load;Debian/Ubuntu 执行:sudo systemctl restart auditd
- 检查是否生效:sudo auditctl -l | grep priv_escalation
- 手动触发 su 或 sudo 后,用 ausearch -k priv_escalation -i | tail -3 查看原始事件











