iOS设备上能运行什么样的应用程序,从来都是苹果说了算。不过,在这场永恒的越狱与反越狱的斗争中,最近有人成功了。 本周一,一个自称为evad3rs的黑客小组推出了首款完美越狱工具evasi0n。它不但适用于iPhone5,也同样适用于iPad3、iPad mini以及所有以iOS为操作系统的设备,它可令用户在几分钟之内就轻松卸载苹果手机或是平板电脑上所有的应用程序安装限制。 据越狱软件商店Cydia创始人杰·弗里曼(Jay Freeman)称,这款越狱工具上线后6个小时之内,它的使用量就至少达到了8万次。而他说这个数字还是保守估计,因为在发布的当天,潮水般的访问量导致他的服务器中途宕机了好多次,所以当天的统计其实不准。到了周二,他所统计的下载量达到了170万次。 苹果每次发布新设备或是升级其移动操作系统时,手机和平板电脑内配置的反越狱防护措施也会随之更加完善和严密,因此,破解苹果系统的游戏也就变得更加困难。Evasi0n也不例外。据evad3rs小组的四位成员之一大卫·王(David Wang)介绍,这款工具是利用了iOS操作系统中至少5处非常明显的新的漏洞。(可作为参照的是,iOS系统中的漏洞比美国国家安全局为了破坏伊朗铀浓缩离心机而开发的恶意软件Stuxnet仅多了一处。) 在我的要求之下,大卫将evasi0n的运行原理一步一步地讲解如下: 首先,Evasi0n是以运行libimobiledevice开始,这是一个可代替iTunes与iOS设备进行连接的程序(与其他苹果程序使用的协议相同)。通过这个程序,Evasi0n发现iOS移动备份系统里出现了一个漏洞,可以进入某些本该无法进入的设置项,确切说,就是一个标示设备时区的文件。 然后,越狱工具会在这个时区文件里插入一个“符号链接”,这是从操作系统的一处转移至另一处的快捷方式。该链接会指向某个“接口”——一个运作于不同程序之间的、受限制的通信渠道,大卫将之称为“美苏专线”。Evasi0n改变了这个接口,使之可以与LaunchDaemon的后台程序对话。 LaunchDaemon又简称为launchd,这是无论哪款iOS设备开机时都要最先开始载入的主进程,并可以启动那些需要“root”超级权限的应用。这一步是可以不受操作系统的控制而默认执行的。这样做的结果就是,不管是iPhone还是iPad,只要移动备份系统开始运转,都会自动允许所有程序与时区文件相连,然后通过符号链接,这些程序就可以访问launchd了。 iOS系统还有一个阻止流氓软件访问launchd的安全措施,那就是代码签名。这一限制使得设备上运行的所有代码都需要获得苹果公司的防伪标签,而这个标签是不可能伪造的。Evasi0n在设备里启动了一个新应用,它看似是根本不含有任何代码的,所以也就无所谓有没有代码签名。然而一旦用户点击图标启动它,它就会利用Unix操作系统的命令“shebang”来调用另一个已获签名认证的应用的代码。由于之前已经进行了接口改换,这个新应用就变成只能访问 launchd的程序,然后它运行“remount”重新加载指令,将根文件系统的存储设定由只读变成可读写。 根文件系统变成可读写之后,Evasi0n就可以改写launchd.conf文件,进而重置launchd的结构配置,从而达到每次启动设备时都可以运行更改后的程序,这样做就实现了越狱的永久性,用户不必每次设备重启时都要通过通过USB运行越狱程序。 然而,仅仅是以上这些改动还不能说越狱已经完成,除非是操作系统最“核心”的部分——“苹果移动文件保护精灵(AMFID)”的安全限制被解除。 AMFID的功能就是核查应用程序的代码签名,并阻止未经验证的程序在设备上运行。因此,evasi0n就会在每次启动程序时利用launchd在 AMFID中载入一个功能库,当AMFID验证代码签名时,这个功能库会帮助应用显示“已通过验证”。大卫没有详细解释这款越狱工具是如何破解AMFID 安全措施的。“苹果公司自己会搞清楚的,”他说。 除此以外,iOS系统还有一个名为“位址空间布局随机化”(ASLR)的防护功能以阻止黑客篡改系统核心内存。这个安全措施就会在每次启动设备时将系统内核代码配置到系统内存中的某个随机位址,以阻止任何人试图恶意改写其中特定的代码。对付它,Evasi0n使用了一种定位技巧。在所有采用ARM芯片的设备上,这种技巧让内存难以隐藏,这就是所谓的“ARM异常向量”。一旦某个应用出现异常,ARM异常处理程序会检测内存里异常所发生的位置。因此,Evasi0n就模拟出异常情况,等待ARM处理程序出现,这样就可以获取系统核心内存的配置信息了。 一旦越狱工具破解了“位址空间布局随机化”防护,它就会利用最后一个漏洞,即iOS设备的USB界面,这个界面会在核心内存里向程序发送一个地址并且会 “傻傻地等待用户发送回去”。如此一来,Evasi0n就可以随心所欲地改写内核了。它所改写的内核中的第一个部分就是代码更改限制系统,对黑客来说,这等于拿到了一张随心所欲改写代码的通行证。“只要你能进入内核,其他的安全措施就形同虚设了,”Wang说道:“然后我们就越狱成功了。”
|