前言
自Eclypsium的研究人员在华硕和华擎的固件中发现了缓冲区溢出漏洞,该漏洞的源头在于UEFI固件更新功能,使得黑客能够远程发起中间人攻击。研究人员在Black Hat 2018大会上展示了华硕和华擎产品的固件更新机制存在的缺陷。具体来说,是统一可扩展固件接口(UEFI)存在问题,这是一种操作系统和平台固件之间的软件接口规范。
Eclypsium创始人兼首席执行官Yuriy Bulygin告诉媒体:“这是第一次公开披露的对UEFI的远程攻击。到目前为止,大多数相关研究都需要在本地运行恶意代码,但我们发现网络中的这些漏洞现在可以被远程利用。”
UEFI取代BIOS的步伐越来越快(英特尔计划从2020年起所有的推出芯片组仅使用UEFI)。虽然BIOS和UEFI都是在操作系统开始载入之前启动的,但使用UEFI启动时间更短,并支持更容量更大的硬盘驱动器。此外还有一项功能是BIOS不支持的,即通过网络远程更新UEFI固件,诸如华硕、华擎和惠普等厂商的产品均支持该功能。
问题解构
当华硕和华擎产品固件启用更新机制时,它使用动态主机配置协议配置网络,然后向远程服务器发出纯HTTP请求,以检查UEFI BIOS固件是否可以更新。这个过程中没有SSL保护,也没有验证是否与正确的远程服务器进行通信。
也就是说,如果通过MITM拦截此请求或将此请求重定向到其他服务器(例如DNS/ARP/路由污染等),就可以修改返回给客户端的响应并利用该漏洞发送恶意代码。
华硕和华擎用于验证远程服务器响应的代码未能正确验证文件中某些嵌入字段的大小,这样一来,只要检测到新的文件版本号,就可以导致缓冲区溢出和任意代码的执行。在硬件固件保护尚未启用的情况下,黑客可以将恶意代码写入SPI闪存,每次系统启动后都会运行,这样的影响无法从操作系统的层面加以解决。
由于代码拥有高级权限并且在操作系统加载之前运行,黑客可以利用它来执行一系列操作:
- 使用NTFS EFI驱动将恶意软件植入操作系统;
- 使用NTFS EFI驱动从硬盘驱动器中窃取文件或使用勒索软件加密它们;
- 安装SMM rootkit,然后让操作系统正常加载以攻击其他数据。
研究人员表示,华擎和华硕都已收到该漏洞的通知。华擎已删除该更新机制,但华硕尚未提供解决措施。
总结
该漏洞揭示了平台固件相关应用带来风险,这是Yuriy在今年的Black Hat 2018大会上密切关注的一个议题。
“我们花费了大量时间来保护应用软件并寻找该领域中的漏洞,但很多针对的固件恶意活动非常隐蔽,难以被人察觉。整个行业都存在这个问题,我们需要倾注更多的注意力防范来自固件的风险。”Yuriy总结道。