通过模拟 Thunderbolt 设备,可以访问受保护的内存区域。在某些情况下,这种称为 Thunderclap 的攻击允许您读取加密的网络流量并以管理员权限执行任意代码。
如果您的计算机上有 Thunderbolt 端口,则可能会遇到问题。一组研究人员刚刚发表了一项研究,该研究表明这些日益流行的接口可以提供对计算机 RAM 的访问。受洗《雷霆一击》,这些漏洞“允许对 Thunderbolt 端口进行物理访问的攻击者在几秒钟内危害目标计算机,以最高权限级别执行任意代码,并可能获得对密码、银行标识符、加密密钥、机密文件、浏览数据和其他数据的访问权限»。所有系统都会受到影响,包括 Windows、macOS、Linux 和 FreeBSD。简而言之,它很重。
Thunderclap 攻击依赖于这样一个事实:为了性能(DMA,直接内存访问),外围设备(例如网卡或显卡)历史上可以完全访问计算机的内存。因此,损坏的外围设备可以完全放心地访问系统的私密部分。随后,供应商采用了一种称为输入输出内存管理单元(IOMMU)的保护设备,它允许限制对内存的访问。
但事实证明这种保护并不总是存在。例如,微软最初只开始为 Windows 10 企业版启用它。对于所有其他版本的 Windows,内存访问是开业的酒吧适用于所有 Thunderbolt 设备。经过研究人员的努力,所有搭载 Windows 10 April 2018(版本 1803)的计算机现在都配备了 IOMMU。请注意,更新到 Windows 10 v1803 是不够的:制造商还必须更新其固件。此外,为了使设备真正工作,设备制造商必须更新其驱动程序。当然,还不是每个人都是这样。
无论如何,启用IOMMU并不能真正解决问题,因为这种保护不够有效。为了证明这一点,研究人员在 FPGA 可编程卡上创建了一个硬件平台,能够完美模拟不同的外设,这使他们能够探索外设、其驱动程序、RAM 和应用程序进程之间的不同交互。“结果是灾难性的,尽管明确使用了 IOMMU,但在更复杂的攻击者面前暴露了普遍存在的漏洞”,研究人员在他们的文章中写道。
在具有 IOMMU 保护的 macOS 上,研究人员模拟了网卡,并成功地从 VPN 流量中访问了清晰的数据。他们还设法获得了“root shell”,即以管理员权限运行任何代码。从版本 10.12.4 开始,最后一个缺陷已被修复。但在任何 Mac 上仍然可以访问交通数据。还可以通过以下方式访问击键并显示数据帧缓冲。
在 Linux 上,研究人员还能够读取 VPN 流量。他们还通过修改 PCI Express 通信层的参数来完全绕过 IOMMU。这使他们能够访问内存中的所有数据。此黑客攻击仅适用于支持 PCI Express 的“地址转换服务”选项的计算机。研究人员能够在运行 Ubuntu、RHEL 和 Fedora 的笔记本电脑和服务器上验证这一点。好消息是英特尔已经开发了补丁可以防止这种短路。它们将被集成到 Linux 内核版本 5 中,该版本应该很快就会发布。
其他攻击也是可能的。这完全取决于驱动程序如何与进程交互。因此,这项研究还远未结束。最终,随着通常集成 Thunderbolt 的 USB Type C 的普及,这种风险将会增加。为了保护自己,用户可以尝试在固件级别(BIOS/UEFI)禁用Thunderbolt接口,但这可能不太实用。无论如何,建议不要将计算机放在公共场所,并避免使用使用 USB Type C 的公共充电站。