XcodeGhost,一个潜伏在开发工具 Xcode 中的幽灵,用半年时间非法收集了无数用户隐私数据。
Xcode 是由苹果公司开发,运行在操作系统 Mac OS X 上的集成开发工具(IDE),以快速、高效、便捷著称,是目前开发 Mac OS 和 iOS 应用程序的最快捷最普遍的方式。
万万没想到的是昨日 XcodeGhost 病毒爆出,该病毒通过非官方下载的 Xcode 传播,能够在开发过程中通过 CoreService 库文件进行感染,使编译出的 App 被注入第三方的代码,向指定网站上传用户数据。
事件回顾:持续扩大的XCodeGhost 感染名单
早在 9 月 14 日,CNCERT(国家互联网应急中心)便发布通报,称「非苹果官方 XCODE 存在植入恶意代码情况」:
近日,CNCERT 监测发现,开发者使用非苹果公司官方渠道的 XCODE 工具开发苹果应用程序(苹果 APP)时,会向正常的苹果 APP 中植入恶意代码。被植入恶意程序的苹果 APP 可以在 App Store 正常下载并安装使用。该恶意代码具有信息窃取行为,并具有进行恶意远程控制的功能。
目前,CNCERT 正在加强分析,并将此预警信息通报相关开发者或互联网企业,在开发苹果 APP 过程中,切勿使用非苹果官方渠道的 XCODE 工具,以维护广大用户的个人信息安全。
昨日,用户蒸米于国内著名第三方安全问题反馈平台乌云发文《XCode 编译器里有鬼 – XCodeGhost 样本分析》文中称非官方渠道下载的 Xcode 编译出的 app 被注入了第三方的代码,如果用户使用被感染的 Xcode 所编译出的 App,会定向向一个网站上传用户数据。
受感染的 App 会将手机隐私信息发送到病毒作者的服务器
「主要的功能就是先收集一些 iPhone 和 app 的基本信息,包括:时间,Bundle ID(包名),应用名称,系统版本,语言,国家等。」
微博用户 @Saic 继续调查,发现攻击者会利用服务器返回模拟弹窗,「提示支付失败请到目标地址付款,也可以是某个软件的企业安装包。用户被诱导安装未经审核的安装包后,程序可以调用系统的私有 API,实现进一步的攻击目的。」即,当你在中招的 App 里完成了一次 IAP 内购,比如云音乐的付费音乐包,无论是输入密码还是 Touch ID,一段加密的数据即发往了目标服务器。目前尚不知加密的内容是什么。
经 iOS 开发者、微博用户 @ 图拉鼎 测试,网易云音乐、滴滴出行、12306、中国联通手机营业厅、简书、开眼、网易公开课、下厨房、51 卡保险箱、同花顺、中信银行动卡空间均被 XcodeGhost 病毒感染,名单仍在持续更新中。常用应用如支付宝、新浪微博、知乎、QQ 邮箱、招商银行、中国银行、兴业银行、京东、淘宝、天猫、亚马逊 、大众点评、美团、糯米经测试,目前版本仍是安全的。
「极客公园」在第一时间联系了苹果 App Store、Bug Report Team 和开发者中心,但至今未收到任何实质性回复。同时,「极客公园」从开发者处了解到,即便是通过专门针对星级开发者的「绿色通道」进行的反馈也未收到有效回复。
苹果官方邮件回复
「以往我们的邮件会在 1-2 个小时内有苹果的专人回复,但很奇怪,这次除了自动回复外什么都没有。」一位国内知名游戏的开发者向「极客公园」透露。
用非官方渠道 Xcode 开发 App 的原因,竟然是这个
一款免费开发应用,为什么不用官方发布的版本?
答案可能意想不到——Mac App Store 下载体验太糟糕了。
如果你用 Macbook,Mac App Store 每次的打开和下载一定会让你崩溃:界面常常无法加载一片空白、下载速度不仅慢还总是莫名其妙中断,Mac App Store 算得上 Mac 用户唯一用过一次不想打开第二次的应用。而它,正是 Xcode 的官方下载渠道。
Mac App Store 总是呈现一副无法访问的样子
我的一位朋友曾在 Mac App Store 中下载过 XCode,他是这样描述自己的体验的:
「我花了一天不停的重试,每次下载到三分之一左右就崩溃重试…我又不想用非官方渠道,没事儿就去点重试。大概一周后的某一天竟然莫名其妙的下载成功了。」
但大多数人恐怕等不了一周,他补充道:
「和我一起上 iOS 开发课的朋友们几乎用的都是老师给的网盘链接,或是上课前从 U 盘里拷贝的。全班似乎只有我一个人是从官方渠道下载的。」
而另一位朋友对于 Mac App Store 的评论是:
「不是体验差,是没体验。」
不仅网盘流传版本会将编译出的 App 注入第三方代码,就算你用迅雷指向官方网址的下载仍是感染版本。攻击者似乎成功感染迅雷离线服务器,如果没有对数字签名加以注意,很可能下载到的是被修改过的 Xcode 版本。(注:数字签名,指只有信息的发送者才能产生的别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明。)
据热心网友举报,投毒者网名为「coderfun」。他在各种 iOS 开发者论坛或者微博后留言引诱 iOS 开发者下载有毒版本的 Xcode。「并且中毒的版本不止 Xcode 6.4,还有 6.1,6.2 和 6.3 等等。」
开发者犯的错,用户没有选择权
搜集到的信息会被上传到 init.icloud-analysis.com,该域名并不是 Apple 的官方网站,而是病毒作者所申请的仿冒网站,用以收集数据信息。
有网友表示,「3 个相关域名共投放了 11 个静态 IP 地址以及两个 Amazon 的云主机,11 个地址均在美国。看访问量很夸张。此外我们从国外合作伙伴的数据看, 国外中招数目也不少, 但和国内还是差三个数量级。」
今年 2 月,蒸米还爆出可以在未越狱的 iPhone 上伪造弹窗进行钓鱼攻击
我们能怎么办?
一位网络安全工作者半开玩笑半认真的说:只能死一次。
「相关域名已经停止解析,服务器也停了,数据已经被人拿走了。每个人的身份证号只有一个,你说怎么解决这个问题呢?」
用户能做的非常有限。目前收集用户信息的服务器已关闭,卸载应用只是亡羊补牢。「用 whois 查询服务器信息也没有太多可以挖掘的地方。这说明病毒作者是个老手,并且非常小心,在代码和服务器上都没有留下什么痕迹,所以不排除以后还会继续做作案的可能。」
除了修改 iCloud 密码,用户似乎真的没有什么可以做的了。
「开发者犯的错,用户完全没有选择权。」一位开发者如是说。