auditd 通过监控 /usr/bin/ 目录的写入与元数据变更事件(如 write、truncate、rename),实时捕获文件内容篡改行为,从而间接实现对 md5 变动的高可靠性检测;需配置递归规则 -w /usr/bin/ -p wa -k usr_bin_write,并结合 ausearch 和 aureport 分析关键 syscall,再联动 sha256 基线校验形成完整性保护闭环。

Auditd 本身不直接计算或比对文件的 MD5 值,但它可以精确监控 /usr/bin 下可执行文件的**属性变更、执行行为和内容修改事件**(如 write、truncate、rename、unlink 等),并记录时间、进程、用户等上下文。若需检测“MD5 变动”,本质是检测文件内容是否被篡改,而 auditd 的核心能力正是捕获这类底层写入操作——这是比定期轮询 MD5 更实时、更可靠、更难绕过的方案。
1. 配置 auditd 监控 /usr/bin 下所有可执行文件的写入与元数据变更
由于 /usr/bin 文件数量多且常随系统更新变动,不建议逐个添加规则。应使用 目录递归监控 + 精确事件过滤:
- 编辑规则文件:
sudo nano /etc/audit/rules.d/usr-bin.rules - 添加以下规则(启用 64 位系统兼容):
-w /usr/bin/ -p wa -k usr_bin_write
其中:
•-w表示监控路径(auditd 自动递归监控子目录内新建文件)
•-p wa表示监控 write(覆盖/截断)、attribute change(如 chmod/chown,可能用于隐藏恶意行为)
•-k usr_bin_write是自定义键名,便于后续筛选日志 - 重载规则:
sudo augenrules --load或sudo systemctl restart auditd
2. 过滤并确认关键事件类型(哪些行为真正代表“MD5 可能已变”)
不是所有触发都意味内容篡改。重点关注以下 type=SYSCALL 日志中的 syscall 和 comm 字段:
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
-
syscall=257(openat)+omode=W或omode=1002:以写模式打开文件(常见于覆盖写入) -
syscall=4(write)+arch=c000003e(x86_64):实际写入数据(配合 openat 可确认内容修改) -
syscall=76(truncate)或syscall=77(ftruncate):清空或缩容文件(必然改变 MD5) -
syscall=268(renameat2):重命名替换(如用恶意文件 rename 覆盖原命令) - ⚠️ 注意:
chmod、chown(syscall=90/92)虽触发-p wa,但不改内容,MD5 不变——需结合上下文判断是否可疑
3. 实时查看与提取高价值审计日志
使用 ausearch 按 key 快速定位,并用 aureport 结构化输出:
- 查看最近所有 /usr/bin 写入事件:
sudo ausearch -k usr_bin_write --start recent - 只显示执行写操作的进程名、UID、文件路径:
sudo aureport -f -i --key usr_bin_write | grep "name=/usr/bin/" - 导出完整原始事件(供进一步分析):
sudo ausearch -k usr_bin_write --raw | aureport -f -i --input - - 配合
grep -E "(write|truncate|rename)"过滤高风险 syscall
4. 补充建议:与完整性校验形成闭环(非 auditd 原生,但强烈推荐)
auditd 告诉你“谁在什么时候改了什么”,但不告诉你“改前改后 MD5 是多少”。要真正验证变动,需外部工具协同:
- 首次部署后,用
sha256sum /usr/bin/* > /var/log/usr-bin-hashes.init(SHA256 比 MD5 更安全)生成基线 - 将 auditd 检测到的变更文件路径(如
name="/usr/bin/ls")自动提取,调用sha256sum /usr/bin/ls对比基线 - 可用简单脚本实现联动:当
ausearch -k usr_bin_write --start today | grep "name="有输出时,触发校验并告警 - 生产环境建议用
AIDE或Samhain等专用 HIDS 工具,它们内置文件哈希监控与 auditd 日志集成能力
auditd 是 Linux 审计基石,它不替代哈希校验,但提供了不可抵赖的操作证据链。监控 /usr/bin 的写行为,等于守住了系统命令可信入口的第一道门——只要配置得当,99% 的恶意替换、后门植入、提权利用都会暴露在 audit 日志中。










