当前位置:安全客 >> 知识详情

XCode编译器里有鬼 – XCodeGhost样本分析

2015-09-17 18:14:59 阅读:14164次 收藏 来源: drops.wooyun.org 作者:Wooyun

http://p7.qhimg.com/t019c3fd6fb126f98b2.jpg

0x00 序


事情的起因是@唐巧_boy在微博上发了一条微博说到:一个朋友告诉我他们通过在非官方渠道下载的 Xcode 编译出来的 app 被注入了第三方的代码,会向一个网站上传数据,目前已知两个知名的 App 被注入。


enter image description here


随后很多留言的小伙伴们纷纷表示中招,@谁敢乱说话表示:”还是不能相信迅雷,我是把官网上的下载URL复制到迅雷里下载的,还是中招了。我说一下:有问题的Xcode6.4.dmg的sha1是:a836d8fa0fce198e061b7b38b826178b44c053a8,官方正确的是:672e3dcb7727fc6db071e5a8528b70aa03900bb0,大家一定要校验。”另外还有一位小伙伴表示他是在百度网盘上下载的,也中招了。

0x01 样本分析


在@疯狗 @longye的帮助下,@JoeyBlue_ 为我们提供了病毒样本:CoreService库文件,因为用带这个库的Xcode编译出的app都会中毒,所以我们给这个样本起名为:XCodeGhostCoreService是在”/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/Library/Frameworks/CoreServices.framework/”目录下发现的,这个样本的基本信息如下:

1

2

3

4

5

6

7

8

9

10

$shasum CoreService

f2961eda0a224c955fe8040340ad76ba55909ad5  CoreService

$file CoreService

CoreService: Mach-O universal binary with 5 architectures

CoreService (for architecture i386):    Mach-O object i386

CoreService (for architecture x86_64):  Mach-O 64-bit object x86_64

CoreService (for architecture armv7):   Mach-O object arm

CoreService (for architecture armv7s):  Mach-O object arm

CoreService (for architecture arm64):   Mach-O 64-bit object

用ida打开,发现样本非常简单,只有少量函数。主要的功能就是先收集一些iPhone和app的基本信息,包括:时间,bundle id(包名),应用名称,系统版本,语言,国家等。如图所示:


enter image description here


随后会把这些信息上传到 init.icloud-analysis.com。如图所示:


enter image description here


http://init.icloud-analysis.com并不是apple 的官方网站,而是病毒作者所申请的仿冒网站,用来收集数据信息的。


enter image description here


目前该网站的服务器已经关闭,用whois查询服务器信息也没有太多可以挖掘的地方。这说明病毒作者是个老手,并且非常小心,在代码和服务器上都没有留下什么痕迹,所以不排除以后还会继续做作案的可能。

0x02 检测方法


为了防止app被插入恶意库文件,开发者除了检测”/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs” 目录下是否有可疑的framework文件之外,还应该检测一下Target->Build Setting->Search Paths->Framework Search Paths中的设置。看看是否有可疑的frameworks混杂其中:


enter image description here


另外因为最近iOS dylib病毒也十分泛滥,为了防止开发者中招,支付宝的小伙伴还提供了一个防止被dylib hook的小技巧:在Build Settings中找到“Other Linker Flags”在其中加上”-Wl,-sectcreate,__RESTRICT,__restrict,/dev/null”即可。


enter image description here


最后的建议是:以后下载XCode编译器尽可能使用官方渠道,以免app被打包进恶意的病毒库。如果非要用非官方渠道,一定要在下载后校验一下哈希值。

0x03 思考&总结


虽然XCodeGhost并没有非常严重的恶意行为,但是这种病毒传播方式在iOS上还是首次。也许这只是病毒作者试试水而已,可能随后还会有更大的动作,请开发者务必要小心。这个病毒让我想到了UNIX 之父 Ken Thompson 的图灵奖演讲 “Reflections of Trusting Trust”。他曾经假设可以实现了一个修改的 tcc,用它编译 su login 能产生后门,用修改的tcc编译“正版”的 tcc 代码也能够产生有着同样后门的 tcc。也就是不论 bootstrap (用 tcc 编译 tcc) 多少次,不论如何查看源码都无法发现后门,真是细思恐极啊。

关联文章:http://bobao.360.cn/learning/detail/673.html?preview=1



本文转载自 drops.wooyun.org
原文链接:http://drops.wooyun.org/news/8864?url_type=39&object_type=webpage&pos=1

参与讨论,请先 | 注册 | 匿名评论
发布
用户评论
嘻哈猴 2015-09-18 22:53:44
回复 |  点赞

前排~出售瓜子饮料

黑帽子 2015-09-18 16:39:22
回复 |  点赞

我去,几十万APP受影响啊!

查看更多