昨天一条XCodeGhost的消息在微信朋友圈和IT圈炸开了锅,并且引发了许多人的愤怒和担忧,愤怒的是中国这么多知名IT公司不负责的开发行为,担忧的是自己的用户名密码等隐私信息的再一次泄露将给自己带来又一次的伤害。
简单说XCodeGhost是有人在XCode里面植入了一段代码,导致用户使用通过这个XCode编译的iOS应用软件时会自动执行这段额外植入的代码,并将用户的隐私信息发往黑客的服务器,详细信息参见 乌云知识库 。截至今天已经有超过20款iOS应用确认拥有XCodeGhost。
当我看到这个新闻的时候,第一个想法就是”历史总是如此的相似”。让我们回到上个世纪70,80年代,Unix之父Ken Thompson(1943~)在贝尔实验室里面开发了Unix系统,并且贝尔实验室的计算机也安装了这个Unix系统供员工使用。有一天大家发现Ken总是可以以最高权限进入他们的帐号。可想而知,在牛人聚集的贝尔实验室是不允许这样的事情发生的,所以许多员工跳出来仔细分析Unix代码,并且确实也找到了后门,然后修复这些后门后重新编译整个Unix并重新安装。所有人都以为可以放心的使用新的Unix的时候却发现Ken还是可以自由的获取他们的账户权限,并且再也无能为力了。直到多年以后,Ken才解开了大家心中的疑惑,原来Ken在编译Unix所使用的C语言编译器里面加入了一个后门,而当时跳出来分析和修复Unix的员工并没有去分析过C语言编译器,导致Ken一再得手。回想昨天的新闻,竟是如此的相似。
相对于Ken在C语言编译器植入后门,XCodeGhost在XCode里面植入后门只能算小儿科(因为当时贝尔实验室使用的C语言编译器是Ken开发的,相当于官方发布了具有后门的编译器),毕竟官方的XCode并没有包含XCodeGhost。那么为什么还是有如此多的知名IT公司的iOS应用都有的此后门啦?其中有一个传言就是由于从中国去Apple官服下载XCode非常慢,所以需要去各个社区或者通过迅雷下载,所以才导致下载到了包含XCodeGhost的XCode。我觉得迅雷纯属躺枪,开发者使用了不安全的工作方法,还要找个借口发泄到迅雷身上,这本身就是一种不负责的态度。
扩展随想,编译器/IDE以后我们注意了,第三方包/框架我们就可以放心了吗?这些第三方包就不会有类似XCodeGhost的后门?针对这个我有一些想法:
总的来说,一个应用软件的安全可以从五个角度考虑:操作系统,病毒,源代码(包括软件架构和设计),编译器/IDE,第三方软件包,见下图: