可以在 BIOS 重新刷新后存活的恶意软件

信息安全 恶意软件 事件响应 易于
2021-08-11 21:22:44

备受尊敬的安全顾问 Dragos Ruiu 报告说,他感染了神秘的恶意软件,这种恶意软件可以在重新安装操作系统和重新刷新操作系统后存活下来。换句话说,他拿走了一台受感染的机器,对其进行擦除、隔离、重新刷新其 BIOS、更换其磁盘驱动器、安装新的操作系统——在启动新操作系统后,它仍然被感染。

这种感染怎么可能存在?恶意软件可以使用哪些机制来将其钩子保留在机器中并在重新刷新 BIOS 和重新安装操作系统时幸存下来?

我当然对 Dragos 的神秘恶意软件可能使用的机制感兴趣,但我们不要止步于此。更广泛地说,我还对恶意软件可以使用哪些机制来维持磁盘擦除和 BIOS 刷新感兴趣。恶意软件可以为此目的使用哪些方案?

这个问题对我们如何从感染中恢复有影响。一个标准的说法是,一旦你被黑客入侵,“唯一确定的方法就是从轨道上对其进行核攻击”——换句话说,你必须擦除硬盘驱动器并从头开始重新安装所有东西。也许从这个神秘的恶意软件中得到的教训是,即使“从轨道上对其进行核打击”也不够。因此,要了解我们需要做些什么才能将受感染的机器恢复到已知良好的状态,这将有助于了解即使在您更换硬盘并重新刷新 BIOS 后恶意软件仍可能驻留的所有方式。

更多背景:本页总结了 Dragos 所报告的有关他感染的神秘恶意软件的内容。另请参阅Gilles 的出色回答

4个回答

至于如何重新刷新 BIOS 并不能根除恶意软件,我们可以大胆猜测:

  • 重新刷新操作受... BIOS 的控制,因此受感染的 BIOS 只是假装进行重新刷新(或之后立即重新感染新的 BIOS)。

  • 机器中的另一个可刷新固件也被感染,当它或 BIOS 被重新刷新时,仍然受感染​​的固件会重新感染另一个。任何带有DMA 的设备都可以在任何时候劫持实时机器,并且大多数带有固件的设备都有一个板载 CPU,可以完成任务(GPU、硬盘......)。

  • 磁盘固件被感染,并在重新感染 BIOS 的引导代码中插入恶意代码。(不确定它是否符合症状,但这是可能的。)

这里的共同主题是所有重新刷新都是在机器的一部分处于活动状态时完成的,因此存在先有鸡还是先有蛋的问题:您无法从运行受感染代码的机器上安全地重新刷新(即使是间接的,在 DMA 的情况下) -able 设备具有自己的 CPU),但如果机器关闭,您也无法重新刷新。理想情况下,BIOS 芯片将从机器中移除,从另一个设备重新刷新(当然启动它),然后重新插入。但是这些芯片通常是焊接的……我们知道如何制作可插拔芯片——例如CPU,所以在不影响I/O性能的情况下是可行的。但我想焊接对制造商来说更便宜。

也许制造商可以添加一些类似JTAG的端口,这将允许重新刷新焊接在断电板上的芯片(真正断电,电源线已物理移除)。

似乎完全不可信!

如果我们假设报告是准确的(我不确定我们的观察者是否有资格假设 Dragos 是真实的、没有错误的、没有被胁迫的?),那么它只会导致三个选项:

  1. 存储介质(HDD、SSD、USB 驱动器)未完全擦除
  2. BIOS 未正确刷新
  3. 其他计算机组件被用作病毒处于休眠状态的储存库

我很高兴接受 #1 不太可能,至少对于磁性媒体而言。

如果在受感染的系统上执行闪存(可能(?)能够拒绝闪存并给出成功的错觉),则选项#2 可能是可能的。Butterworth、Kallenberg 和 Kovah在 Black Hat 2013 上演示了概念证明[PDF]

Brossard 在 Black Hat 2012上演示了#3 的概念证明,这可能是上述已经非常罕见的场景中最合理的一个。快速阅读所提供的链接似乎并没有表明 Dragos 考虑了这个角度。

安全研究员 Jonathan Brossard 创建了一个名为 Rakshasa 的概念验证硬件后门,它取代了计算机的 BIOS(基本输入输出系统),可以在启动时破坏操作系统,而不会在硬盘驱动器上留下痕迹。

Brossard 是法国安全公司 Toucan System 的首席执行官兼安全研究工程师,他在周六的 Defcon 黑客大会上展示了该恶意软件的工作原理,并在周四的 Black Hat 安全大会上展示了该恶意软件。... Rakshasa 替代主板 BIOS,但也可以感染其他外围设备如网卡或 CD-ROM 的 PCI 固件,以实现高度冗余。

所以我认为对高价值目标做的最好的事情就是从已知的好媒体重建到已知的好硬件!没有听起来那么糟糕,因为现在硬件很便宜,尤其是对于那些高价值的目标。

您的问题尚不清楚硬盘内容是否已正确删除。重新安装操作系统当然不能保证驱动器已被清除。如果驱动器从受感染的计算机中拔出并在另一台计算机上被替换或正确清除,那么忽略恶意软件仍然存在于其上的可能性是合理的。固件和 BIOS 恶意软件在狭隘的目标攻击或概念验证之外几乎没有用处。

新秀可能驻留在环-2或SMM中,这些感染至少从2008年就已经存在。尽管投反对票,但这是事实,就像这里的其他内容一样。有人告诉我,这里的人不喜欢默默无闻的安全性(参考启动时的 memtest,如下所示)

[不喜欢后更新] 如果是 SMM 恶意软件,并且在操作系统/重新安装后仍然存在,则可能是受感染的 bios 或固件,您可以使用普通闪存或 SPI 闪存修复,如果病毒无法阻止更新,则前者; 如果您的更新失败或事后您在 bios 版本中没有看到任何变化,您应该能够确定是否是这种情况。如果它是 GPU 恶意软件,请确保关闭 PC,甚至将其从墙上拔下,这将清除 GPU ram 和任何 GPU 驻留恶意软件,如果它没有嵌入到您的视频卡固件中。否则可能需要重新刷新您的 GPU 和/或 SPI 刷新。硬盘固件也是如此。如果硬盘驱动器的芯片组被感染,可能是通过 jtag,您可能需要更换驱动器本身,对此的研究正在进行中. 如果是固件中嵌入的 NIC 卡恶意软件,您可能还需要重新刷机,或者在 BIOS 中禁用板载 NIC,然后购买 OTP 刷机的 NIC(一次性刷机),在流水线上刷一次并且不允许将来重新闪烁。只是为了省去您的麻烦,RTL8111G/RTL8111GS 具有嵌入式一次性可编程 (OTP) 存储器。像 UGreen 千兆以太网 PCI Express PCI-E 网络控制器 RJ45 适配器链接

如果您的主板本身或其任何组件在制造过程和到达您的住所之间的某个时间点直接在芯片上嵌入了恶意软件,您可能必须一次移除每个硬件并进行测试,直到您确定哪个组件是导致问题...如果它在您的主板本身上,您可能需要购买新主板。

我建议的一件事是,您通过 bios 使用扩展内存测试、memtest 或“慢启动”选项在启动时擦除您的 ram,这通过写入每个扇区将 ram 归零,类似于 memtest86x,但它发生在 post 和通常只有一次扫描。它还可以清除恶意软件在发布期间从受感染的固件模块或芯片组注入 ram 的数据,但这种情况不太可能发生,并且如果它们被恶意软件阻止,则可能允许您完成功能。