排查特权用户修改系统配置需锁定auid溯源、还原execve命令链、关联文件变更事件,并确保audit规则覆盖wa权限及提权行为。

排查特权用户修改系统配置的审计轨迹,核心是锁定真实操作者、还原命令执行链、关联文件变更上下文。auditd 提供的原始事件必须通过结构化查询才能拼出完整行为路径,不能只看单条日志。
用 auid 锁定原始登录用户,避免被 sudo/su 混淆
auid(audit UID)是登录会话建立时分配的唯一 ID,不会随 su 或 sudo 切换而改变,是溯源“谁发起操作”的唯一可靠字段。
- 查目标用户的 auid:运行 id -u username 获取 UID,再用 ausearch --loginuid $(id -u username) --start today | head -5 确认其 auid 值
- 所有后续查询都应带 -ui
,例如 sudo ausearch -m execve -ui 1001 --start today - 若 auid 显示为 4294967295,说明 PAM 未正确加载 pam_loginuid.so,需检查 /etc/pam.d/sshd 和 /etc/pam.d/login 是否含 session required pam_loginuid.so
提取完整命令执行链,包括参数和调用路径
execve 系统调用是进程启动的唯一入口,抓它就能还原真实命令行,包括脚本内嵌调用或绕过 shell 的执行方式。
- 查某用户全部命令: sudo ausearch -m execve -ui 1001 --raw | aureport -f -i
- 还原带参数的完整命令:用 ausearch -m execve -ui 1001 --start today --raw 输出后,配合 awk + sed 提取 comm 和 args 字段
- 重点过滤高危动作:如 grep -E "(passwd|chpasswd|usermod.*-p|vipw|visudo|chmod|chown)"
关联敏感文件变更与对应命令
单看命令或单看文件修改都不够,必须把两者在时间、进程、会话维度上对齐,才能确认是否为同一操作。
- 查某用户对 /etc/shadow 的所有访问:sudo ausearch -ui 1001 -f /etc/shadow --raw | aureport -f -i
- 合并命令与文件事件:sudo ausearch -ui 1001 -m execve,file -ts today --raw | aureport -f -i
- 确认是否为密码修改:重点看 exe="/usr/bin/passwd" 或 comm="usermod",且 success=yes,同时有 name="/etc/shadow" 的 write 事件
验证规则是否覆盖关键操作类型
常见漏报源于规则缺失或权限标记不全。特权配置修改常分两步:先改属性(chmod/chown),再写内容(echo/vim)。只监控 -p w 会错过第一步。
- 必须用 -p wa 监控 /etc/shadow、/etc/sudoers 等文件,确保捕获写入和属性变更
- 额外加一条规则监控提权行为:-a always,exit -F arch=b64 -S execve -F euid!=uid -k privilege_escalation,用于识别 sudo/su 调用
- 验证规则已加载:sudo auditctl -l | grep -E "(shadow|sudoers|privilege)",应输出完整规则行











