排查敏感文件篡改应优先用ausearch -k标签精准检索并加-i可读化,而非翻日志;需确认审计规则已加载(-p wa)、-k一致、永久生效;关键字段包括comm=、exe=、auid=、name=、success=;辅以aureport聚合分析。

排查敏感文件被篡改,关键不是翻日志,而是用 ausearch 精准命中事件,并靠 -k 标签 + -i 可读化 还原真实操作链。audit.log 本身是二进制格式,不加 -i 就只看到一堆数字 ID,等于没查。
先确认审计规则是否真在生效
篡改记录的前提是规则已加载并监控到目标行为:
- 检查规则是否存在:运行 sudo auditctl -l | grep /etc/shadow(替换为你关心的路径),看是否有带 -p wa 的条目
- 确认关键字(-k)是否一致:比如规则里写的是 -k shadow_mod,后续检索就必须用 ausearch -k shadow_mod,不能拼错或漏掉下划线
- 验证规则是否永久:临时规则(auditctl -w)重启后就消失;生产环境必须写入 /etc/audit/rules.d/shadow.rules 并执行 sudo augenrules --load
用 ausearch 快速定位篡改事件
别用 -f /etc/shadow 全量扫描——慢、不准、易受软链接干扰;优先用 -k 关联规则标签:
Linux 安全审计工具,检查 SSH 配置、开放/监听端口、防火墙规则(ufw/iptables/nftables)、失败登录尝试、sudoers 权限...
- 查所有标记为修改 shadow 的操作:sudo ausearch -k shadow_mod -i
- 限定时间范围避免噪音:sudo ausearch -k shadow_mod --start yesterday -te now -i
- 只看失败的写入(如权限拒绝):sudo ausearch -k shadow_mod -m SYSCALL -sc write -sv no -i
- 结合进程名缩小范围:sudo ausearch -k shadow_mod -m SYSCALL -c "usermod" -i
重点看字段,还原完整操作上下文
一条有效记录至少包含五个关键字段,缺一不可:
- comm=:触发命令名(如 vim、chown),若显示 (unknown),说明进程已退出,需看 exe= 和 ppid= 向上追溯
- exe=:实际执行文件路径(如 /usr/bin/vim.basic),比 comm 更可靠
- auid=:原始登录用户 ID,能识别 sudo 切换前是谁发起的操作,比 uid= 更防伪装
- name=:被操作的文件路径(如 /etc/shadow),注意它和规则中的 -w 路径必须一致
- success=:yes/no 直接表明是否成功,no 往往对应攻击者试探或提权失败的关键线索
辅助分析:用 aureport 聚合高频行为
单条记录只能看一次操作,批量分析要用 aureport:
- 统计哪些用户频繁修改敏感文件:sudo ausearch -k shadow_mod -i | aureport -u -i
- 列出所有涉及的命令和调用次数:sudo ausearch -k shadow_mod -i | aureport -f -i
- 按时间排序查看操作序列:sudo ausearch -k shadow_mod -i | aureport -ts today -i










