“量子”系统击穿苹果手机 ——方程式组织攻击iOS系统的历史样本分析 - 嘶吼 RoarTalk – 网络安全行业综合服务平台,4hou.com

“量子”系统击穿苹果手机 ——方程式组织攻击iOS系统的历史样本分析

安天 技术 2024-01-17 15:07:11
51627
收藏

导语:为让全球用户更深入了解A2PT攻击组织的攻击能力,安天CERT在6月9日披露了一份历史积累分析成果,曝光了同一威胁来源方向的历史样本分析。

封面图.jpg

重发按语:2023年6月1日,卡巴斯基发布报告《三角行动:iOS设备被以前未知的恶意软件攻击》,当时报告中仅进行了事件披露,没有发布样本分析。为让全球用户更深入了解A2PT攻击组织的攻击能力,安天CERT在6月9日披露了一份历史积累分析成果,曝光了同一威胁来源方向的历史样本分析。与卡巴曝光的攻击来自于针对手机iMessage服务投放不同,安天曝光的样本来自于“量子”系统的投放,报告也因此命名为《“量子”系统击穿苹果手机》。历经数月的艰苦分析,卡巴于今日发布了新分析成果报告《三角行动:最后一个谜团》。安天勘误重发6月的报告,也提醒用户应广泛关注来自量子系统的空中投放。

// 该报告首次发布时《图 5‑3 量子系统可攻击场景图谱化分析》有误,已经勘正,特此致歉。

1 概述:覆盖智能终端的A2PT样本拼图

在过去二十多年的时间里,全球关键信息基础设施运营者、安全厂商、研究者所面临的重大考验是,如何应对以NSA等情报机构所发动的网络攻击活动,基于这种攻击活动应用了难以想象的技术与资源,安天CERT将这种攻击活动称之为A2PT(高级的高级持续性威胁)攻击,并发现其中多起攻击都来自于NSA下属的方程式组织。如何把A2PT攻击活动中的攻击样本与过程揭示出来,成为了一场比马拉松更艰苦的分析接力赛,这场接力至少已经完成了三次交接棒,第一阶段从2010年的“震网”事件触发,围绕“震网”—“火焰”—“毒曲”—“高斯”系列样本的攻击活动、样本同源性与关联展开,直到2013年的斯诺登事件出现,才发现这些只是冰山一角;第二阶段是从方程式组织(隶属于NSA)被曝光开始,围绕其硬盘固件攻击能力、载荷、通信加密机制特点、“原子化”作业模式等展开,并逐渐证明“震网”等攻击与方程式组织密切相关;第三阶段则是围绕“影子经纪人”所泄露的方程式组织的漏洞和攻击载荷,全球业界展开更深入的拼接分析和复盘。中国网络安全产业联盟在4月11日所发布的报告《美国情报机构网络攻击的历史回顾——基于全球网络安全界披露信息分析》[1]基本完整复现了这场漫长而艰难的斗争。

这场分析接力中两项比较重要的工作:一项是揭示从“震网”到方程式的复杂线索关联,这些信息可以参见卡巴斯基和安天相关的恶意代码家族的同源性分析报告[2][3],也可以在《震网事件的九年再复盘与思考》[4]看到相关的恶意代码工程的关联图谱。另一项则是去验证一个逻辑上存在着必然性,但又需要大量工作来佐证的判断——即方程式组织的作业能力和恶意代码样本储备是覆盖全操作系统平台的。毫无疑问,国际安全厂商卡巴斯基为此做出了最大的贡献,安天CERT也有部分独创的工作,例如Linux、Solaris样本的最早曝光是来自安天的报告。安天CERT在2016年的报告《从方程式到“方程组”——EQUATION攻击组织高级恶意代码的全平台能力解析》[5]中,汇聚了安天和卡巴斯基等的成果,统计了Windows、Linux、Solaris、FreeBSD和Mac OS平台的样本情况。但彼时方程式组织针对iOS 、Android等移动平台的样本还没有正式浮出水面,尽管在2013年斯诺登事件中所曝光的NSA ANT系列攻击装备中DROPOUTJEEP、TOTEGHOSTLY等代号给出了一些线索,但由于iOS平台取证的难度,和其攻击作业的高度定向性,业内一直没有样本级别的发现和实证——但这并不意味着,它们会永远沉寂于水面之下,持续的努力让我们能够在后续找到线索并进行了分析积累。

2023年6月1日,卡巴斯基[6]发布了《三角行动:iOS设备被以前未知的恶意软件攻击》,这让我们决定对我们原有分析成果进行补充分析,并正式发布。由于卡巴斯基尚未公开有关事件样本信息和分析结果,我们尚无法判定我们分析的这些历史样本是否是“三角行动”攻击样本的早期版本。但我们明确的判断是:我们所分析的样本,和卡巴斯基所曝光的攻击同样来自方程式组织。但与卡巴斯基所发现的样本是依托iMessage的漏洞投放不同的是,本报告的相关攻击样本来自方程式组织基于“量子”(QUANTUM)系统在网络侧针对上网终端浏览器漏洞利用投放。 

2 样本分析

相关样本并不是常规的iOS APP应用安装包,而是针对iOS底层的木马,木马分为执行载荷与后门程序,执行载荷是最初投放到系统的,它负责释放后门程序和持久化。

2.1 执行载荷

表 2‑1木马主体程序

原始文件名

regquerystr.exe

文件大小

307kb

文件格式

Mach-O executable

木马主体程序在投递过程中伪装的文件名是regquerystr.exe,但并非是一个PE格式文件,实际文件格式是ARM架构的Mach-O 可执行程序,利用漏洞或通过沙盒逃逸完成后门程序的释放和执行,其首先检测内核版本和用户权限。

2-1.jpg

图 2‑1 对内核版本信息和当前的用户权限进行获取和判断

然后木马程序进行后门程序的释放,将其释放到/tmp/mvld,并执行/bin/launchctl的load命令完成后门服务的运行。

2-2.jpg

图 2‑2 运行后门服务

2-3.jpg

图 2‑3 正在运行的后门服务

木马主体采用了两种不同的加密算法来加密其明文字符串信息。

算法1:

2-4.jpg

图 2‑4 字符串加密算法1

算法2:

2-5.jpg

图 2‑5 字符串加密算法2

其使用的加密方法比较简单,配置数据只运用了异或和乘法运算,其使用的密钥有0x47[7]和0x1D,网络通讯部分则使用了标准的HTTPS加密协议。这种简单的加密与方程式组织在PC平台样本严格使用高强度加密算法并不一致,关于PC样本加密算法和密钥可以参见安天分析报告《方程式(EQUATION)部分组件中的加密技巧分析》[8],但相对来看,可能是彼时的手机环境算力相对较低,同时没有较为成熟的安全对抗机制,因此攻击者并未使用强加密。

2-6.jpg

图 2‑6 解密后的关键字符串信息

表 2‑2 Regquerystr木马解密出的配置信息

配置名称

内容

说明

binary

Gzip文件

压缩后的第二阶段载荷

binary_filename

/usr/sbin/mvld

第二阶段载荷释放名称

init_script_filename

com.apple.mvld.plist


mimic_bin_file

notifyd


mimic_init_file

com.apple.locationd.plist


2.2 后门程序

在投放载荷执行后,会释放一个后门程序mvld。该木马是Regquerystr释放的子程序,主要用于收集设备信息,以及与远程服务器通信,程序运行后会生成日志文件/private/var/tmp/.swapfile.tmp,并删除自身文件(/tmp/mvld),经分析,可将该木马合并入方程式组织的DoubleFantasy[9]攻击木马武器谱系。

表 2‑3 后门程序信息

原始文件名

Mvld

文件大小

117kb

文件格式

Mach-O executable

mvld后门程序路径如下:

2-7.jpg

图 2‑7 后门程序路径

mvld后门程序会访问远程控制服务器发送http请求,当C2域名无法访问时直接访问硬编码IP:

2-8.jpg

图 2‑8 向远程服务器发送请求

mvld后门程序配置了代理设置,采用neno客户端http协议。

2-9.jpg

图 2‑9 代理设置

mvld后门程序通过getuid、getpwuid可以获取设备帐号的用户名、密码、用户组等信息。

2-10.jpg

图 2‑10 获取设备信息

mvld后门程序同时也会读取/etc/passwd文件,获取登陆用户信息。

2-11.jpg

图 2‑11 获取登录用户信息

修改环境变量DYLD_INSERT_LIBRARIES:

2-12.jpg

图 2‑12 修改环境变量DYLD_INSERT_LIBRARIES内容

该样本有13个指令代码,功能与安天历史曝光过的方程式Windows和Solaris木马DoubleFantasy系列指令十分相似。

2-13.jpg

图 2‑13 指令代码

样本各个指令功能简要描述如下:

表 2‑3指令代码及对应功能

16进制指令代码

指令功能

0x42

流量包校验

0x4B

读取文件上传

0x60

收集大量信息回传(具体表2-4)

0x70

更新C2地址

0x75

修改心跳包间隔

0x76

更新配置文件

0x78

更新配置文件

0x79

更新配置文件

0x80

删除文件

0x92

接收文件执行

0x94

更新配置文件

0x95

执行程序

0xA2

更新配置文件

样本获取配置环境等信息后进行回传:

2-14.jpg

图 2‑14 获取环境和配置信息回传

获取信息格式说明:

表 2‑4获取环境和配置信息格式说明

标号

说明

标号

说明

标号

说明

000

MAC地址

033

未知

042

未知

001

未知

034

未知

043

语言

002

IP地址

035

操作系统类型

044

未知

003

未知

036

未知

045

系统运行时间

004