微信号:gh_38e8b1223e2a

介绍:阿里聚安全是一个移动安全开放平台,凝聚阿里巴巴多年来在无线业务安全防御的成功经验和技术成果,并面向开发者和企业提供恶意代码检测、漏洞扫描、仿冒应用检测、应用加固、安全组件等服务,一站式解决应用的安全...

XcodeGhost事件全程回顾,阿里移动安全蒸米重磅分析

2015-09-19 11:47 蒸米 迅迪


2015914日,CNCERT发布了一篇《关于使用非苹果官方XCODE存在植入恶意代码情况的预警通报》,声称开发者使用非苹果公司官方渠道的XCODE工具开发苹果应用程序(苹果APP)时,会向正常的苹果APP中植入恶意代码。被植入恶意程序的苹果APP可以在App Store正常下载并安装使用。该恶意代码具有信息窃取行为,并具有进行恶意远程控制的功能。

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

1 样本分析

事件发生后,阿里移动安全部第一时间拿到了样本。病毒样本为CoreService库文件,因为用带这个库的Xcode编译出的app都会中毒,所以我们给这个样本起名为:XcodeGhostCoreService是在”/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/Library/Frameworks/CoreServices.framework/”目录下发现的,这个样本的基本信息如下:


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


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

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


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

2 检测方法

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

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


3 建议

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

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

4 追加更新

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


2. @FlowerCode同学通过分析流量发现病毒开发者的服务器是搭建在Amazon EC2的云上的。虽然服务器已经关闭,但我们已经联系到上了Amazon Security Team的同学去调查log了。欲知后事如何,敬请期待我们后续的分析报道。


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



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


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


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



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



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


6. @Saic的提示下我们发现受感染的app还拥有接收黑客在云端的命令并按照黑客的指令发送URLScheme的能力:

URLSchemeiOS系统中为了方便app之间互相调用而设计的。你可以通过一个类似URL的链接,通过系统的Openurl来打开另一个应用,并可以传递一些参数。一个恶意的app通过发送URLScheme能干什么呢?

<1>.可以和safari进行通讯打开钓鱼网站。

<2>.可以和AppStore进行通讯诱导用户下载其他AppStore应用。

<3>.可以和itms-services服务通讯诱导用户下载无需AppStore审核的企业应用。

<4>.向支付平台通讯发送欺骗性的支付请求等。

7. 目前已经官方确认中毒的app有:微信,网易云音乐,豌豆荚的开眼等。




5 病毒作者现身

919日病毒作者在新浪微博上发表了声明:




关注阿里聚安全公众号,了解XcodeGhost事件最新进展。



阿里聚安全(jaq.alibaba.com)是阿里移动安全团队多年风险防控技术的结晶,为开发者提供移动应用安全为核心的开放平台,集APP风险发现、风险解决、风险持续监测、业务风险控制为一体,提供了金融级的安全、立体式的防护,助力开发者实现梦想。


 
阿里聚安全 更多文章 「天下无贼」2015阿里安全峰会重磅来袭! 超86%APP存漏洞 — 阿里安全推聚安全平台解决方案 新加坡之旅:阿里移动安全参展RSA安全大会 【第十四届中国互联网大会顺利闭幕】阿里聚安全被评为移动安全指定安全检测机构 【新加坡之旅】阿里安全首次在RSA新加坡会议上展示安全能力
猜您喜欢 7月24日华为认证HCNA/HCNP就要开课啦 程序员如何经营个人品牌 安全模式:天猫App启动保护实践 套路不深为何还中招?刷爆朋友圈的“性格测试”惊人内幕竟然是… Webpack Dashboard迅速流行,Webpack构建信息一目了然