验证本地镜像中的包

验证本地镜像中的包
  1. 多个 BSD 和 Linux 操作系统/发行版的软件包通过潜在不安全的连接下载,或者随后被本地磁盘上的恶意版本替换。
  2. 整个镜像是恶意的,为您提供被篡改的文件和签名/元包。是否有一些独立于操作系统的方法来检查文件是否已更改?

我认为对于基于 Fedora、Debian、Suse 的主要 Linux 发行版,包管理器应该照顾 1,因为它可以正常工作并且本身没有被篡改。不过我对 BSD 不太确定。但如果我想验证不通过包管理器呢?我只能想到这样的事情:从可信来源获取元包,将它们与本地包进行比较,使用元包中的校验和来验证本地包的完整性。有没有更简单的方法,或者如果这种方法不安全的话有什么想法,也许有任何现成的工具可以做到这一点?有 debsums,但它仅适用于 debs,我不知道它是否验证整个包或仅验证其中的文件。

答案1

在 BSD 中,有一些简单的解决方案如何避免您描述的攻击 (1,2)。

  • 基本的。使用包装袋

    带有安全更新的最新支持的 FreeBSD 版本已经包含 /etc/pkg/FreeBSD.conf 和已知的公钥。

  • 高级(在生产中应优先选择)。使用宝姿系列,构建你自己的镜像普德里埃并配置PKG_REPO_SIGNING_KEY

    用于签署 PKG 存储库的 RSA 密钥的路径。请参阅 pkg-repo(8) PKG_REPO_SIGNING_KEY=/etc/ssl/keys/repo.key

BSD 包/端口安全性的完整概述超出了此处的范围。简而言之,端口系统与基础系统是分离的,每个 BSD 管理员应该能够维护自己的构建系统和镜像。了解详情查看绝对的FreeBSD特别是以下章节。

  • 第 16 章:使用端口定制软件
  • 第 17 章:高级软件管理
  • 第 18 章:升级 FreeBSD
  • 第 19 章:高级安全功能

相关内容