我很好奇,理论上,如何知道与 Ubuntu Linux 一起分发的内核是否真的是https://github.com/torvalds/linux上的内容,而不是一些包含跟踪代码等的修改内核。 .
我提到内核只是一个例子。真正的问题是,你能确定分布式开源软件真的是你所期望的吗?
我很好奇,理论上,如何知道与 Ubuntu Linux 一起分发的内核是否真的是https://github.com/torvalds/linux上的内容,而不是一些包含跟踪代码等的修改内核。 .
我提到内核只是一个例子。真正的问题是,你能确定分布式开源软件真的是你所期望的吗?
我很好奇,理论上,如何知道与 Ubuntu Linux 一起分发的内核是否真的是https://github.com/torvalds/linux上的内容,而不是一些包含跟踪代码等的修改内核。 .
实际上,与您的发行版一起分发的内容通常不是通过 torvald 的 git 树分发的内容。您的 Linux 发行版可能不是普通内核。
这样做的原因是分发供应商通常会向后移植可能从各种来源影响其客户的修复程序。例如,在 Fedora 中(选择这些示例纯粹是因为我最近有自定义构建这些包的经验):
3.11.4-201.fc19.x86_64在撰写本文时)包含许多针对 v4l、iommu 修复、drm-intel-nex、iwl(英特尔无线)驱动程序等的补丁。在 Fedora(和其他基于 yum 的系统)yumdownloader --source kernel上,将下载源内核 RPM - 打开它,您会发现用于构建内核包的所有内容。
所以,不,你的 Linux(甚至你的包)可能不是普通的供应商包。现在,接下来:
真正的问题是,你能确定分布式开源软件真的是你所期望的吗?
好吧,上面的重点是你的包数据库内容可能不是你期望的那样,但我猜的问题是,这里面可能有恶意内容吗?.
答案是,除非您检查源代码并从中重建包,否则您作为最终用户几乎没有办法告诉您。
但是,大多数包提交过程都有些严格。通常,您不能只是出现并成为流行包的维护者。您需要以贡献而闻名,并得到工作人员/委员会成员/无论是什么赋予您推送包裹的权利的批准。
我可以看到这可能是晦涩软件中的一种攻击媒介,但我认为主要软件包很可能最终会被检测到。大多数软件包都是从源代码构建的,并且由于错误、用户问题等而受到审查。开发继续并重建包。补丁可能会失败。基本上,某个地方的某个人可能会注意到一个奇怪的地方。
在此基础上,我认为你必须做出基于风险的决定。您打算保护的东西是否如此有价值,以至于您认为能力强且顽固的对手会尝试在 Linux 发行版中安装后门程序来获取您?如果是这样,请继续构建您自己的发行版(顺便说一句,您没有理由不能窃取现有发行商的软件包并仔细审核/编译您自己的软件包——这就是开源的美妙之处)。
如果不是,我会(个人)接受外部风险。
以我的经验,您可以确定特定模块未内置到内核中或在运行时未加载根模块的唯一方法是自己构建内核。投掷到 Gentoo,您负责下载自己的源代码并在系统上构建每个包。如果您下载 Ubuntu、Kali、Backtrack 或其他一些您不是下载内核源代码的预构建系统,则进行 make、make config 等...决定哪些项目将作为模块构建和加载. 内置到内核中的话,基本上我认为你不能信任这个系统。
不,你实际上不能。您相信存储库是安全的,并且提交的人正在正确地执行此操作。但是,您从存储库下载的任何内容都可以在某种程度上进行验证。存储库的几乎所有部分都有一个同行评审过程。
如果您想确定,您唯一能做的就是从头开始编译所有内容,就像在Linux 中从头开始编译一样。但即便如此,为了确保没有后门,您仍需要自己审查所有代码。
最后,它(一如既往)在可用性、易用性和确保人们实际上不会捆绑后门之间进行权衡。