一场深具你国特色的iOS开发工具Xcode遭恶意代码插入事件:GFW干扰CDN所以苹果 官网下载Xcode太慢,导致国内开发者使用百度云和迅雷等中国特色工具下载非官 方版本,外加没有校验hash的习惯,最终被下毒

一场深具你国特色的iOS开发工具Xcode遭恶意代码插入事件:GFW干扰CDN所以苹果官网下载Xcode太慢,导致国内开发者使用百度云和迅雷等中国特色工具下载非官方版本,外加没有校验hash的习惯,最终被下毒

据网友@唐巧_boy微博爆料,其朋友在第三方渠道下载的iOS开发工具xcode被插入恶意代码,会向一个网站上传数据,目前已知两个知名的App被注入。其中,“网易云音乐”不幸中招,该应用在AppStore上的最新版本2.8.3已经确认被感染。会将手机隐私信息发送到病毒作者的服务器 “init.icloud-analysis.com”上面,需要引起相关开发者和用户的注意。随后,众多网友均表示遭遇过此种情况。

80c9e57540d735d

据悉,通过在非官方渠道下载的Xcode编译出来的App被注入了第三方的代码,会向一个网站上传用户数据,数据包括一些iPhone和App的基本信息,例如时间,bundle id(包名),应用名称,系统版本,语言,国家等。

病毒作者随后会把这些信息上传到init.icloud-analysis.com,该网站并不是apple的官方网站,而是病毒作者所申请的仿冒网站。

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

此外,虽然XCodeGhost并没有非常严重的恶意行为,但是这种病毒传播方式在iOS上还是首次。

大概的情况就是:以网易云音乐、12306、联通营业厅,中信银行信用卡动卡空间为代表的一批知名APP,因为开发这些APP的人没有从官方的渠道下载开发工具XCODE而是在其它渠道下载的,导致他们搞出来的APP是带后门的,目前后门的危害还在确认,和你越狱不越狱没关系,你从APP Store里面下了,就中招了。

看到大家清一色在骂,我来解释一下吧,使用非官方 Xcode 的原因大多是:阅兵期间前后国外线路十分不稳定,高达 5G 大小的 Xcode 无法顺利下载。你们该骂谁心里清楚,别一遇到问题就把屎盆扣给一线开发者。

用非官方Xcode的估计都是嫌APP Store里的下载速度太渣了吧……然而大公司们用盗版这有点打脸了。这个玩的有点大啊,直接从开发工具源头加恶意代码,不给鸡蛋下毒直接给母鸡下毒的节奏?

连我这个半调子iOS程序猿都用的是官方版,为嘛大公司却从乱七八糟的地方下载Xcode?

中招APP

[+] 网易公开课
[+] 12306移动端
[+] 中信银行动卡空间
[+] 下厨房
[+] 中国联通手机营业厅
[+] 高德地图
[+] 简书
[+] 豌豆荚开眼
[+] 滴滴出行
[+] 51卡保险箱
[+] 同花顺 

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

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

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

0x01 样本分析

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

2015-9-18

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

2015091709411390450

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

2015091709411338910

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

2015091709411489731

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

0x02 检测方法

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

2015091709411423967

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

2015091709411432714

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

0x03 思考&总结

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

0x04 追加更新

1 很多开发者们担心最近下载的Xcode 7也不安全。这里笔者没有使用任何下载工具的情况在苹果官网上下载了Xcode_7.dmg并计算了sha1的值。

http://adcdownload.apple.com/Developer_Tools/Xcode_7/Xcode_7.dmg
$ shasum Xcode_7.dmg
4afc067e5fc9266413c157167a123c8cdfdfb15e Xcode_7.dmg

2015091718053535661

所以如果在非App Store下载的各位开发者们可以用shasum校验一下自己下载的Xcode 7是否是原版。

2 @FlowerCode同学通过分析流量发现病毒开发者的服务器是搭建在Amazon EC2的云上的。服务器已经关闭 。

2015091718053546275

3 根据palo alto networks公司爆料,被感染的知名App Store应用为”网易云音乐”!该app应用在AppStore上的最新版本2.8.3已经确认被感染。并且该应用的Xcode编译版本为6.4(6E35b),也就是XcodeGhost病毒所感染的那个版本。网易云音乐在AppStore上目前的状态:

2015091802455969853

2015091802502795111

“网易云音乐”逆向后的函数列表,可以找到XcodeGhost所插入的函数:

2015091802460165374

受感染的”网易云音乐”app会把手机隐私信息发送到病毒作者的服务器”init.icloud-analysis.com”上面:

2015091802460199903

4 根据热心网友举报,投毒者网名为”coderfun”。他在各种iOS开发者论坛或者weibo后留言引诱iOS开发者下载有毒版本的Xcode。并且中毒的版本不止Xcode 6.4,还有6.1,6.2和6.3等等。

2015091806281292667

2015091806281529651

2015091806282019630

5 根据热心网友提醒,我们在中信银行信用卡的应用”动卡空间”中也发现了被插入的XcodeGhost恶意代码,受感染的版本为3.4.4。

2015091806283265393

2015091806290111499

被插入的部分恶意代码如下:

2015091806290736196

这个事情跟苹果没一毛钱关系。 app 上传非隐私相关的使用数据是完全允许的,且不违反任何规则。审查是不会去审查这些东西的。

这事情跟黑苹果也没一毛钱关系,不论黑还是白,开发者都可以强行使用被修改过的 xcode 安装包。

最后,根本没有必要去算 hash 。任何在 mac 上运行的软件都是要有开发者签名的,否则 gatekeeper 会警告。被修改过的 xcode 开发包肯定是没有合法签名的。开发者安装的时候完全无视了 gatekeeper 的警告么?

这事已经闹两天了, coderfun 已经在第一时间把 Xcode7 正式版放上去了,说明他是非常活跃的,而他至今未现身留下任何辩解,所以 2 的可能性不是很大

XcodeGhost 可能的元凶是 XY 助手?

l2r1eVi

现在有三种可能性:
1. Coderfun 是 XY 助手专门用来干这个事儿的程序员;
2. Coderfun 和 XY 助手无关,只是一个离线包分享者,不小心从非官方途径获取了染毒的 Xcode 并且一直依附于该非官方渠道;
3. Coderfun 和 XY 助手等是合作关系。

评论

此博客中的热门博文

陈先生的抢救室|膜蛤文化流行背后的社会学意味

【河蟹档案】70后的痛:你硬时政策比你硬,政策软时你还软

Long live shadowsocks