要通过auditd记录所有mount操作以排查非法移动存储设备,需配置规则监控mount和umount2系统调用,添加-k mount_op标签,结合dev=字段与lsblk反查设备类型,并启用enriched日志格式捕获uid、comm、exe、cmdline等上下文。

要通过 auditd 记录所有 mount 操作,从而排查非法移动存储设备(如U盘、移动硬盘)导致的数据外传,核心是监控系统调用层面的挂载行为,尤其是对可移动块设备(/dev/sd*、/dev/nvme*n1 等)的 mount 和 umount 调用,并关联进程上下文(如执行用户、命令行参数、可执行文件路径)。
启用 auditd 并配置 mount 相关系统调用规则
Linux 内核通过 audit 子系统捕获系统调用,mount(2) 和 umount2(2) 是关键入口。需添加规则监听这些调用:
- 编辑 /etc/audit/rules.d/10-mount.rules(推荐独立规则文件),加入以下两行:
-a always,exit -F arch=b64 -S mount -k mount_op -a always,exit -F arch=b64 -S umount2 -k mount_op
说明:
- -a always,exit 表示在系统调用退出时记录;
- -F arch=b64 指定 64 位架构(x86_64,若为 32 位系统用 b32);
- -S mount / -S umount2 匹配对应系统调用;
- -k mount_op 为日志打上关键词标签,便于后续检索。
加载规则:sudo augenrules --load 或 sudo service auditd restart
增强识别:过滤并标记常见移动存储设备挂载点
仅记录 mount 系统调用还不够——需快速区分是否为移动设备挂载。可通过以下方式补充:
- 监控
/proc/mounts或mount命令输出变化(作为辅助手段,非 auditd 原生能力); - 在 audit 规则中增加设备路径过滤(有限但实用):
-a always,exit -F arch=b64 -S mount -F path=/dev/sd* -k usb_mount
注意:-F path=在mount系统调用中实际匹配的是源设备路径(source),但内核 audit 不支持通配符路径匹配(/dev/sd*无效)。更可靠的方式是事后用aureport结合dev字段筛选; - 优先依赖
ausearch -m mount -i -ts recent查看原始事件,并检查dev=字段值(如dev="08:01"对应/dev/sda1),再用lsblk -o NAME,TRAN,MODEL反查设备类型。
关联上下文:捕获执行用户、命令行与可执行路径
单条 mount 日志默认只含系统调用参数,需确保 auditd 记录足够上下文:
- 确认
/etc/audit/auditd.conf中log_format = ENRICHED(或至少不设为NO),启用字段丰富化; - 启用
auditctl -w /usr/bin/mount -p x -k mount_cmd监控mount命令二进制执行(虽非必须,但可补全 shell 层行为); - 关键字段解读(来自
ausearch -m mount -i输出):
uid:发起挂载的用户ID;
comm=:执行命令名(如mount、udisks2);
exe=:完整可执行路径(如/usr/bin/mount);
dev=:设备主从号(如"08:01"),用awk '{print "0x" $1}' /proc/partitions | xargs -I{} printf "%d:%d\n" $((0x$(echo {} | cut -d: -f1))) $((0x$(echo {} | cut -d: -f2)))可反向映射;
cwd=:当前工作目录;
cmdline=:完整命令行(需开启auditctl -a always,exit -F arch=b64 -S execve -k exec_cmd并确保auditd配置支持executable字段)。
日常排查与告警建议
审计日志本身不主动告警,需结合工具分析:
- 实时查看新挂载:
sudo ausearch -m mount -i --start today | grep -E "(uid=|dev=|comm=)" - 筛查非授权设备挂载(例如非 root 用户挂载 USB):
sudo ausearch -m mount -i --start recent | awk '/uid=[^0]/{print $0; getline; print $0}' - 导出为 CSV 供 SIEM 分析:
sudo aureport -m -i --csv > mount_events.csv - 设置定时任务,每日扫描
dev=值是否属于已知移动设备范围(如主号 8/65/128/259),并邮件通知; - 配合
udev规则做前置阻断(如禁止非白名单用户挂载/dev/sd*),auditd 用于兜底审计和取证。











