iOS 6越狱工具Evasi0n技术解密

  • 发表于
  • 周边

2月5日,越狱新团体evad3rs放出iOS 6完美越狱工具evasi0n,福布斯杂志也对其中一位David Wang做了专访文章,这篇文章介绍了越狱的一些技术细节,值得一看。 对于iOS设备上的运行控制权的争夺,在苹果公司和越狱者之间一直存在着类似猫和老鼠的游戏,这次是老鼠赢了。

星期一,一组自称evad3rs的黑客发布了evasi0n,这是第一个能对iPhone5越狱的程序,它也可以对iPad3、iPad mini和其他最新版本的iOS设备越狱,可以让用户在几分钟内去掉他们的苹果手机和平板的所有安装限制。

据用于越狱的Cydia应用程序商店管理员Jay
Freeman说,在evasi0n刚上线6小时内,保守估计这个破解程序已经被使用至少80万次,因为在第一天的在线越狱过程中,如海啸般涌来的流量把
它的服务器数次踢下线,导致统计数据偏少。到星期四,这个数据已上升到170万。 每次苹果发布新设备和对移动操作系统升级,iPhone和iPad的防破解的措施就变得更复杂,破解所需的技巧也更高。

Evasi0n也不例外,据evad3rs的4名开发者之一王大为(DavidWang)说,这个程序至少利用了iOS代码里5个不同的新的漏洞。(与NSA开发的用于破换伊朗核浓缩工厂的离心机的恶意软件Stuxnet相比,evasi0n更复杂)

我请王大卫详细解释evasi0n是如何工作的,下面就是他告诉我的:

Evasi0n开始运行libimobiledevice,这是一个iTunes的替代品,用和苹果的程序相同的协议来和iOS设备通讯。

利用这个工具,Evasi0n对iOS的手机备份系统的一个漏洞进行溢出,来获得正常情况下不能获得的某些设置的读写权限,即获得对一个指定设备时间区的文件的读写权限。 越狱程序在时间区文件里插入一个符号链接,这是操作系统中从一个地方到另一个地方的快捷方式。这里这个链接指向一个特定的socket套接字,即一个在不同程序间受限的通讯通道,王大卫把它描述成一种“到莫斯科的红色专线”。Evasi0n修改了这个socket套接字,允许程序和一个叫做Launch Daemon的程序通讯,LaunchDaemon简称为launchd程序,是一个主要的进程,在iOS设备启动时首先运行,能加载需要超级用户root权限的应用程序,这一步超出了操作系统默认赋予用户的权限。当iPhone或iPad的备份程序运行时,它自动赋予了所有程序读取时间区的文件,由于上面讲的符号链接的技巧,这意味着可以运行launchd程序。 iOS还有代码签名的防护机制,正常情况下能防止恶意应用程序运行launchd程序。这个限制要求设备上运行的代码都有苹果公司的防止伪造的签名的批准。

所以Evasi0n运行了一个新的应用程序,在代码都有签名或没有签名时显示出来。但当用户被提示去点击应用的图标时,它利用了一个叫做“shebang”的unix技巧,能执行其他签名应用的代码。 在这里,它执行了launchd程序,这是由于前面的socker套接字改变而能执行的唯一程序,并用它执行了“remount”命令,来改变只读的root根文件系统的内存设置,使它变成可写。 现在root的根文件系统已经可写了,evasi0n接着就更改了launchd.conf文件,更改了launchd程序的设置,使得evasi0n的所做的更改在launchd每次运行时都能重复。这就使得越狱能持久化,用户就不需要每次在设备启动都要通过USB线连接到电脑上,并重复运行程序。

在经过这么多的修改后,设备还没越狱完成,除非在内核层面移除限制,内核层面是操作系统最底层的部分,它执行代码签名检查,通过AMFID进程(苹果手机文件集成进程)防止未批准的应用运行。所以evasi0n利用launchd程序使每次程序运行时往AMFID里加载一个函数库,这个函数库互换了
代码签名的检查函数,总是返回批准的应答。王大卫没有精确的说明越狱过程的如何进行AMFID欺骗的部分,他说苹果公司自己能找出来。

iOS还有另外一种ASLR(地址空间随机分布)机制来防止黑客修改操作系统内核的内存空间。这种防护技术是指移动设备在每次启动时,把闪存空间里的代码随机移动一定的位置,来阻碍其他人对代码的特定部分的覆盖写入。

但evasi0n使用一种ARM的例外向量的内存定位技巧,来准确找到内存的某个位置,而ARM的例外向量在基于ARM芯片的设备里很难隐藏。在应用发生
崩溃时,这部分内核处理程序报告内存的发生位置。所以evasi0n模拟发生一次崩溃,然后检查ARM的例外向量来发现崩溃在哪里发生,这提供了足够的信息来影射出设备内存中内核的其他部分。 一旦打败了ASLR,越狱程序最后利用一个iOS的USB界面的漏洞,在内核空间里向一个程序传送一个地址,按王大卫说的,系统“天真的期待用户顺利的把它传回”。这让evasi0n可以改写内核的任意部分。它改写的第一个地方是内核对自身代码修改的限制部分–这样黑客获得了最高的权限。

王大为说:“一旦你进入内核,就没有任何安全限制了,我们就赢了”

evasi0n的下载地址:http://evasi0n.com/
原文:http://www.forbes.com/sites/andygreenberg/2013/02/05/inside-evasi0n-the-most-elaborate-jailbreak-to-ever-hack-your-iphone/