如何检查 PPA 包是否被篡改?

如何检查 PPA 包是否被篡改?

我想使用 PPA 中的最新软件包。如何确保 PPA 维护者没有在提供的版本中添加任何恶意代码?

答案1

  1. 安装该devscripts包。
  2. 转到 PPA 页面并找到与您感兴趣的包相关的源包文件。找到以 结尾的文件.dsc
  3. 运行命令。这将下载并解压用于构建包的源代码到一个目录中。将此目录重命名为。dget url_of_dsc_fileppa
  4. 获取原始源代码以与 PPA 进行比较。这可能是来自项目网站的原始上游 tarball,与您正在使用的版本相对应,也可能是软件包的最新官方 Ubuntu 版本(您可以从 找到后者的链接.dsc)。下载并解压此文件,然后将此目录重命名为,如果需要,使用从 下载。https://launchpad.net/ubuntu/+source/source_package_nameupstreamdget.dsc
  5. 现在比较upstreamppa目录,看看是否引入了在中ppa不存在的恶意更改upstream。您可以使用 meld 来实现此目的,它是一个图形化的差异查看器。apt-get install meld,然后运行meld upstream ppa。它将向您显示哪些文件是新的、已更改的或已删除的,您可以双击文件以易于查看的格式查看详细的更改。

由于 PPA 是在 Canonical 基础设施上从源代码构建的,因此您可以相信从 PPA 安装的二进制文件与您如上所述审查的源代码相匹配,前提是您信任 Canonical。鉴于您首先信任 Canonical 构建 Ubuntu,这应该是可以接受的。

答案2

你确实无法确定 PPA 提供的包中没有恶意软件,但你至少可以检查源代码是否被篡改:

  • 从 PPA 页面下载软件包orig.tar.*文件并解压
  • 然后从项目网站下载并解压相同版本的程序
  • 跑步diff -r orig-dir/ ppa-dir/

两个源代码树应该完全相同。如果不一致,您可以仔细检查差异,确保它们不是恶意的。

您还需要检查包装本身。Debian 软件包可能包含源代码树的补丁,并且可能添加其他代码。

Debian 软件包(.deb)可以像这样解压:

ar p mypackage.deb data.tar.gz | tar zx

相关内容