9月18日,微信朋友圈开始流传一篇报道,一些第三方渠道下载的iOS开发工具Xcode被插入恶意代码,开发者用此工具编译的软件都自动被装入了木马,网易云音乐被证明中招。随后的几个小时,就像多米诺骨牌,数十个iOS App被证明受此影响,其中不乏“装机必备”的APP,如微信、12306手机客户端、滴滴打车(已更名为滴滴出行)、高德地图、中信银行行动卡空间、网易公开课、中国联通手机营业厅、简书、51卡保险箱、同花顺等的某些版本都曾被此开发工具感染。
经过多家技术公司安全专家的彻夜不眠,截止9月19日晨7点左右,已经统计出受影响的App已经多达近60款。据笔者在身边对近20个朋友做的小调查,目前没有发现哪个苹果终端没有安装任何一个涉事App,可以说,这次苹果终端几乎全军覆没。
Xcode到底是何方神圣?
Xcode 是苹果公司提供的开发OS X和 iOS上的集成开发工具(IDE)。换句话说,如果想开发在Mac系统和iPhone手机上的应用,Xcode基本上就是不二之选。
但考虑到直接访问苹果官方站点下载Xcode太慢等原因,许多程序员为了方便,会不选择从苹果网站直接下载官方提供的Xcode,而是选择从各大论坛、网盘上找第三方资源提供的Xcode程序。正是这个“图方便”给恶意代码形成了可乘之机。
为何此事影响如此巨大?
根据i春秋学院信息安全专家李肖介绍,本次事件的始作俑者网名为“coderfun”,他在Xcode中加入了一段代码,可将一些用户的数据信息传送到了一个假冒的苹果官网(目前该网站已经关闭)。
李肖介绍,携带恶意代码的Xcode压缩包文件先是被发布到了Douban, SwiftMi, CocoaChina, OSChina等几个论坛网站,然后又在百度云出现了大量下载文件。此外,它还成功感染了迅雷的离线服务器,也就是说,如果程序员常用下载软件是迅雷的话,就算输入苹果官网的地址下载下来的 dmg 仍然有可能是被修改过的!
应该承认,这种直接把恶意代码嵌入了开发工具源头的另类传播方式让其在传播广度上获得了非常好的效果——初步估计,目前受影响的用户已经达到数亿级别。
永信至诚创始人、被称为国内白帽黑客之父的蔡晶晶在接受采访时称,这次事件足以载入移动安全的史册,其对苹果开发工具感染的技巧堪与著名的伊朗铀浓缩设备被蠕虫损坏的震网事件相提并论。震网事件由于西门子工业开发集成工具WinCC中被入侵者感染了恶意代码,使与WinCC连接的工业控制系统被间接感染,最后导致了大量伊朗核工业设备物理损坏。
用户如何规避?
应该说,本次事件在爆发后,由于上传网站服务器已经关闭,目前已经暂时不会再产生威胁。但此前已经上传的数据,已经无法挽回。目前查明上传的数据内容并不算劲爆,但Apple ID是肯定有的,因此用户需要尽快修改iCloud的密码。而且袭击者的目的并不明确,为防止未来的损失,尤其是用户如果有其他信息与之绑定,也要尽快处理,如果iCloud上传了劲爆隐私照片,保佑入侵者快被绳之于法吧。
事件的反思
上述的资料显示:NSA曾经讨论过Xcode(4.1)SDK的控制思路:利用安插在该SDK中的后门程序,加载特定的动态库文件,修改IOS系统的安全策略,实现将IOS系统下的所有APP(应用程序)的数据将传送到指定的监听端口。
上述情况至少表明,苹果App Store的审查机制并未检查出使用含有恶意代码的Xcode编译出来的程序,该疏漏至少已经存在了数月甚至更久。
但需要看到,这件事情更需要引起的反思是国内的企业程序员和开发团队。虽然问题的直接原因是程序员未能严谨地使用经过校检的Xcode 开发工具,但企业开发团队流程的疏漏、开发人员安全观念的淡薄,尤其是企业内部安全管控审核不严才是更深层次的因素。所有的开发公司和开发者都需要引以为戒,安全隐患一直潜伏待发。