为什么必须校验来源
补丁包必须来自可信渠道,并在安装前验证来源真实性。供应链投毒的典型手法就是用「看起来一样」的包替换正品,因此校验环节不能省:包管理器验签、安装介质哈希比对、Windows 可执行文件验签,各自都有成熟的检查手段,耗时很短但作用很大。
基本信息
| 可信来源 | 厂商官网、官方软件仓库、厂商交付介质 |
|---|---|
| 校验方式 | RPM 与 DEB 包签名、介质哈希校验、Windows Authenticode 签名 |
| 基础配置 | 包管理器仓库开启 GPG 检查(gpgcheck) |
| 内部转发 | 自建镜像站要同步上游签名并定期校验 |
| 留痕要求 | 校验结果与补丁台账一起记录 |
| 校验时机 | 下载后、安装前,不要等装完再补 |
场景与校验方式
| 场景 | 校验方式 | 说明 |
|---|---|---|
| RPM 包 | rpm --checksig 或 rpm -K | 校验签名与完整性 |
| DEB 包 | dpkg-sig --verify 或仓库 apt 验签 | 需安装对应工具 |
| 安装介质 | 与厂商公布的哈希比对 | sha256sum -c 校验 |
| Windows 可执行 | Get-AuthenticodeSignature | 关注签名状态与签发者 |
| 容器镜像 | 镜像签名与摘要校验 | 用摘要而非浮动标签 |
RPM/DEB 与文件校验
RPM/DEB 与文件校验
rpm --checksig package.rpm # RPM 签名校验
rpm -K package.rpm # 同一功能的简写
dpkg-sig --verify package.deb # DEB:需安装 dpkg-sig
sha256sum -c image.iso.sha256 # 与厂商公布的哈希比对
# 仓库层面确认 GPG 检查已开启
grep -r '^gpgcheck' /etc/yum.conf /etc/yum.repos.d/ 2>/dev/nullWindows 可执行文件验签
Windows 可执行文件验签
Get-AuthenticodeSignature .\patch.msu | Format-List Status, SignerCertificate
# Status 应为 Valid,签发者要与厂商一致
# 批量检查目录下的补丁文件
Get-ChildItem .\patches\*.msu | Get-AuthenticodeSignature | Where-Object Status -ne 'Valid'典型使用场景
- 手工下载补丁包时的来源核对
- 自建软件源与镜像站的质量检查
- 离线环境的介质校验
- 事件复盘时确认是否存在被替换的包
- 供应商交付物的验收
- 审计举证中的校验记录留痕
开启包管理器仓库的 GPG 检查属于基础配置。手动下载单个包时要谨慎核对来源与哈希,不要因为「能装上」就默认它是正品。
从第三方镜像站下载补丁包直接安装、不做任何签名与哈希校验:一旦镜像站被污染或被中间人篡改,等于主动把恶意程序装进生产环境。