这款开源“神器”,可以找出Android设备最底层的Bootloader漏洞

简介: 本文讲的是这款开源“神器”,可以找出Android设备最底层的Bootloader漏洞,即使操作系统受到损害,智能手机的Bootloader固件也应该是安全的。但是近日,研究人员在4个主流芯片供应商的代码中发现了7个安全漏洞,这些漏洞会导致手机信任链在引导过程中被攻破,从而使设备遭受攻击。
本文讲的是 这款开源“神器”,可以找出Android设备最底层的Bootloader漏洞

这款开源神器,可以找出Android设备最底层的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中。详细分析结果如下所示:

 这款开源神器,可以找出Android设备最底层的Bootloader漏洞

据悉,该研究成果最初由研究人员在本月初加拿大温哥华举行的USENIX安全大会上展示。




原文发布时间为:2017年9月7日
本文作者:小二郎
本文来自云栖社区合作伙伴嘶吼,了解相关信息可以关注嘶吼网站。
目录
相关文章
|
3月前
|
Android开发 iOS开发 UED
探索未来:Android与iOS在智能穿戴设备上的较量
随着科技的飞速进步,智能穿戴设备已经成为我们日常生活中不可或缺的一部分。本文将深入探讨两大操作系统——Android和iOS——在智能穿戴领域的竞争与发展,分析它们各自的优势与挑战,并预测未来的发展趋势。通过比较两者在设计哲学、生态系统、用户体验及创新技术的应用等方面的差异,揭示这场较量对消费者选择和市场格局的影响。 【7月更文挑战第31天】
41 0
|
2月前
|
Shell Linux 开发工具
"开发者的救星:揭秘如何用adb神器征服Android设备,开启高效调试之旅!"
【8月更文挑战第20天】Android Debug Bridge (adb) 是 Android 开发者必备工具,用于实现计算机与 Android 设备间通讯,执行调试及命令操作。adb 提供了丰富的命令行接口,覆盖从基础设备管理到复杂系统操作的需求。本文详细介绍 adb 的安装配置流程,并列举实用命令示例,包括设备连接管理、应用安装调试、文件系统访问等基础功能,以及端口转发、日志查看等高级技巧。此外,还提供了常见问题的故障排除指南,帮助开发者快速解决问题。掌握 adb 将极大提升 Android 开发效率,助力项目顺利推进。
55 0
|
2月前
|
监控 Java API
Android经典实战之OkDownload:一个经典强大的文件下载开源库,支持断点续传
本文介绍的 OkDownload 是一个专为 Android 设计的开源下载框架,支持多线程下载、断点续传和任务队列管理等功能,具备可靠性、灵活性和高性能特点。它提供了多种配置选项和监听器,便于开发者集成和扩展。尽管已多年未更新,但依然适用于大多数文件下载需求。
141 1
|
2月前
|
Android开发
基于Amlogic 安卓9.0, 驱动简说(四):Platform平台驱动,驱动与设备的分离
本文介绍了如何在基于Amlogic T972的Android 9.0系统上使用Platform平台驱动框架和设备树(DTS),实现设备与驱动的分离,并通过静态枚举在设备树中描述设备,自动触发驱动程序的加载和设备创建。
22 0
基于Amlogic 安卓9.0, 驱动简说(四):Platform平台驱动,驱动与设备的分离
|
2月前
|
Android开发 C语言
基于Amlogic 安卓9.0, 驱动简说(二):字符设备驱动,自动创建设备
这篇文章是关于如何在基于Amlogic T972的Android 9.0系统上,通过自动分配设备号和自动创建设备节点文件的方式,开发字符设备驱动程序的教程。
37 0
基于Amlogic 安卓9.0, 驱动简说(二):字符设备驱动,自动创建设备
|
2月前
|
自然语言处理 Shell Linux
基于Amlogic 安卓9.0, 驱动简说(一):字符设备驱动,手动创建设备
本文是关于在Amlogic安卓9.0平台上创建字符设备驱动的教程,详细介绍了驱动程序的编写、编译、部署和测试过程,并提供了完整的源码和应用层调用示例。
58 0
基于Amlogic 安卓9.0, 驱动简说(一):字符设备驱动,手动创建设备
|
2月前
|
传感器 Android开发 芯片
不写一行代码(三):实现安卓基于i2c bus的Slaver设备驱动
本文是系列文章的第三篇,展示了如何在Android系统中利用现有的i2c bus驱动,通过编写设备树节点和应用层的控制代码,实现对基于i2c bus的Slaver设备(如六轴陀螺仪模块QMI8658C)的控制,而无需编写设备驱动代码。
33 0
不写一行代码(三):实现安卓基于i2c bus的Slaver设备驱动
|
2月前
|
Android开发
不写一行代码(二):实现安卓基于PWM的LED设备驱动
本文介绍了在Android系统中不编写任何代码,通过设备树配置和内核支持的通用PWM LED驱动来实现基于PWM的LED设备驱动,并通过测试命令调整LED亮度级别。
35 0
不写一行代码(二):实现安卓基于PWM的LED设备驱动
|
2月前
|
Linux Android开发 C语言
不写一行代码(一):实现安卓基于GPIO的LED设备驱动
本文通过实践操作,展示了在Android系统中不编写任何代码,利用设备树(DTS)配置和内核支持的通用GPIO LED驱动来控制LED设备,并进一步通过C语言编写NDK测试APP来实现LED的闪烁效果。
70 0
不写一行代码(一):实现安卓基于GPIO的LED设备驱动
|
2月前
|
安全 网络安全 数据安全/隐私保护
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享安卓与iOS开发中的线程管理比较
【8月更文挑战第30天】本文将探讨网络安全与信息安全的重要性,并分享关于网络安全漏洞、加密技术和安全意识的知识。我们将了解常见的网络攻击类型和防御策略,以及如何通过加密技术和提高安全意识来保护个人和组织的信息安全。