如何确保已签名且未修改的 RPM 包的完整性和安全性?

如何确保已签名且未修改的 RPM 包的完整性和安全性?

有一种方法可以根据原始 RPM 内容验证与特定包相关的文件:

# Verify `vsftpd` package.
rpm -V vsftpd

如何完成链并验证rpm命令本身没有被改变?

如果我rpm用一个总是成功的脚本替换,这种类型的验证就永远不会失败。

答案1

如果您将自己限制于要验证的单一系统,那么这将是一个非常困难的问题。

幸运的是,我们生活在现实世界中,这里不止有一台计算机!

验证二进制文件的一些可能性包括:

  • 使用安装了相同 RPM 软件包版本的另一个参考系统,对二进制文件进行哈希处理并在每个系统上进行比较。

    为了增加保证,重新安装在进行比较之前,请先从参考系统上的存储库中获取签名的包。

    例子:

    # yum reinstall rpm
    ...
    Complete!
    
    # rpm -q rpm
    rpm-4.11.3-17.el7.x86_64
    
    # sha256sum /usr/bin/rpm
    743810f3c3a9e5eea8ba9bc87351db6b4e8c6393018b9bb56beb873a64ae5431  /usr/bin/rpm
    
  • 使用基于主机的入侵检测系统(如 OSSEC 或 Tripwire)来检测文件系统的意外更改。当然,这不能保证您的二进制文件不会被更改,但如果操作正确,它可以警告您攻击正在进行。

请注意,如果使用预链接,这两者都会失败,这就是为什么它在最近的系统上通常不再默认启用的原因之一。

答案2

# rpm -K rpm-2.3-1.i386.rpm
rpm-2.3-1.i386.rpm: size pgp md5 OK

http://www.rpm.org/max-rpm/s1-rpm-checksig-using-rpm-k.html

相关内容