当前针对智能手机主流的攻击集中在应用处理器上运行的软件,今天要介绍的这种攻击方式是打破手机的基带处理器,在基带堆栈中致使远程执行代码的攻击。这是一个全新的领域,但国内在这方面的研究几乎没有,发到Freebuf居然都没审核经过。(须要基本通讯技术GSM、OpenBTS等基础)安全
起于德国安全公司Comsecuris公司总经理Ralf-Phillip Weinmann研究员在上周透露,MIAMI-A之前未公开的基带漏洞影响了华为智能手机,笔记本电脑WWAN模块和IoT组件,可攻击数百万部华为手机。在一种攻击方案中,攻击者能够利用此漏洞对空中受攻击的设备执行内存破坏攻击。网络
原文连接:https://threatpost.com/baseband-zero-day-exposes-millions-of-mobile-phones-to-attack/124833/?from=timeline函数
1、基带是什么,有什么用?工具
根据百科解释,“基带是Baseband 信源(信息源,也称发射端)发出的没有通过调制(进行频谱搬移和变换)的原始电信号所固有的频带(频率带宽),称为基本频带,简称基带。”post
基带本质上是手机中的一块电路,负责完成移动网络中无线信号的解调、解扰、解扩和解码工做,并将最终解码完成的数字信号传递给基站等上层处理系统进行处理,基带即为俗称的BB,能够理解为通讯模块。编码
基带芯片的组成大体能够分为五个模块,分别是CPU处理器、信道编码器、数字信号处理器、调制解调器和接口模块。核心部分最主要是两个部分:射频部分和基带部分。射频部分是将电信号调制成电磁波发送出去或是对接收电磁波进行解调,而且实现基带调制信号的上变频和下变频。基带部分通常是对信号处理,通常由固定功能的DSP提供强大的处理能力,在现代通讯设备中,DSP通常被用做语音信号处理、信道编解码、图像处理等等。spa
目前手机网络有分GSM、CDMA、CDMA-2000、WCDMA、TD-SCDMA、FDD-LTE和TD-LTE等多种制式。手机支持什么制式网络及频段,通话质量的好坏、网速的快慢、信号的强弱都由这块基带芯片决定。3d
生产手机基带芯片的厂家主要有:高通、德州仪器(TI)、意法半导体(ST)、博通、爱立信EMP、飞思卡尔半导体、Philips、Agere、Infineon、联发科(MTK)、展讯通讯、ADI、NXP、华为海思、威盛凌阳互芯集成等等。指针
以高通骁龙835为例,在整个SoC芯片上,集成了CPU、GPU、DSP、ISP、安全模块以及X16 LTE Modem:对象
2、基带是如何工做的?
很简单,当咱们用手机打电话、上网时,电信号首先要通过基带处理,而后在手机和基站间创建逻辑信道,语音、网络数据就经过逻辑信道发送给基站,实现信息的互联和通讯。基带的重要性显而易见。
一个通过简化的数字通讯系统模型以下所示:
3、攻击手段
Ralf-Phillip Weinmann早在2010年就发表了针对基带的数种攻击:
连接:https://www.usenix.org/system/files/conference/woot12/woot12-final24.pdf
对基带漏洞的挖掘一样经过对固件的逆向分析,几乎全部的基带处理器都是ARM处理器,所以获得了IDA Pro拆解器的良好支持,结合Google BinDiff工具能够从新识别二进制文件中的已知功能。经过计算功能的流程图上的多个度量,得到功能“指纹”,从几个标准编译器库和具备符号的RTOS二进制文件中的符号来识别诸如memcpy(),memmove()和bcopy()和RTOS系统函数的函数。这使咱们可以识别使用可变长度存储器副本的功能,使咱们可以快速查看其中哪些对于复制的数据使用了不足的长度检查。
可利用的内存损坏类型总结有如下几种:
1、长度检查不足
这类漏洞一般致使堆上或堆叠上的数据被覆盖,攻击者能够利用这些数据来利用一般的方法来控制执行流程。利用这些嵌入式系统中的堆栈破坏漏洞比现有的桌面平台更容易实现。
2、对象/结构生命周期问题
因为在GSM中大量使用状态机,所以在生命周期问题中可能会致使内存损坏。这些能够是无偿使用的错误(例如,已经释放的结构的悬挂指针)或未初始化的变量(在堆栈中最有用)。状态机的常见示例是用于处理传入的SMS和小区广播的状态机。
3、内存信息泄漏
这类漏洞不是内存损坏问题,但内存信息泄漏对于更好地利用内存损坏来讲很是有用。一般,它们在上述生命周期问题的上下文中出现,至少在基带堆栈中。其中没有任何格式字符串问题,由于sprintf()函数的大多数使用都在诊断代码中,而且不容许传递任意格式的字符串。
4、漏洞利用及危害
简而言之,触发漏洞只需使用GSM移动设备的AT命令集中定义的自动功能,找到AT命令处理程序来设置S0寄存器。对于堆栈缓冲区溢出或其余漏洞,则直接对程序计数器进行控制,而后将值1加载到寄存器R0中,并重定向执行流入此功能。
在GSM基带软件堆栈中成功利用内存损坏,攻击者能够访问电话与隐私相关的硬件,控制电话基带侧的攻击者能够彻底透明地监视用户,而无需从应用程序CPU侧入手。另外一个问题就是围绕着围绕计费问题:一旦攻击者控制了基带,他能够拨打电话,发送高级短信或致使手机拥有者不了解的大量数据传输。这显然可能对运营商和终端用户形成困扰。
5、总结
从以上咱们知道,基带固件的内存损坏存在并能够被实际利用。对这些安全问题的实际利用彻底损害被攻击手机的完整性。仅仅进入恶意基站的附近就足以接管任何易受攻击的手机,而不须要用户交互。开发成本低到足以使这些攻击成为现实:对于中档笔记本电脑的价格为1500美圆 ,攻击者能够购买硬件来操做带有OpenBTS的恶意GSM手机。