auditd通过拦截mount和umount2系统调用实现对挂载行为的内核级监控,需启用服务、配置永久规则(-s mount/-s umount2)、加载规则后用ausearch按关键字mount_activity检索日志,结合设备路径、用户、时间及进程上下文综合研判异常。

直接监控 mount 行为需要捕获内核级系统调用,auditd 正是为此类底层操作设计的。它不依赖 shell 命令或日志轮转,而是通过拦截 mount 和 umount 对应的系统调用(mount、umount2),确保即使攻击者绕过命令行工具也能留下痕迹。
确认 auditd 已启用并运行
先确保服务处于活动状态:
- 检查状态:
sudo systemctl status auditd,若未运行则执行sudo systemctl enable --now auditd - 验证内核审计功能可用:
sudo auditctl -s | grep enabled,输出中enabled应为1
添加针对挂载行为的永久审计规则
临时规则在重启后失效,应写入规则文件实现持久化:
- 编辑规则文件:
sudo nano /etc/audit/rules.d/mount.rules - 写入以下两行(适配 x86_64 架构):
-a always,exit -F arch=b64 -S umount2 -F success=1 -k mount_activity
说明:-S mount 和 -S umount2 是实际被调用的系统调用名;-F success=1 只记录成功执行的挂载,避免失败尝试刷屏;-k mount_activity 统一打标,便于后续检索。
- 加载新规则:
sudo augenrules --load(自动合并所有.rules文件并重启 auditd) - 验证规则已生效:
sudo auditctl -l | grep mount
快速检索和识别可疑挂载事件
挂载行为会在日志中生成多条关联记录(SYSCALL、PATH、CWD 等),用 ausearch 可精准提取:
- 查今日所有成功挂载:
sudo ausearch -m mount -ts today -i -k mount_activity - 查所有挂载及对应设备路径:
sudo ausearch -m mount -i | awk '/dev\/[sh]d|/mnt|/media/ {print $0; getline; print $0}' - 重点筛查非常规设备:比如
/dev/sdb1、/dev/nvme0n1p1或挂载点含/media/usb、/mnt/external的记录
结合上下文判断是否非法接入
单看 mount 调用不够,需关联用户、时间、进程和来源:
- 查谁执行了挂载:
sudo ausearch -m mount -ts recent -i | grep -E "(uid=|comm=)" - 检查是否由非交互式进程触发(如脚本、定时任务):
comm=systemd或comm=bash后跟异常参数 - 对比正常运维时间:若凌晨 3 点出现
mount /dev/sdc1 /mnt/usb,且无工单记录,即属高风险 - 注意伪装行为:攻击者可能用
mount -o bind隐藏真实设备,此时需查ausearch -m mount | grep "bind"











