作者: 蒸米,迅迪 @阿里移动安全
0x00 序
[email protected]_boy在微博上发了一条微博说到:一个朋友告诉我他们通过在非官方渠道下载的 Xcode 编译出来的 app 被注入了第三方的代码,会向一个网站上传数据,目前已知两个知名的 App 被注入。
随后很多留言的小伙伴们纷纷表示中招,@谁敢乱说话表示:”还是不能相信迅雷,我是把官网上的下载URL复制到迅雷里下载的,还是中招了。我说一下:有问题的Xcode6.4.dmg的sha1是:a836d8fa0fce198e061b7b38b826178b44c053a8
,官方正确的是:672e3dcb7727fc6db071e5a8528b70aa03900bb0
,大家一定要校验。”另外还有一位小伙伴表示他是在百度网盘上下载的,也中招了。
0x01 样本分析
[email protected] @longye的帮助下,@JoeyBlue_ 为我们提供了病毒样本:CoreService
库文件,因为用带这个库的Xcode编译出的app都会中毒,所以我们给这个样本起名为:XCodeGhost
。CoreService
是在”/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/Library/Frameworks/CoreServices.framework/
”目录下发现的,这个样本的基本信息如下:
#!bash
$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(包名),应用名称,系统版本,语言,国家等。如图所示:
随后会把这些信息上传到 init.icloud-analysis.com。如图所示:
http://init.icloud-analysis.com
并不是apple 的官方网站,而是病毒作者所申请的仿冒网站,用来收集数据信息的。
目前该网站的服务器已经关闭,用whois查询服务器信息也没有太多可以挖掘的地方。这说明病毒作者是个老手,并且非常小心,在代码和服务器上都没有留下什么痕迹,所以不排除以后还会继续做作案的可能。
0x02 检测方法
为了防止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
”即可。
最后的建议是:以后下载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
所以如果在非App Store下载的各位开发者们可以用shasum校验一下自己下载的Xcode 7是否是原版。
2 @FlowerCode同学通过分析流量发现病毒开发者的服务器是搭建在Amazon EC2的云上的。服务器已经关闭 。
3 根据palo alto networks公司爆料,被感染的知名App Store应用为”网易云音乐”!该app应用在AppStore上的最新版本2.8.3已经确认被感染。并且该应用的Xcode编译版本为6.4(6E35b),也就是XcodeGhost病毒所感染的那个版本。网易云音乐在AppStore上目前的状态:
"网易云音乐"逆向后的函数列表,可以找到XcodeGhost所插入的函数:
受感染的"网易云音乐"app会把手机隐私信息发送到病毒作者的服务器”init.icloud-analysis.com”上面:
4 根据热心网友举报,投毒者网名为”coderfun”。他在各种iOS开发者论坛或者weibo后留言引诱iOS开发者下载有毒版本的Xcode。并且中毒的版本不止Xcode 6.4,还有6.1,6.2和6.3等等。
5 根据热心网友提醒,我们在中信银行信用卡的应用”动卡空间”中也发现了被插入的XcodeGhost恶意代码,受感染的版本为3.4.4。
被插入的部分恶意代码如下:
6 在@Saic
的提示下我们发现受感染的app还拥有接收黑客在云端的命令并按照黑客的指令发送URLScheme的能力:
URLScheme是iOS系统中为了方便app之间互相调用而设计的。你可以通过一个类似URL的链接,通过系统的Openurl来打开另一个应用,并可以传递一些参数。一个恶意的app通过发送URLScheme能干什么呢?
<1>. 可以和safari进行通讯打开钓鱼网站。
<2>. 可以和AppStore进行通讯诱导用户下载其他AppStore应用。
<3>. 可以和itms-services服务通讯诱导用户下载无需AppStore审核的企业应用。
<4>. 向支付平台通讯发送欺骗性的支付请求等。
7 目前已经官方确认中毒的app有:微信,网易云音乐,豌豆荚的开眼等。
0x05 病毒作者现身
微博地址:http://weibo.com/u/5704632164
发表长微博内容:
"XcodeGhost" Source 关于所谓”XcodeGhost”的澄清
首先,我为XcodeGhost事件给大家带来的困惑致歉。XcodeGhost源于我自己的实验,没有任何威胁性行为,详情见源代码:https://github.com/XcodeGhostSource/XcodeGhost
所谓的XcodeGhost实际是苦逼iOS开发者的一次意外发现:修改Xcode编译配置文本可以加载指定的代码文件,于是我写下上述附件中的代码去尝试,并上传到自己的网盘中。
在代码中获取的全部数据实际为基本的app信息:应用名、应用版本号、系统版本号、语言、国家名、开发者符号、app安装时间、设备名称、设备类型。除此之外,没有获取任何其他数据。需要郑重说明的是:出于私心,我在代码加入了广告功能,希望将来可以推广自己的应用(有心人可以比对附件源代码做校验)。但实际上,从开始到最终关闭服务器,我并未使用过广告功能。而在10天前,我已主动关闭服务器,并删除所有数据,更不会对任何人有任何影响。
愿谣言止于真相,所谓的"XcodeGhost",以前是一次错误的实验,以后只是彻底死亡的代码而已。
需要强调的是,XcodeGhost不会影响任何App的使用,更不会获取隐私数据,仅仅是一段已经死亡的代码。
再次真诚的致歉,愿大家周末愉快
为什么不用原厂的,我相信你们英语都能看懂啊,
根据seo的情况个人感觉不太像单人作战,更像团体作战,如果真是作者自己一个人的试验,则让我想起一句电影台词:有时候正是人们不报期望之人,做出了人们不敢期望之事。
下载没有感染哈。。。
有种预感,这只是一个开始。。。
xcode不是免费的吗 为什么不去appstore下 就算是黑苹果也能进appstore下载软件啊 用得着在第三方渠道下吗
还好作者只是小试牛刀做个统计
离线下载有毒,p2p有毒,墙大赞,哈哈哈哈
卸载了网易云就可以了吗?
通过迅雷下载的同学也检查下```有木有病毒
@迅雷强伊文 刚下了遍X7是4afc0开头的
@迷糊蛋 商店下载是要输密码啊 几个APP一起下载只要输一次
有恶意代码的APP苹果也给审核通过?
官方的被墙进不来,墙内第三方提供的居然带毒。。GFW万岁
那iPad有影响么?都是iOS设备
一大波中病毒app来袭,1.网易云音乐 2.微信 版本6.2.5 3.滴滴打车 4.12306 5.中信银行动卡空间 6.下厨房 7.51卡保 8.中国联通 9.高德地图 10.简书 11.豌豆荚的开眼 12.网易公开课 13.下厨房 14.51卡保险箱 15.同花顺 16.Lifesmart 17.马拉马拉 18.药给力 19.喜马拉雅 20.口袋记账 21.有货 23.股票雷达
居然连程序猿的开发工具都被黑了,太狠了!
偶尔几个人而已,不至于说公司吧
iOS用户请注意最近下载的APP!如果之前有遇到任何程序弹出非系统需要输入 Apple ID 或密码的网站,并输入过密码的,还请尽早修改!暂时已知受影响的:中国联通的手机营业厅;高德地图;简书;豌豆荚的开眼;网易公开课;滴滴出行;网易云音乐;12306;下厨房;51卡保险箱;同花顺;中信银行动卡空间。
赞!
瞬间觉得老人机的胜利��
大炸弹被引爆了……后面的问题是,用户一旦有损失责任应该算谁头上?APP的开发这貌似也算是受害者……
有免费正版不去下……
细思恐极,顿时觉得自己的手机不安全了
吓得我赶紧重装一遍Xcode压压惊
大如网易这样的公司竟然也会犯这样的低级错误. 这个锅真的无法甩给GFW
火钳刘明
我有朋友的手机电脑出现问题了。 苹果 账号密码被盗,手机和电脑同时被远程刷机删账号
醉了…网易云音乐也中招了
原来开发者也有那么多蠢货啊
软件还是尽量从官方渠道下载好。大概6年前曾经爆出有个汉化版的PuTTY会将用户输入的账号和密码发送到特定邮箱。
出了事大家开始互相埋怨了
哎
由于 App 开发者使用非苹果公司官方渠道的 Xcode 工具开发 App 时,会向正常的 App 中植入恶意代码,目前了解到此恶意代码会上传 App 内使用信息并非用户隐私信息,但也有 iCloud 弹窗反复出现要求输入密码。
光润通专注于研发、生产、销售光纤网络产品,核心产品主要有光纤网卡、光纤模块、波分设备、光纤收发器、光纤跳线、光分路器等。
有没有大神用普通话解释下这个东西对普通用户有啥影响啊?拜谢……
@共匪 这是有何不满么
喜闻乐见
ios也不靠谱了诶
要是官方能流畅的下,誰脑子有坑去第三方下啊
@test 看微博链接
看微博链接,怎么会没有呢?
init.icloud-analysis.com->104.238.125.92(2015-04)->xyzhushou.me
->(?)weibo.com/xyzhushou
雷锋不谢,剩下的看各位自行研判了
我查了一下我的xcode都没得
Apple 该出手了。对服务器上的所有app扫描。下架相关 并公布名单给用户。
@疯狗 难道之前的yanzhaomen?就是因为?
有 Twitter 网友使用 Charles 软件分析得到,至少有新版网易云音乐、中信银行动卡空间、12306 和滴滴打车等应用被注入 XcodeGhost 代码。
我深信,此刻我手机里中招的iOS app不止网易云音乐。想起来当年Ken Thompson宣称编译器里留后门的历史了。当然如今这事往深了想可以发散很多:国内出境网络质量;外企在国内布cdn的政策;几乎被滥用的各种“云网盘式”分发模式,开发环境自身的安全性完整性验证;乃至广告刷榜的app运营模式问题。
撇开技术不谈,看看作者所在公司正在推广的某音乐,似乎明白了什么
所以同时核对文件大小,MD5值,和SHA1很有必要
Reflections on trusting trust: http://t.cn/RwAyvkF
事实又一次证明了,除了官网和MAS下载的,其余渠道来的软件都会有问题!
ftmdx啊 窝也中招了
@yoyokko
关注,这应该是一个开始而已。
其实比较好玩的是明明网易云音乐是最大受害者,结果原链接里的评论一溜烟地骂“垃圾网易!”
iOS版本已中招,那OS X上的网易云音乐也不能幸免吧?
我擦!网盘的不会有问题吧!
QQ音乐,嘀嘀打车,==,很多app都有这个问题,搞得好像就这一个有问题一样。你也是真蛋疼!
想知道,网易云音乐的木马,会导致什么情况??
那些用过不明渠道的 putty, SecureCRT 的网易同学都毕业了吗?
这他妈的……
时间,bundle id(包名),应用名称,系统版本,语言,国家
还好没用过网易云音乐。。。
擦,好多人中招了要
估计国内80%的IDE都是第三方下载的
传说中的ios牛逼哄哄的App审核呢?
警惕!网易云音乐APP已被证实受到此次Xcode恶意打包IDE事件影响,目前该感染版本依然在App Store线上,国内开发者们真的需要重视并且立刻自查,立刻!
把病毒framework删掉后就不能真机调试了,提示找不到文件,Build Settings里面也已经把相关信息也删除了还是提示找不到文件,clean和删除app都没用,模拟器倒是没问题,求解
唉╯▂╰,感觉什么都不安全了
干得好
棒棒哒→_→
还能不能好好地玩耍
动作好快,这么快就有分析报告了
大鱼吃小鱼,小鱼吃虾米
细思极恐啊
nsa?
那个把官网URL复制到迅雷里下载还出问题的是怎么做到的?迅雷难道不比较哈希值吗
谜解开了,但是感觉这就是个开始。