【编者按】本文来自乌云漏洞平台@蒸米、@迅迪。
我们苹果设备上的APP都是由苹果Xcode开发工具所编写,但Xcode体积过于庞大,如果在苹果官方商店安装会非常缓慢,于是很多开发者会在网盘或迅雷下载。但这些非官方渠道的Xcode竟然暗藏杀机,利用开发者感染了企业上架的APP……
所以这次事件的逻辑是:
黑客将包含恶意功能的Xcode重新打包,发到各大苹果开发社区供人下载;
来自于各企业内的开发者下载安装了包含恶意代码的Xcode编写APP;
恶意Xcode开始工作,向这些APP注入信息窃取功能;
被注入恶意功能的APP通过审核上架苹果官方商店;
用户在苹果商店安装了这些被感染的APP;
那么,现在已经发现被感染的APP有哪些呢?
0x00 目前发现的部分被感染APP
微博用户@图拉鼎 在本机上测试发现,已有10余个知名App中招:
网易云音乐(已回应确认)
滴滴出行
12306
中国联通手机营业厅
高德地图
简书
豌豆荚的开眼(已回应确认)
网易公开课
下厨房
51卡保险箱
同花顺
中信银行动卡空间
仍然不短增长中……
微博用户@not_so_bad 发现,微信 v6.2.5版受影响,@腾讯用户服务 其微博下评论确认存在,并表示目前最新版微信已修复。
目前微博、推特上仍有网友发现有新应用存在问题。
乌云建议,使用非官方渠道下载Xcode的iOS开发者请立刻展开自查,并对受影响版本进行处理。虽然目前还没发现问题应用会盗取用户敏感信息,但建议用户能开启iCloud二次验证,并保持良好的使用习惯。
0x01 序
事情的起因是@唐巧_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/”目录下发现的。
用ida打开,发现样本非常简单,只有少量函数。主要的功能就是先收集一些iPhone和app的基本信息,包括:时间,bundle id(包名),应用名称,系统版本,语言,国家等。如图所示:
随后会把这些信息上传到 init.icloud-analysis.com。如图所示:
http://init.icloud-analysis.com并不是apple 的官方网站,而是病毒作者所申请的仿冒网站,用来收集数据信息的。
目前该网站的服务器已经关闭,用whois查询服务器信息也没有太多可以挖掘的地方。这说明病毒作者是个老手,并且非常小心,在代码和服务器上都没有留下什么痕迹,所以不排除以后还会继续做作案的可能。
0x03 思考&总结
虽然XCodeGhost并没有非常严重的恶意行为,但是这种病毒传播方式在iOS上还是首次。也许这只是病毒作者试试水而已,可能随后还会有更大的动作,请开发者务必要小心。
这个病毒让我想到了UNIX 之父 Ken Thompson 的图灵奖演讲 “Reflections of Trusting Trust”。他曾经假设可以实现了一个修改的 tcc,用它编译 su login 能产生后门,用修改的tcc编译“正版”的 tcc 代码也能够产生有着同样后门的 tcc。也就是不论 bootstrap (用 tcc 编译 tcc) 多少次,不论如何查看源码都无法发现后门,真是细思恐极啊。
0x04 后续
我们将持续跟进这次事件。不过在网上,其实还有很多令人思考的地方,在文末也顺带给大家摘抄一部分:
微博用户@Saic
拿文件看了一下,这个木马劫持了所有系统的弹窗(例如 IAP 支付),然后向目标服务器发送了加密数据,目前还不知怎么解密发出去的请求
Drops读者yoyokko
基本确定病毒先将信息post到服务器,收到服务器返回后,connectiondidfinishloading里调用response的block代码,里面弹出alertview,如果这个alertview不是用来伪装icloud密码输入框岂不是被人发现了?不确定服务器是否有开关来选择性的弹出alertview。另外病毒有部分字符串被加密,病毒里还自带encrypt和decrypt函数,居心叵测!!千万别以为只上传了部分非隐私的信息就放松警惕!
Drops读者小奥
除了@图拉鼎 曝光的几个受到 XcodeGhost.Blackdoor 病毒的 App 外,我在 App Store 前50名里还找到了 @喜马拉雅FM 这个 App。另外,根据自测,我本人购买的 @名片全能王 和 @扫描全能王 同时中招。 今天自查的 app 出现此后门的有 滴滴出行 高德地图 喜马拉雅FM 名片全能王、扫描全能王、下厨房、51卡保险箱、同花顺、中信银行动卡空间、中国联通手机营业厅、简书、豌豆荚-开眼、网易公开课、网易云音乐、滴滴出行、12306。
Drops读者flz
有可能哦,曾经出现过在桌面没有什么操作也好几次莫名的弹出要求输入icloud密码的框框的现象,不知道和这个有没有关系。另外,我看了路由器上privoxy的日志,那个域名最早是9.1出现的。
Drops读者jijiji
想不通为啥这帮写代码的放着正版的,一键下载安装的,自动升级的xcode不用,非要跑去网盘上下xcode。而且网易这么大的公司对开发工具和环境没有管理么,没有流程么?感觉好山寨啊
为照顾用户体验,部分技术分析已做精简。欲了解更多细节以及开发者防范方案,可进入乌云平台原文查看。