BIOS固件重大安全漏洞:LogoFAIL是什么?影响多大?

BIOS固件重大安全漏洞:LogoFAIL是什么?影响多大?
最新回答
ー別經哖ぴ

2024-03-27 09:24:43

LogoFAIL是存在于UEFI EDK2核心代码中,因图片解析和解码代码缺陷导致的BIOS固件安全漏洞,攻击者可通过替换开机Logo图片触发内存错误,进而实现代码注入和系统控制,影响范围覆盖数百万台近十年上市的x86和ARM架构电脑及服务器。 以下是详细介绍:

漏洞原理与攻击方式
  • 漏洞根源:UEFI原生支持BMP格式Logo展示,各厂家扩展支持PNG、JPEG等格式时,其解析代码存在缺陷。例如,BMP等格式的PixelHeight和PixelWidth从文件头读取,但这些数据不可信,黑客可构造恶意图片引发解析函数(parser function)的堆、栈溢出,或写入缓冲区外区域。

  • 攻击步骤

    替换Logo文件:攻击者用恶意构造的PNG等格式文件替换原Logo(文件可能存储在Flash或磁盘中)。

    覆盖Event Callback:BIOS展示Logo时,恶意文件覆盖Event Callback,安装回调钩子。

    执行恶意代码:Event Callback触发时,执行Flash上的ShellCode和ESP上的UEFI驱动(可能绕过安全启动)。

攻击面:Logo替换的便利性
  • 需求驱动:ODM厂家需为OEM或品牌方预留Logo替换空间,终端消费者(如动手能力强的用户)也有此需求。主流BIOS厂家(如AMI)提供替换工具(如Aptio Change Logo tool),部分工具甚至在官网公开下载,进一步降低了替换门槛。

    例如,一篇关于替换Windows 10启动Logo的文章广受欢迎,反映了用户对个性化Logo的需求。

  • 保护绕过:Boot Guard等BIOS验签技术本应保护BIOS image,但为方便Logo替换,许多BIOS实现会绕过Logo区间(及NVRAM空间)的验签,为LogoFAIL攻击提供了便利。
影响范围
  • 设备规模:漏洞代码在UEFI EDK2核心中存在十余年,广泛存在于各BIOS厂家(IBV)及下游OEM/ODM代码中。受中下游厂家引入的类似漏洞影响,近十年上市的数百万台电脑和服务器受波及,覆盖x86和ARM架构

    例外情况:部分生态封闭的厂家(如使用UEFI的MacBook(Intel CPU型号)和Dell部分电脑)因不提供Logo替换功能,将LOGO区域纳入Boot Guard保护,规避了攻击第一步,未受影响。

  • 漏洞长期性:中下游厂家为扩展功能引入的代码缺陷,进一步扩大了漏洞影响面。
修复与防范
  • 根本修复:升级BIOS固件是唯一解决方案,但因影响范围广,各厂家需时间发布更新。
  • 长期建议:推广Fuzzing Test(模糊测试)在UEFI开发中的应用,以提前发现类似漏洞。目前该技术在UEFI领域应用不广泛,但随着攻击加剧,更多问题可能暴露,大规模推广刻不容缓。