这款开源“神器”,可以找出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日
本文作者:小二郎
本文来自云栖社区合作伙伴嘶吼,了解相关信息可以关注嘶吼网站。
目录
相关文章
|
2月前
|
Android开发
如何用Airtest脚本无线连接Android设备?
如何用Airtest脚本无线连接Android设备?
|
3月前
|
Android开发 Python
Python封装ADB获取Android设备wifi地址的方法
Python封装ADB获取Android设备wifi地址的方法
60 0
|
4月前
|
Android开发
【Android App】蓝牙的设备配对、音频传输、点对点通信的讲解及实战(附源码和演示 超详细)
【Android App】蓝牙的设备配对、音频传输、点对点通信的讲解及实战(附源码和演示 超详细)
81 0
|
7月前
|
数据采集 前端开发 Android开发
Android平台RTMP推送或GB28181设备接入端如何实现采集audio音量放大?
我们在做Android平台RTMP推送和GB28181设备对接的时候,遇到这样的问题,有的设备,麦克风采集出来的audio,音量过高或过低,特别是有些设备,采集到的麦克风声音过低,导致播放端听不清前端采集的audio,这时候,就需要针对采集到的audio,做音量放大处理。
|
7月前
|
开发工具 Android开发
Android平台GB28181设备接入端语音广播技术探究和填坑指南
GB/T28181-2016官方规范和交互流程,我们不再赘述。
|
7月前
|
编解码 监控 API
Android平台GB28181设备接入侧音频采集推送示例
GB/T28181是广泛应用于视频监控行业的标准协议规范,可以在不同设备之间实现互联互通。今天我们主要探讨Android平台的Audio采集部分。
|
6月前
|
生物认证 开发工具 Android开发
安卓设备签到,还是用视觉智能平台人脸搜索1:N
安卓设备签到,还是用视觉智能平台人脸搜索1:N
155 2
|
4天前
|
编解码 人工智能 测试技术
安卓适配性策略:确保应用在不同设备上的兼容性
【4月更文挑战第13天】本文探讨了提升安卓应用兼容性的策略,包括理解平台碎片化、设计响应式UI(使用dp单位,考虑横竖屏)、利用Android SDK的兼容工具(支持库、资源限定符)、编写兼容性代码(运行时权限、设备特性检查)以及优化性能以适应低端设备。适配性是安卓开发的关键,通过这些方法可确保应用在多样化设备上提供一致体验。未来,自动化测试和AI将助力应对设备碎片化挑战。
|
1月前
|
Shell 开发工具 Android开发
ADB 下载、安装及使用教程:让你更好地管理 Android 设备
ADB 下载、安装及使用教程:让你更好地管理 Android 设备
439 2
|
7月前
|
编解码 网络协议 Android开发
Android平台GB28181设备接入端如何支持跨网段语音对讲
如果你是音视频开发者亦或寻求这块技术方案的公司,在探讨这个问题之前,你可能网上看了太多关于语音广播和语音对讲相关的资料,大多文章认为语音对讲和语音广播无本质区别,实现思路也大同小异。