趋势科技的安全专家在调查一起网络间谍活动时,发现了一款特别的iOS设备间谍程序。它可以窃取未越狱iOS用户的照片、短信、联系人列表和其他数据。但值得注意的是,这种恶意软件仍然无法在未经用户允许的情况下安装。
间谍活动背景
Operation Pawn Storm是一起有关经济、政治的网络间谍活动,主要目标是各国的军事、政府和媒体。这一活动从2007年就开始,一直活跃至今。
安全研究人员发现,该间谍活动主要使用了两款恶意程序:一个叫做XAgent,另一个叫做MadCap(与一款iOS游戏重名)。这些恶意间谍软件主要用于窃取iOS用户的私人数据、音频、截图等,然后将窃取到的数据传输到远程C&C(命令与控制)服务器上。
全面剖析XAgent
XAgent是一个功能强大的间谍程序。成功安装在iOS 7上之后,就会隐藏了图标,然后默默的在后台运行。当我们试图阻止其进程时,它会立即重新启动。但奇怪的是,XAgent在iOS 8 上却不会隐藏图标,也不会自动的重新启动。难道是XAgent的开发时间早于iOS 8?
数据窃取能力
攻击者开发该程序的目的是搜集iOS移动设备上的所有信息,包括:
1. 文本信息
2. 联系人列表
3. 图片
4. 地理位置数据
5. 音频数据
6. 安装的应用程序列表
7. 进程列表
8. Wi-Fi状态
图1
C&C通信
除了搜集信息外,它还会通过HTTP向外发送信息。
格式化的日志信息
该恶意程序的日志以HTML形式书写,并且还有颜色标识。错误的信息会显示红色,正确的信息会显示绿色。
图2
设计良好的代码结构
代码结构也是经过精心设计的,黑客们小心翼翼的维护着,并不断的更新。如下图:
图3
XAgent经常使用watch, search, find, results, open, close命令。
图4
随机生成URI
XAgent会根据C&C服务器模板随机生成URI(统一资源标识符)。
基本的URI如图4,程序会从图5所示的列表中选择参数拼接到基本URI中。
图5
下面是实现结果:
图6
图7
令牌(token)格式与编码
XAgent间谍程序会使用特定的令牌识别哪一个模块正在进行通信。该令牌使用Base64编码数据,但是要随意添加一个5字节的前缀,这样才看着像是一个有效的Base64数据。详见下图中第一行代码的“ai=”部分。
图8
通过逆向工程的话,我们还会发现XAgent的一些其他的通信功能。
图10
FTP通信
该应用程序还可通过FTP协议上传文件。
图11
剖析MadCap
MadCap和XAgent很相似,但是MadCap只能安装在越狱后的苹果设备上,对非越狱设备不起任何作用。
图12
感染方式
目前为止,我们可以确定的iOS设备无须越狱也会感染恶意程序XAgent。
我们已经发现了一个真实案例:用户设备上会出现一个“点击此处安装应用程序”的诱惑链接,地址为:https://www.{BLOCKED}/adhoc/XAgent.plist。受害者只需简单的点击图片中的链接就中招了,
恶意程序程序通过苹果的“特别通道”传播——该通道原本是便于企业和开发者部署应用而设置的,它允许软件安装绕过App Store。
图13
安全建议
即使你使用的是未越狱的iPhone或iPad,现在,你也要多留个心眼了——不要点击任何可疑链接。