在 Linux 内核中包含二进制 blob 意味着什么?

信息安全 linux 混淆 司机
2021-09-06 08:50:41

据此在安装混淆的二进制文件时有令人信服的理由要谨慎。知道了这一点,从安全的角度来看,作为 Linux 内核的一部分运行二进制 blob是如何被接受的呢?存在一个无blob 版本的内核该项目背后的动机似乎主要是意识形态。但是非免费驱动模块的用户实际上面临着什么样的风险呢?二进制 blob 是否可以包含旨在接管或打开整个系统后门的 rootkit?如何检测到这样的后门?

3个回答
  1. 安全,甚至意识形态的角度来看;斑点是不可接受的。
    不管人们说什么,他们都在试图劝阻你不要忽视这个问题的重要性。
  2. 非自由软件的用户面临的风险,无论是固件 blob、驱动程序 blob 还是 Microsoft Windows,都无法衡量虽然使用任何 Linux 发行版都比使用 Windows更安全,但这并不意味着任何 Linux 发行版都是安全的。
  3. 根据它们的大小,blob 几乎可以做任何事情,毕竟它们是小程序。
  4. 至于检测后门等安全漏洞,只有一种方法,而且相当简单;
    发布源代码先前的答案指出:
    二进制文件将比其他代码快得多。骗子,骗子,着火的裤子。

    blob 只会使程序的最终编译过程更快,而不是程序本身,
    但无论程序性能决定如何,
    都没有理由不发布源代码,并且该“blob”的编译指令
    以及任何告诉你的人要么撒谎,某种国家安全局,联邦调查局特工。

如果您对 100% FOSS(自由和开源)操作系统感兴趣,
有意识地维护他们的代码是免费的,这里有一个链接:免费 GNU/Linux 发行版
其他相关链接:
什么是自由软件?,
techrights.org/2013/11/25/freedo-and-nsa-code/

Linux 内核中的二进制 blob 主要是外围设备的固件。

许多外围设备——例如臭名昭​​著的Wi-Fi卡——内部都有处理器。这些处理器运行代码。代码必须来自某个地方。它来自驱动程序。

除非 Wi-Fi 驱动程序将固件复制到 Wi-Fi 卡的内存并开始运行,否则您的 Wi-Fi 卡将无法工作。

通常,Wi-Fi 卡的制造商会提供固件副本并说“这是您需要的固件。您的驱动程序应使用这些说明安装它。”

主要风险是我们不知道该固件中有什么。它在 Wi-Fi 卡的处理器上运行,因此通常不会对机器的其余部分造成任何风险,除了 DMA 攻击。但是,如果需要,它可以查看您所有的 Wi-Fi 流量和电话回家。我们无法确定,因为我们没有源代码。

关于 DMA 攻击:许多外围设备都具有直接将数据写入计算机主存储器的能力。这很有用,因为 CPU 不必浪费时间来洗牌数据。但这也意味着如果外围设备是恶意的,它可能会覆盖一些重要的东西,比如内核代码,然后安装一个 rootkit。一些计算机有一个称为 IOMMU 的工具,它通过限制外围设备可以访问的地址来防止这种情况,就像常规 MMU 限制非内核程序可以访问的地址一样。

他们合并二进制文件的主要原因是为了速度。二进制文件将比其他代码快得多,所以它很方便,因为它深深地内置在内核中。

这怎么能被接受?因为假设它们不是出于恶意目的。如果您真的担心这一点,您可以自己从头开始编译内核,这样您就可以自己检查进入这些二进制文件的代码。第二部分是确保他们没有改变为未知的东西。

我假设您所说的非免费驱动程序模块是指为在系统上使用而购买的东西。它们与任何专有产品具有完全相同的安全性。这意味着您不知道其中的内容,因此如果您信任该软件的制造商,那就太好了!让我们希望他们在编译成二进制文件之前没有恶意。

可以将二进制文件设计为对系统进行 rootkit 吗?绝对地!!这与我刚刚提出的观点相同。即使是一个看似无害的二进制文件也可以制作一个复制品,做同样的事情,而且也是一个 rootkit。

如何检测到这样的后门?几种方式。最好的答案是文件完整性监控。甚至需要一个简单的 MD5 或其他简单位置的简单单向哈希,例如 /etc 或每个二进制文件,以确保有人没有更改它们。当然还有常见的嫌疑人,例如防病毒软件、反间谍软件和良好的防火墙。