关键程序哈希核对
入侵者替换系统命令(如 ps、ss、sshd)之后,这些命令的输出本身就不再可信。哈希核对的作用是把可疑程序与安装来源做比对:一边用包管理器校验文件是否被改动,一边与同版本干净主机或安装介质的哈希对照,两种方式互相补充。
基本信息
| 哈希命令 | sha256sum、md5sum |
|---|---|
| 包校验 | rpm -Vf <文件>、dpkg -V <包名>、debsums |
| 比对基准 | 安装介质、同版本干净主机、官方仓库包 |
| 优先对象 | 登录、提权、网络与审计相关程序,以及关键库文件 |
| 记录要点 | 哈希、文件大小、mtime 与 ctime 一并保存 |
| 权限要求 | 读取系统目录通常需要 root |
典型使用场景
- 判断关键程序是否被替换
- 确认包管理器记录的文件是否被改动
- 为内存与磁盘取证结论提供支撑
- 评估 rootkit 的影响范围
- 与 AIDE 基线结果交叉印证
最小示例
最小示例
sha256sum /usr/sbin/sshd /bin/bash /usr/bin/sudo /usr/bin/ssh # 关键程序哈希
rpm -Vf /usr/sbin/sshd 2>/dev/null || dpkg -V openssh-server 2>/dev/null
rpm -V openssh-server 2>/dev/null | head # 整包校验输出
dpkg -V openssh-server 2>/dev/null | head # Debian 系对应写法
ls -l --time-style=long-iso /usr/sbin/sshd # 时间戳与大小一并记录
cmp -s /usr/bin/ps /mnt/clean/usr/bin/ps; echo $? # 与干净副本逐字节比较输出与异常
| 输出 | 含义 | 异常信号 |
|---|---|---|
| sha256 值 | 文件内容指纹 | 与基准不一致即为被替换 |
| rpm -V 输出 | 包校验结果 | 出现 5 或 S 标记表示内容或大小差异 |
| dpkg -V 输出 | 包内文件校验结果 | 列出自安装后被修改的文件 |
| 文件大小 | 字节数 | 与官方包不同 |
| 时间戳 | mtime 与 ctime | 晚于包安装时间说明被改动过 |
与包管理器比对只能证明文件是否与安装包一致,无法证明安装包本身来自官方仓库;这两个层面在报告中都要交代清楚。
校验的价值取决于基准是否可信:优先使用安装介质或同版本干净主机的哈希作为对照,而不是本机自证。
校验时不要为了取版本信息而执行可疑程序:任何执行都可能触发载荷;使用 sha256sum 这类只读工具即可。