监控磁盘挂载与卸载需优先捕获mount(2)和umount2(2)系统调用,辅以监控/bin、/usr/bin、/usr/sbin下mount/umount命令路径,规则写入/etc/audit/rules.d/并加载,日志用ausearch分析可疑行为。
要监控磁盘挂载与卸载的安全事件,核心是捕获内核级的系统调用行为——因为所有手动挂载(mount)和卸载(umount)操作最终都通过 mount(2) 和 umount2(2) 系统调用执行。auditd 正是为此类底层动作设计的,它不依赖命令路径,能覆盖脚本、自定义工具甚至绕过常规命令的恶意调用。
监控 mount 和 umount2 系统调用(最可靠方式)
这是最根本、最不易绕过的方案。只需两条规则,即可记录所有成功挂载/卸载行为:
-a always,exit -F arch=b64 -S mount -F success=1 -k mount_op -a always,exit -F arch=b64 -S umount2 -F success=1 -k umount_op-F success=1 只记录执行成功的操作,避免失败尝试干扰;-k 打标便于后续检索;arch=b64 适配主流 x86_64 系统(若为 32 位,改用 b32)。补充监控常用命令路径(增强兼容性)
某些环境(如容器、精简系统或使用 busybox)可能通过封装调用,或使用非标准路径的 mount/umount。添加以下路径监控可提升覆盖度:
sudo auditctl -w /bin/mount -p x -k mount_cmd sudo auditctl -w /bin/umount -p x -k umount_cmd sudo auditctl -w /usr/bin/mount -p x -k mount_cmd sudo auditctl -w /usr/bin/umount -p x -k umount_cmd sudo auditctl -w /usr/sbin/mount -p x -k mount_cmd sudo auditctl -w /usr/sbin/umount -p x -k umount_cmd-p x 表示“执行”权限触发,不是读或写,精准对应命令运行动作。让规则永久生效(重启不丢失)
临时规则会随 auditd 重启失效。需写入 /etc/audit/rules.d/ 目录下的独立规则文件:
echo '-a always,exit -F arch=b64 -S mount -F success=1 -k mount_op' | sudo tee /etc/audit/rules.d/mount.rules echo '-a always,exit -F arch=b64 -S umount2 -F success=1 -k umount_op' | sudo tee -a /etc/audit/rules.d/mount.rules sudo augenrules --load
执行后可通过 sudo auditctl -l | grep mount 验证规则是否加载成功。
快速定位可疑挂载事件
日志存于 /var/log/audit/audit.log,用 ausearch 提取关键信息:
sudo ausearch -m mount -ts today -i -k mount_op sudo ausearch -m mount -i | grep -E "(dev/|mnt/|media/)" sudo ausearch -m mount -i | awk '/uid=|comm=/{print}'uid=1000(普通用户)挂载 /dev/sdb1 到 /media/usb,或 comm=python、comm=sh 在非运维时段触发挂载。识别高风险行为的线索
sudo ausearch -m mount -i | grep "bind" /mnt/external、/mnt/usb、/media/disk 等关键词,需结合工单或资产清单核验合法性 noexec、nosuid 通常属正常加固;但若缺失这些限制,且挂载到可写目录,则风险升高 不复杂但容易忽略。