首页/安全/取证与溯源速查/udev 规则执行痕迹
Linux 取证135 条

udev 规则执行痕迹

udev 规则中的 RUN 指令可在外设接入或系统启动时执行程序,属于少见但有效的持久化位置,检查新增规则文件的时间与内容。

取证与溯源速查安全更新于 2026-10-13

udev 规则的执行痕迹

udev 依据规则文件在设备接入、移除或系统启动时执行动作,规则中的 RUN+= 可以调用外部程序,PROGRAM= 可以对设备属性做判断后决定后续行为。这让 udev 成为少见但有效的持久化位置:写入一条规则后,只要等待某个设备被接入,脚本就会被执行,平时在进程与启动项里几乎看不到。检查重点是规则文件的新增与改动时间,以及所有包含 RUN+= 的条目;判断异常前先用包管理器确认哪些规则属于发行版自带。

基本信息

目录/etc/udev/rules.d/、/run/udev/rules.d/、/usr/lib/udev/rules.d/
关键字段RUN+=、PROGRAM=、ACTION==、KERNEL==
生效方式udevadm control --reload 或重启主机
注意/run 下为运行时目录,重启后消失

典型使用场景

  • 排查插拔 U 盘或外设时被触发的可疑程序
  • 比对备份目录,找出新增或改动的规则文件
  • 确认某条规则是否属于发行版自带而非手工添加
  • 检查规则指向的执行路径是否落在临时目录
  • 评估清理顺序:先摘除规则再删除被调用的脚本

核查规则

核查规则
ls -lt --time-style=long-iso /etc/udev/rules.d/ | head      # 按时间看规则文件
grep -Rn 'RUN+=' /etc/udev/rules.d/ /run/udev/rules.d/ 2>/dev/null | head
find /etc/udev -newermt '-30 days' -type f 2>/dev/null | head   # 近期改动的文件
rpm -qf /etc/udev/rules.d/60-example.rules 2>/dev/null || dpkg -S /etc/udev/rules.d/60-example.rules 2>/dev/null   # 归属确认
cat /etc/udev/rules.d/99-custom.rules 2>/dev/null           # 查看可疑规则全文

规则字段读法

字段含义判读要点
ACTION==匹配设备事件类型add 表示接入时触发
KERNEL==匹配设备名或子系统可针对特定设备精准触发
RUN+=执行外部程序或脚本指向临时目录时高度可疑
PROGRAM=执行判断程序并看返回码本身也是代码执行点
发行版自带规则数量众多,直接按内容判断容易误报;先用包管理器反查归属,再对无归属且时间异常的规则做重点分析。
规则触发依赖硬件事件,不接入对应设备就不会执行,因此规则文件存在不等于行为已发生,还需要从被调用脚本的访问时间或审计记录寻找佐证。
/run/udev/rules.d 属于运行时目录,重启即失,现场采集要第一时间连同该目录一起留存,否则这类痕迹无法恢复。

易错点

  • 按内容逐条判断却不反查归属,把自带规则报成异常
  • 离开现场后才想到采集 /run 目录,运行时的规则已消失
  • 摘除规则时未同时处理被调用的脚本,触发点仍在
  • 把规则文件存在当作行为已执行,缺少实际触发证据

数据来源与参考

  • systemd 文档(udev(7) 规则语法)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌