让微信等知名 APP 都中招的 XcodeGhost 事件全面详细回顾

9月18日,我们在「iOS大全」(iOShub)微信已做过首次汇总。19日晚,「程序员的那些事」主页君根据当前网上相关信息,按照时间线,再次做一次更全面汇总。

 

2015-09-14

国家互联网应急中心 发布预警

不过这个公告,绝大多数开发者,也是昨天开始才知道的。

2015-09-16

腾讯安全响应中心称,「发现 App Store上的 TOP5000 应用有 76 款被感染,于是我们向苹果官方及大部分受影响的厂商同步了这一情况。」

 

2015-09-17

XcodeGhost 事件在网上升温发酵

【9:45】唐巧 发了一条微博:

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

 

【16:00】国外安全公司 paloalto 发现了 XcodeGhost 问题,并发布第一版分析报告

【17:43】阿里的蒸米、迅迪发布了他们文章:《 XCode 编译器里有鬼,XCodeGhost 样本分析

@程序员的那些事 主页君注:内容为节选,有删减)

虽然 XCodeGhost 并没有非常严重的恶意行为,但是这种病毒传播方式在iOS上还是首次。也许这只是病毒作者试试水而已,可能随后还会有更大的动作,请开发者务必要小心。

这个病毒让我想到了UNIX 之父 Ken Thompson 的图灵奖演讲 “Reflections of Trusting Trust”。他曾经假设可以实现了一个修改的 tcc,用它编译 su login 能产生后门,用修改的tcc编译“正版”的 tcc 代码也能够产生有着同样后门的 tcc。也就是不论 bootstrap (用 tcc 编译 tcc) 多少次,不论如何查看源码都无法发现后门,真是细思恐极啊。

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

 

2015-09-18

第一批受感染的 APP 陆续被曝光

【14:14 】开始,@图拉鼎  在微博持续发布了由他测试验证受感染的 APP,至少包括如下:

  • 网易云音乐
  • 滴滴出行
  • 12306
  • 中国联通手机营业厅
  • 高德地图
  • 豌豆荚的开眼
  • 网易公开课
  • 下厨房
  • 51卡保险箱(金融应用)
  • 同花顺
  • 中信银行动卡空间

这个列表出来后,令人震惊。

【15:43】网易云音乐发公告

摘几个网友对该公告的评论:

@吴明prfc :

这公告,用被小偷改造的工具,导致被偷。给你说小偷走了,没威胁了,大家放心

@祝佳音:

翻译:虽然我们愚蠢又无能,也不知如何收拾残局,但不知道为什么,好像敌人暂时没动静了。这件事就当没发生,就当没发生!

【19:17】@Saic 童鞋发布《XcodeGhost 实际用途猜测分析》,给出了 XG  木马的逻辑:

在用户安装了目标应用后,木马会向服务器发送用户数据。

服务器根据需要返回模拟弹窗。

弹窗可以是提示支付失败,请到目标地址付款,也可以是某个软件的企业安装包。

用户被诱导安装未经审核的安装包后,程序可以调用系统的私有 API,实现进一步的攻击目的。

 

木马中还有一些调用应用内购的攻击逻辑,就不展开说明了。

如果之前有遇到任何程序弹出非系统需要输入 Apple ID 或密码的网站,并输入过密码的,还请尽早修改。

全文:http://weibo.com/p/1001603888503866975286

 

【21:02】微博上曝光了第二份受感染的 APP 列表:


(右侧是版本信息)

 

【21:43】中招的@腾讯微信团队 在微博发声明,里面提到:

1.该问题仅存在iOS 6.2.5版本中,最新版本微信已经解决此问题,用户可升级微信自行修复,此问题不会给用户造成直接影响。

全文:http://weibo.com/p/1001603888540667758451

 

2015-09-19

【凌晨 4:39】自称 XcodeGhost 作者的网友在微博发声明,称只是实验项目,无任何威胁

以下引用部分微博上针对该声明的评论:

@唐巧_boy:我刚刚看了一下作者放出的源码,和逆向出来的代码行为一致,应该是真的。

@南非蜘蛛:你有点小调皮,想进监狱了是吧?

@Daniel_K4:作者是实验么?持续传播了半年,我不太相信。。。现在才出来发布说明,应该是被定位到吓坏了吧。

@Livid:一个程序员出于试验目的做的修改版 Xcode.dmg 能够通过自然分发的方式装到那么多重要 App 的开发环境里,也是一件挺不可思议的事情。

@Easy:翻一下就是「我就配了把你家钥匙。还没开始偷东西呢,当然是无害了」。

@tombkeeper 事闹大了,就会变成公安部督办案件,就几乎一定能破案,几乎一定能抓到人。这时候无论自首还是跑路都比发“澄清”有意义得多。

@onevcat:算个账,微信用户总数 5 亿日活70%。每天每人就算5个POST请求,每个请求300Byte,日流入流量就接近500G,以及17.5亿次请求。据说服务器扔在亚马逊,那么资费算一下每个月应该是存储$450,请求$260K。这还只是单单一个微信,再算上网易云音乐等等,每月四五十万刀仅仅是苦逼iOS开发者的个人实验?

2015-09-19  上午

为避免给更多用户造成可能是伤害,苹果公司开始下架受感染的 APP,并给相应开发商发邮件

图来自@小小小小_灿,可能看不清。在邮件中,苹果也说明了重新上架的条件:

  1. 从官方下载 Xcode;
  2. 重新编译打包;
  3. 提交等待审核;

 


【开发圈和安全圈的事后讨论】

(不分时间顺序)

@Saic:

苹果以审核严格著称,为何会允许应用上架???

 

恶意代码加载到程序中后,将收集到的用户信息加密,发送到远程服务器。

收集的信息包括系统版本,程序名称,用户的唯一识别 ID,语言等非敏感信息。

对苹果来说,这段代码与普通的第三方统计代码并没有区别,甚至你在使用一些程序内的微博登陆或微信分享功能时,微博和微信都可能会收集这些信息到自己的服务器。

因为没有涉及到苹果禁止开发者使用的接口,一切看起来都很正常,所以带有恶意代码的应用可以正常发布到 App Store。

 

对我有什么影响???

根据目前的研究进展以及自称是开发者公布的恶意代码源码,代码主要做了以下事情:

在用户安装了目标应用后,木马会向服务器发送用户数据。

服务器会返回一些可以让程序弹出提示的控制代码,例如:

  • 用户名密码错误,请到以下地址修改,用户确认后跳转到一个伪造的钓鱼网站
  • 弹出 App Store 官方的应用下载页面,诱导用户下载
  • 程序有升级,用户确认后可以利用非官方渠道、修改过的应用替换掉当前应用
  • 其他非官方应用程序的推广和下载

因为弹窗是从用户信任的应用里弹出,很多时候不会多做怀疑就会授权或确认下载。

另外根据相关研究,代码可能存在多种变种 [ 3 ],可能存在直接窃取用户 Apple ID 的版本,模拟系统登陆框在技术上是可行的。

Via: http://weibo.com/p/1001603888803550000430

 

@图拉鼎:

对于 iOS 开发者的建议,立即删除从不明来源下载的 Xcode,即使你是用官方地址然后在迅雷上下载的,最后从 App Store 安装最新版本的 Xcode。有条件的公司应该在今天开始专门设置一台有专人管理的 Build Server,所有发布至 App Store 的 App 只能从该台电脑 Build 并发布,以防止未来此类事件的再现。

 

@sunny_THU:

2. 这件事情是不是很严重

可以说很严重,也可以说不严重。说这件事情很严重,是因为我们把程序的控制权分享分享给了第三个人,他可以做任何程序内部的操作,包括监控输入,支付,跳转,用户的内容等行为(但也仅限于单个中毒的app内部,系统层的内容和别的app的内容是拿不到的,这里就不得不感谢苹果的沙盒机制,在机制上保护了一定的安全性),并且这次攻击证明根本上苹果软件的开发和提交机制是有漏洞的,更严重的问题是会不会已经有了一些别的病毒在软件中,只是没有被发现。 不严重是因为这次的病毒如果按照木马作者披露的源码,并没有做严重损害用户隐私的事情(一些安全机构逆向了源码,基本和作者公开的代码符合 http://security.tencent.com/index.php/blog/msg/96 )。

3. 怎么避免这种事情

“程序最大的bug不是程序自身,而是人”。这次事件是各种因素一起影响的结果,开发者根本没有意识到Xcode都会被攻击,国内网络环境太差,公司不配备VPN等等。而开发者作为软件的开发者和安全的负责人以及直接责任人更需要去规范和争取,因为你比其他人知道的更多,也更清楚问题有多严重。

 

@TK 教主:

2015 年 3 月 10 日的这篇文章透露:美国圣地亚国家实验室在 2012 年 CIA 的秘密会议“Jamboree”上提出被称作“Strawhorse”的攻击方式:通过修改 Xcode 使开发商不知情地发布带有后门的 APP。“codefun” 开始散布修改后的 Xcode 是在 3 月中旬,不知道是不是受了这个启发。

 

@月光博客:

迅雷的回应如下:对于Xcode被植入恶意代码一事,有猜测称迅雷服务器受到感染,导致使用迅雷会下载到含有恶意代码的Xcode。迅雷第一时间安排工程师进行检测,并对比了离线服务器上的文件,结果都与苹果官方下载地址的文件信息一致。也就是说,官方链接的Xcode经迅雷下载不会被植入恶意代码。

XcodeGhost事件并不表明苹果iOS的安全性相比安卓有什么问题,实际上,就开发环境来说,安卓实际上也是一样的,苹果的开发软件下载速度慢,而安卓的开发软件不翻墙根本无法从官网下载,大量安卓开发者都不是从官网下载的开发环境,很多开发工具来路不明,因此安卓很可能也存在类似问题。

 

@唐巧:

XcodeGhost 这件事情,苹果自己也有责任,Mac App Store下载速度慢得要死,每次下Xcode花个几十分钟非常正常,这才造成大家都用迅雷和百度网盘这种非官方渠道。就说现在吧,我的Mac系统更新了一上午,还是处于卡顿无进度状态。[泪]

 

@腾讯玄武实验室:

虽然目前 init.icloud-analysis.com 等 XcodeGhost 相关域名已经不可访问,XcodeGhost 的始作俑者可能也不会再利用其干坏事,但这并不代表其他人不会。

有心干坏事的人,可以通过 DNS 投毒、伪造 WiFi 接入点等手段,控制或大或小的一个地区对 init.icloud-analysis.com 等域名的解析,从而变成 XcodeGhost 的控制者。所以受影响的 APP 开发商还是应该尽快发布干净的版本让用户升级。

 

 


【主页君留言】:今天这篇耗时 2+ 小时。如果各位觉得不错,请分享给其他朋友。

微信号:iProgrammer

(长按上图,可自动识别二维码)

其他媒体和公号若转载

必须保留全文完整内容,包括本段声明和二维码图片

 

让微信等知名 APP 都中招的 XcodeGhost 事件全面详细回顾,首发于博客 – 伯乐在线