首页/安全/取证与溯源速查/包管理器校验系统文件完整性
Linux 取证135 条

包管理器校验系统文件完整性

dpkg -V 与 rpm -Va 用包数据库中的哈希核对文件:被替换或篡改的系统文件会显示校验失败,是完整性初筛的常用手段。

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

包管理器校验文件完整性

系统文件是否被替换,可以先用包管理器自带的校验功能初筛:Debian 系 dpkg -V 读取软件包数据库里记录的文件大小、权限与摘要,与磁盘现状逐项比对;RHEL 系用 rpm -Va 做同样的事。两者的输出都只列出不一致的条目,适合作为完整性问题定位的起点,再对可疑项做重点核查。

基本信息

Debian 系dpkg -V(等同 dpkg --verify),另有 debsums -c
RHEL 系rpm -Va 全量校验,rpm -V <包名> 缩小到单个包
校验依据包数据库中的文件大小、权限、摘要、属主与修改时间
输出规则只列与记录不一致的文件,一致的文件不输出
前提条件包数据库本身可信,被改写过会让比对结果一起失真

典型使用场景

  • 初筛系统命令与库文件是否被替换或植入后门
  • 定位被改动过的配置文件,缩小人工核查的范围
  • 结合入侵窗口时间,判断哪些改动发生在事发之后
  • 核查后重装受影响软件包,把系统恢复到已知状态
  • 作为主机加固与合规核查的例行检查项

两平台执行

两平台执行
dpkg -V 2>/dev/null | head -30        # Debian 系:只列不一致项
rpm -Va 2>/dev/null | head -30        # RHEL 系:全量校验,行首九位标记问题类型
rpm -V openssh-server                 # 缩到单个包,输出更好读
debsums -c                            # Debian 系另一实现,需先安装
rpm -qf /usr/bin/ps                   # 反查某文件属于哪个软件包

校验标记读法

标记含义异常解读
S(大小)文件大小与记录不符内容被替换的强信号
M(权限)权限位或文件类型变化被加上可执行位常见于植入
5(摘要)内容摘要与包记录不一致文件内容已被改动
U / G / T属主、属组、修改时间变化仅时间变化多为正常更新
dpkg -V 每行输出一个文件路径,路径前的九位字符里问号表示无法检查、数字 5 表示摘要不符;debsums 的结果更易读但需要额外安装。两者都只覆盖由包管理器安装的文件。
校验结果的可信度取决于包数据库:攻击者若已改写 /var/lib/rpm 或 /var/lib/dpkg 下的记录,比对可能显示一切正常。尽量用只读挂载的副本或受控介质中的独立工具交叉比对。

易错点

  • 把校验通过等同于主机干净,忽略手工放置的文件与非包管理路径
  • 忽略包数据库本身可能被改写,比对的可信前提并不成立
  • 只看摘要位不看权限位,被追加可执行位的文件容易漏过
  • 现场没有先固定证据就整包重装,破坏了原始状态与后续可比性

数据来源与参考

  • dpkg 手册(dpkg(1) --verify)
  • rpm 手册(rpm(8) -V)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌