导语:加利福尼亚大学圣芭芭拉分校的研究人员创建了一款名为“BootStomp”的工具,可以自动检测Bootloader组件中存在的安全漏洞。
即使操作系统受到损害,智能手机的Bootloader固件也应该是安全的。但是近日,研究人员在4个主流芯片供应商的代码中发现了7个安全漏洞,这些漏洞会导致手机信任链在引导过程中被攻破,从而使设备遭受攻击。
关于Bootloader
Bootloader是嵌入式系统在加电后执行的第一段代码,在它完成CPU和相关硬件的初始化之后,再将操作系统映像或固化的嵌入式应用程序装在到内存中然后跳转到操作系统所在的空间,启动操作系统运行。它可以初始化硬件设备、建立内存空间映射图,从而将系统的软硬件环境带到一个合适状态,以便为最终调用操作系统内核准备好正确的环境。
开发BootStomp工具检测bootloader漏洞
加利福尼亚大学圣芭芭拉分校的一组研究人员发现了该漏洞,他们创建了一个名为“BootStomp”的工具来自动检测bootloader组件中存在的安全漏洞。
该工具在分析了包括高通、MediaTek、Nvidia以及华为在内的4家主流芯片制造商的代码后,在其中两家供应商(Nvidia和华为)的bootloader中发现了6个零日漏洞。他们还使用该工具在高通bootloader中发现了一个已知漏洞(CVE-2014-9798)。据悉,目前在这6个新发现的漏洞中,bootloader厂商已经证实并确认了5个。
研究人员注意到,bootloader很难用软件进行分析,部分原因是由于它们是闭源代码开发的,且具有硬件特性,所以很难进行逆向工程。为此,研究人员特意开发了这款名为“BootStomp”的工具来攻克这些难题。
研究人员解释称,
BootStomp的目标是自动识别跟滥用/使用受攻击者控制的,且由bootlaoder代码信任的非易失性存储器相关的安全漏洞。具体来说,我们设想使用自己的系统作为一个自动系统,给定一个bootloader作为输入,从而输出一些可能提示存在安全漏洞的警报。然后,人类分析师可以分析这些警告信息,并快速确认突出显示的功能是否构成安全威胁。
确保bootloaders的完整性对于Google的“验证启动功能”(Verified Boot)和ARM的“可信引导”(Trusted Boot)至关重要,因为bootloaders需要验证彼此的完整性来创建所谓的“信任链”(chain of trust)。如果有人篡改了bootloader组件,内核或文件系统映像,该该设备将不可用。
使用BootStomp,研究人员在bootloading期间发现了36个潜在的危险路径,其中超过1/3是安全漏洞。
研究人员指出,
这些漏洞中有一些可以允许具有root权限的攻击者将任意代码作为bootloader的一部分执行,从而损害整个“信任链”,实现恶意功能,或是执行DDoS攻击,破坏设备。此外,我们的工具还识别出了两个bootloader漏洞,这两个漏洞能允许攻击者获取操作系统的root权限从而解锁设备并攻破信任链。
本文中,研究人员假设攻击者可以控制设备上非易失性存储(non-volatile)的任何内容,如果攻击者已经获得了操作系统的root权限,那么这一假设就可能会实现。研究人员发现,这5个bootloader分别来自3种不同的芯片集,其中包括:
华为 P8 ALE-L23:华为/海思芯片集; Sony Xperia XA:MediaTek芯片集; Nexus 9:Nvidia的图睿芯片集;
此外,研究人员还发现了一个新版本和旧版本的高通bootloader。其中一个已知的安全漏洞——CVE-2014-9798是一个影响高通旧版本bootloader的拒绝服务(DoS)漏洞。其他6个新发现的漏洞,其中1个存在于Nvidia芯片集中,5个存在于影响华为 P8的海思bootloader中。详细分析结果如下所示:
据悉,该研究成果最初由研究人员在本月初加拿大温哥华举行的USENIX安全大会上展示。想了解更多详情以及缓解措施,可查看论文《BootStomp:关于移动设备bootloader的安全问题》。