针对软件包存储库进行完整性检查?

针对软件包存储库进行完整性检查?

当有安全更新时,我会尽快查看并安装它们,并考​​虑使用自动更新。

有时我想从干净启动 CD 启动并检查系统是否已被入侵。

因此,我想检查是否有任何包/二进制文件已被修改,检查引导加载程序,检查rootkit。

假设我从干净启动 CD 启动并安装了 hdd 文件系统。

如何获取所有已安装二进制文件和配置文件的所有 sha256 哈希值列表,并根据 Debian 存储库中的版本进行检查?

我研究过入侵检测系统 (debsums)、Afick、AIDE、FCheck、Integrit、Osiris、OSSEC、Samhain、Tripwire,但它们都有一个共同点,即它们希望在审计之前创建一个已知良好的数据库。这不太好扩展,因为更新非常频繁,这使得已知良好的数据库变得不那么有用。更新后重新创建已知良好的数据库也不是很安全 - 假设 apt-get 有一个错误并安装了一个恶意软件包,那么该恶意软件包的校验和将最终出现在已知良好的数据库中。

我认为真正的解决方案是检查发行版的软件包存储库。我该怎么做?

我已经检查过了http://wiki.debian.org/SecureApt#How_to_manually_check_for_package.27s_integrity已经,但说明不完整。

答案1

要根据存储库检查包中单个文件的完整性,没有比下载包更简单的方法了。存储库通常提供以下文件:

  • Release{,.gpg}InRelease——这些提供文件的哈希值Packages
  • Packages文件提供了包的哈希值。
  • Contents文件(如果存在)提供软件包的文件列表。

没有提供单个文件哈希值的文件 - 这些文件包含在包中(DEBIAN/md5sumscontrol档案中)。

因此,如果您不信任本地系统:

  1. 您必须下载该Contents文件(如果可用)。
  2. 使用该文件将文件与包进行匹配,然后下载该包。
  3. 然后使用md5sums来验证文件。

如果Contents文件不可用,并且你不信任本地系统,请尽情下载每一个包来查看提供了什么文件。

这不具可扩展性。

相关内容