固件后门保护

信息安全 后门 固件
2021-08-26 00:53:35

http://en.wikipedia.org/wiki/Advanced_Configuration_and_Power_Interface#Security_Risk

Ubuntu Linux 创始人 Mark Shuttleworth 将 ACPI 比作特洛伊木马。 [28] 他将专有固件(固件 ACPI 或任何其他固件)描述为一种安全风险,称“您设备上的固件是 NSA 最好的朋友”,并将固件(ACPI 或非 ACPI)称为巨大比例的特洛伊木马”。他曾指出低质量、闭源固件是对系统安全的主要威胁:[7] “你最大的错误是假设 NSA 是唯一滥用这种信任地位的机构——事实上,假设所有固件是不安全的污水池,这是由于制造商的最高水平的无能,以及非常广泛的此类机构的最高水平的能力”。

作为该问题的解决方案,他呼吁使用声明式固件(ACPI 或非 ACPI)。 [7] 固件应该是开源的,以便可以检查和验证代码。固件应该是声明性的,这意味着它应该描述“硬件链接和依赖关系”并且不应该包含可执行代码。

无论如何,是否有适当的保护自己免受 ACPI 或一般情况下的后门的侵害?

固件可以很容易被感染或注入后门或木马吗?

1个回答

固件就是代码。它代表某个硬件设备在 CPU 上执行;或者直接在设备上执行。

一般来说,如果您自己的硬件意图监视您,那么您就输了。一个更令人担忧的发展是许多硬件(例如键盘)包含一个完全诚实的可升级固件,并且在野外发现了一些恶意软件,它用恶意代码替换了一些固件(使用“可升级”功能)。

最大的固件称为BIOS它是在计算机启动时,在加载操作系统之前首先运行的代码(实际上,BIOS 负责加载操作系统)。根据定义,安装在 BIOS 中的恶意软件会抵制操作系统的完全重新格式化和重新安装。CIH 病毒,也就是众所周知的“切尔诺贝利病毒”,早在 1998 年就已经与 BIOS 混为一谈了(但它的做法相当不熟练,导致 BIOS 被破坏,而不是被悄悄感染的 BIOS)。更新的病毒将以非破坏性方式安装并持续存在。

BIOS 不是计算机中唯一的可刷新固件,因此可能性很大。

要编写固件可安装的病毒,您需要对硬件和固件格式进行一些逆向工程。似乎攻击者会这样做。开源固件在技术上会使这种逆向工程更容易,但也会帮助那些寻找可以修复的安全漏洞的“防御者”。这是经典的开源/闭源安全辩论,已经持续了很长一段时间,还没有得出任何明确的结论。

不过,对“仅声明性固件”的呼吁有点误导。这个想法是,任何硬件都不应该带有要在 CPU 上执行的特定代码。相反,这样的代码应该在操作系统驱动程序中。这没有考虑到整个情况,主要有两个方面:

  • 一台机器必须能够启动才能真正加载操作系统和驱动程序,因此在某个地方(即 BIOS)必须仍然有一些知道如何访问硬盘的固件。

  • 许多外围设备都有自己的 CPU。这当然包括 GPU,但所有网络接口、键盘……对于他们来说,调用“仅声明性固件”没有真正意义,因为代码无论如何都是用于设备 CPU,而不是用于主CPU,操作系统永远不会看到它。已演示了插入到 Apple 键盘固件中的键盘记录器


通用解决方法:

  • 仅使用具有严格内部安全程序(特别是对员工的背景调查)的“可靠来源”的硬件,以便固件最初是干净和诚实的。

  • 使其固件不可刷新。同样,这取决于硬件。例如,对于某些主板,除非物理设置了特定的跳线,否则无法刷新 BIOS;否则,所需的再闪光电流根本无法到达芯片。

由于许多具有可刷新固件的现有硬件不能被设为不可刷新,并且从任何国家的角度来看,“可靠来源”都是罕见的(因为部件来自不同的国家),因此这些通用解决方法实际上并不是实际的。

(也许中国可以想出一台“100% 中国的电脑”,但在你的国家领土上生产所有部件并不等同于能够相信他们的诚实和可靠性。)