GHOST系统之家 - Windows系统光盘下载网站!
当前位置:GHOST系统之家>电脑问题 > 还没升级 iOS11?这个高危漏洞威胁近9成 iPhone 用户!

还没升级 iOS11?这个高危漏洞威胁近9成 iPhone 用户!

来源:Ghost系统之家浏览:时间:2022-09-07 15:03:12

作者:百度安全实验室

1. 摘要

随着iOS 11的发布,多个BroadCom WiFi芯片的高危漏洞被公开[1]。这些漏洞对上亿台未来得及更新的iOS设备造成了严重的安全威胁。黑客可对同一WiFi网络下的设备发起攻击,远程控制受害设备的WiFi 芯片,甚至进一步攻破 iOS 内核。本文对 iOS 设备 WiFI 芯片相关漏洞进行简要技术分析,然后根据iOS设备的系统版本统计出受影响的规模。

截至9月27日,国内92.3%的iOS用户都受到相关高危漏洞的威胁。我们呼吁用户尽快升级iOS系统到最新版本,并号召手机厂商采用更有效的防护技术,避免用户受到已知高危漏洞的威胁。

2. BroadCom WiFi芯片漏洞技术分析

本文着重分析两个BroadCom WiFi芯片漏洞:CVE-2017-11120和CVE-2017-11121。这两个漏洞都是WiFi芯片固件代码在处理数据帧时缺乏对特定字段的严格校验。攻击者可以利用它们制造内存破坏,实现任意代码执行,获得对设备的远程控制。

2.1 漏洞CVE-2017-11120

iOS设备搭载的BroadCom WiFi芯片采用了快速基本服务设置转换(Fast BSS Transition)和无线资源管理(RadioResource Management)标准。在接入无线接入点(Access Point,简称AP)后,iOS设备会发送相邻接入点请求(NeighborReport Request),AP则返回相邻接入点应答(Neighbor ReportResponse),包含当前无线局域网内的相邻AP以及各自的BSSID,Operating Class和ChannelNumber等信息。在处理Neighbor Report Response数据帧时,BroadCom WiFi芯片将每一种OperatingClass和Neighbor Report信息保存在一个456字节的内存块中(如图1所示),并且将这些块通过指针串接起来。其中,Neighbor CountArray记录了各个Channel Number的Neighbor数量。Array长度为450字节,每2个字节记录一个ChannelNumber,所以最大可记录的Channel Number为224(0xE0)。

还没升级 iOS11?这个高危漏洞威胁近9成 iPhone用户!

▲图1:BroadCom WiFi芯片记录Neighbor Report Response信息的内存块结构 [2]

还没升级 iOS11?这个高危漏洞威胁近9成 iPhone用户!

▲图2:BroadCom WiFi芯片处理Neighbor Report Response信息的函数 [2]

如图 2 所示,WiFi 芯片固件里位于地址 0xAC0A8 的函数(简称function_AC0A8,下同)首先在串联的内存块中查找OperatingClass对应的条目,如果没有找到,则会动态创建一个条目 ,然后从数据帧中读出Channel Number作为数组索引,定位到 Neighbor CountArray 中元素,将其值加一。此过程并没有对Channel Number做出校验,当伪造的数据帧中 ChannelNumber大于0xE0(如0xFF)时,上述过程将会造成内存越界写。攻击者可以通过内存越界写改变关键指针数据或者控制流元素,一步步接管代码执行。值得一提的是,BroadComWiFi 芯片里没有 ASLR、DEP 等防护,攻击者可以很容易做代码改写,注入任意代码执行。

此漏洞影响 iOS 11.0 以前的设备。目前此漏洞的利用代码已公开[2],攻击者能直接复用这一利用代码攻击漏洞设备,在WiFi芯片中插入后门,并在用户无感知的情况下实现对设备的远程控制。

2.2 漏洞CVE-2017-11121

根据 Fast BSS Transition 标准,当设备在无线网络环境下进行快速漫游(fastroaming)时,会触发校验和重关联(reassociation)操作。Reassociation操作会对组临时秘钥(Group TemporalKey,简称GTK)进行解密和安装。这两个过程中存在多处 memcpy 调用,调用前都缺少对 copy 长度的校验,可能导致内存破坏。

还没升级 iOS11?这个高危漏洞威胁近9成 iPhone用户!

▲图3:BroadCom WiFi芯片重关联操作时GTK解密和安装的相关函数 [3]

如图3所示,reassociation 由 function_8462C 函数负责,它调用 function_6D8对GTK 解密,然后会继续调用function_C9C14对GTK 进行安装。相关代码片段如下:

上述处理过程中,有两处 memcpy 调用存在问题:

1)GTK解密函数 function_6D8 中,当构造的畸形数据帧中gtk_subelem[1]为11时,函数参数input_length为0。在第二处调用 memcpy时,input_length-8为0xfffffff8,这将导致大量数据被 copy,破坏 stack上的数据;

2)GTK安装函数 function_C9C14,参数 gtk_len 取值为 gtk_subelem[4]。攻击者可以构造畸形数据帧,使gtk_subelem[4]大于164,函数中 memcpy 调用前没有检查 gtk_len 取值,可能导致堆溢出。

攻击者同样可以攻击此漏洞造成内存破坏,实现远程任意代码执行。此漏洞影响系统版本在11.0以前的iOS设备。

3. 通过WiFi芯片漏洞可进一步攻击iOS内核

攻击者可将WiFi芯片漏洞作为跳板,进一步攻击 iOS 内核。iOS 设备进行 WiFi 通信时,内核的 WiFi 驱动会向 WiFi 芯片发送 ioctl请求。如果WiFi芯片被攻击者控制,攻击者能够篡改 ioctl 返回的结果数据,触发内核WiFi驱动中结果处理函数的漏洞,从而实现对 iOS 内核的攻击。

还没升级 iOS11?这个高危漏洞威胁近9成 iPhone用户!

▲表1: 当攻击者控制WiFi芯片后,可用于攻击iOS内核驱动的漏洞

表1中列举了可由WiFi芯片作为跳板攻击内核的漏洞。漏洞原理简要说明如下:

●CVE-2017-7103:驱动AppleBCMWLANBusInterfacePCIe中的函数completeFirmwareTimestampMsg,在FirmwareTimestamp消息完成后会被回调。函数内部将Timestamp消息封装为mbuf,交由processFirmwareTimeSyncMessage处理,mbufpkthdr_len设置为消息中timestamp_length字段的值。processFirmwareTimeSyncMessage函数内部存在一处memmove调用,长度参数为pkthdr_len。程序没有对pkthdr_len进行检查,构造过大的pkthdr_len会使memmove调用产生内存溢出。

● CVE-2017-7105:驱动AppleBCMWLANCore中的函数assembleBGScanResults,在处理WLC_GET_VARioctl返回的结果时,会调用IOMalloc分配一块堆内存,内存分配长度根据返回结果中的字段计算得出。代码中缺少对分配长度的溢出校验,在WiFi芯片被控制情况下,攻击者可通过篡改ioctl返回数据,使IOMalloc分配长度在计算时产生整型溢出,进而导致过小的内存分配,后续对分配内存的copy操作可能引起堆溢出。

●CVE-2017-7108:驱动AppleBCMWLANCore中的updateRateSetAsyncCallback函数,在处理WLC_GET_CURR_RATESETioctl请求结果时,首先将0x14字节的结果数据中读到栈中buffer。rate数目由buffer中前4字节获得,接着函数从buffer+4处循环读出rate数据。由于在循环操作前缺少对rate数目的校验,攻击者可以篡改ioctl返回的rate结果,将rate数目字段改为过大的值,实现对buffer数据的越界读,造成栈上数据信息泄露。

● CVE-2017-7110:设备向WiFi芯片发送获得所有VendorIE列表信息的ioctl请求,返回结果交由驱动AppleBCMWLANCore中setVendorIE函数处理。setVendorIE内部调用obvcopy时,length参数根据ioctl返回结果中字段的计算得出。然而程序中缺乏对length值的校验,在WiFi芯片受控下,攻击者可以构造畸形请求结果,使得obvcopy的length过大,导致堆溢出。

●CVE-2017-7112:驱动AppleBCMWLANCore中handleTraceEvent函数,在处理WLC_E_TRACE消息时,缺少对消息头中len字段的检查。而后根据len计算得到的数组索引,进而改写数组内容时,可能对数组以外的内存写入NULLbyte。

4. 绝大多数iOS用户受到WiFi高危漏洞威胁

截至2017年9月27日,通过对国内上亿台iOS设备的系统版本进行的统计,排除虚假设备干扰结果后,详细系统版本比例分布如图4所示。从左半部分开始,逆时针方向按新旧版本次序依次为最新的iOS11.x到iOS 7.x。其中,最新的iOS 11.x设备占比为7.7%,iOS 10.3.3系统占比50.8%,此版本之外的iOS10.x版本(10.0.0至10.3.2)占比23.8%。早期的iOS 9.x设备占比11.2%,iOS 8.x 占比 5.8%,更早期的iOS 7占比0.7%。

从图中可以看到,目前国内升级到最新的iOS 11.x系统的设备仅占7.7%,有近半的iOS设备系统版本为10.3.3。其余设备停留在10.3.2到更早的7.x等不同的版本。这些旧版iOS系统的设备(高达92.3%)面临着文中列举的WiFi芯片高危漏洞带来的安全威胁。

还没升级 iOS11?这个高危漏洞威胁近9成 iPhone用户!

▲图4:国内iOS设备系统版本分布(2017年9月27日)

此外,我们统计了从2017年9月11日到2017年9月27日(iOS11的升级推出于9月19日)iOS各个系统版本的升级情况。结果如图5所示。可以看到,从9月19日开始推送iOS 11.0升级至9月27日期间,iOS11.x用户占比缓慢递增至7.7%,升级主要来源于iOS 10.3.3。整个统计期间iOS7.x至10.x的用户占比基本不变,也就是说,仍然有近41.5%的用户选择停留在iOS 10.3.2及以下系统不升级。

还没升级 iOS11?这个高危漏洞威胁近9成 iPhone用户!

▲图5:国内iOS设备系统升级趋势(2017年9月11日-2017年9月27日)

5. 结语

本文分析了近期曝出的iOS设备WiFi芯片高危漏洞以及影响范围。文中提及的漏洞虽然已在iOS11得到修复,但通过实际统计发现,绝大多数用户由于各种原因没有升级上来,仍面临严重的安全威胁。建议用户及时升级系统到最新版本,避免受到高危漏洞影响。同时,我们也呼吁手机以及硬件厂商采取更积极的防护技术,避免用户受到已知的高危漏洞威胁。

参考文献

[1]. https://support.apple.com/en-us/HT208112

[2]. https://bugs.chromium.org/p/project-zero/issues/detail?id=1289

[3]. https://bugs.chromium.org/p/project-zero/issues/detail?id=1291

[4]. https://bugs.chromium.org/p/project-zero/issues/detail?id=1302

[5].https://bugs.chromium.org/p/project-zero/issues/detail?id=1305

[6].https://bugs.chromium.org/p/project-zero/issues/detail?id=1312&can=1&q=CVE-2017-7108

[7].https://bugs.chromium.org/p/project-zero/issues/detail?id=1313&can=1&q=CVE-2017-7110

[8].https://bugs.chromium.org/p/project-zero/issues/detail?id=1314&can=1&q=owner%3Alaginimaineb%40google.com

推荐系统

  • 番茄花园 Windows 10 极速企业版 版本1903 2022年7月(32位) ISO镜像快速下载

    番茄花园 Windows 10 极速企业版 版本1903 2022年7月(32位) ISO镜像快速下载

    语言:中文版系统大小:3.98GB系统类型:Win10

    番茄花园 Windows 10 32位极速企业版 v2022年7月 一、系统主要特点: 使用微软Win10正式发布的企业TLSB版制作; 安装过程全自动无人值守,无需输入序列号,全自动设置; 安装完成后使用Administrator账户直接登录系统,无需手动设置账号。 安装过程中自动激活

  • 新萝卜家园电脑城专用系统 Windows10 x86 企业版 版本1507 2022年7月(32位) ISO镜像高速下载

    新萝卜家园电脑城专用系统 Windows10 x86 企业版 版本1507 2022年7月(32位) ISO镜像高速下载

    语言:中文版系统大小:3.98GB系统类型:Win10

    新萝卜家园电脑城专用系统 Windows10 x86企业版 2022年7月 一、系统主要特点: 使用微软Win10正式发布的企业TLSB版制作; 安装过程全自动无人值守,无需输入序列号,全自动设置; 安装完成后使用Administrator账户直接登录系统,无需手动设置账号。 安装过程

  • 笔记本&台式机专用系统 Windows10 企业版 版本1903 2022年7月(32位) ISO镜像快速下载

    笔记本&台式机专用系统 Windows10 企业版 版本1903 2022年7月(32位) ISO镜像快速下载

    语言:中文版系统大小:3.98GB系统类型:Win10

    笔记本台式机专用系统 Windows 10 32位企业版 v2022年7月 一、系统主要特点: 使用微软Win10正式发布的企业TLSB版制作; 安装过程全自动无人值守,无需输入序列号,全自动设置; 安装完成后使用Administrator账户直接登录系统,无需手动设置账号。 安装过

  • 笔记本&台式机专用系统 Windows10 企业版 版本1903 2022年7月(64位) 提供下载

    笔记本&台式机专用系统 Windows10 企业版 版本1903 2022年7月(64位) 提供下载

    语言:中文版系统大小:3.98GB系统类型:Win10

    笔记本台式机专用系统 Windows10 64专业版 v2022年7月 一、系统主要特点: 使用微软Win10正式发布的专业版制作; 安装过程全自动无人值守,无需输入序列号,全自动设置; 安装完成后使用Administrator账户直接登录系统,无需手动设置账号。 安装过程中自动

  • 雨林木风 Windows10 x64 企业装机版 版本1903 2022年7月(64位) ISO镜像高速下载

    雨林木风 Windows10 x64 企业装机版 版本1903 2022年7月(64位) ISO镜像高速下载

    语言:中文版系统大小:3.98GB系统类型:Win10

    新雨林木风 Windows10 x64 企业装机版 2022年7月 一、系统主要特点: 使用微软Win10正式发布的企业TLSB版制作; 安装过程全自动无人值守,无需输入序列号,全自动设置; 安装完成后使用Administrator账户直接登录系统,无需手动设置账号。 安装过程中自动激活

  • 深度技术 Windows 10 x64 企业版 电脑城装机版 版本1903 2022年7月(64位) 高速下载

    深度技术 Windows 10 x64 企业版 电脑城装机版 版本1903 2022年7月(64位) 高速下载

    语言:中文版系统大小:3.98GB系统类型:Win10

    深度技术 Windows 10 x64 企业TLSB 电脑城装机版2022年7月 一、系统主要特点: 使用微软Win10正式发布的企业TLSB版制作; 安装过程全自动无人值守,无需输入序列号,全自动设置; 安装完成后使用Administrator账户直接登录系统,无需手动设置账号。 安装过程

  • 电脑公司 装机专用系统Windows10 x64 企业版2022年7月(64位) ISO镜像高速下载

    电脑公司 装机专用系统Windows10 x64 企业版2022年7月(64位) ISO镜像高速下载

    语言:中文版系统大小:3.98GB系统类型:Win10

    电脑公司 装机专用系统 Windows10 x64 企业TLSB版2022年7月一、系统主要特点: 使用微软Win10正式发布的企业TLSB版制作; 安装过程全自动无人值守,无需输入序列号,全自动设置; 安装完成后使用Administrator账户直接登录系统,无需手动设置账号。 安装过

  • 新雨林木风 Windows10 x86 企业装机版2022年7月(32位) ISO镜像高速下载

    新雨林木风 Windows10 x86 企业装机版2022年7月(32位) ISO镜像高速下载

    语言:中文版系统大小:3.15GB系统类型:Win10

    新雨林木风 Windows10 x86 专业版 2022年7月 一、系统主要特点: 使用微软Win10正式发布的专业版制作; 安装过程全自动无人值守,无需输入序列号,全自动设置; 安装完成后使用Administrator账户直接登录系统,无需手动设置账号。 安装过程中自动激活系统,无