日前,国内团队正式发布苹果iOS9.0-9.0.2越狱,iOS9刚发布之际就有消息称iOS9增加了一项称为“Rootless”(不能Root)的功能,通过禁止修改操作系统的重要部分,防止恶意软件攻击和保护数据安全。这也使得iPhone和iPad越狱变得困难了许多。但是这难不倒国人,iOS9如约而至,让果粉们欣慰不已。爱思助手也已支持iOS9设备的一键越狱,那么一部iOS设备到底是如何实现越狱的呢?今天小编就为大家科普一下越狱的工作原理。
对于不清楚什么是越狱的用户可以了解下什么是越狱,越狱的好处,以及越狱与不越狱有什么区别。
首先,越狱分为非完美越狱和完美越狱。
非完美越狱(TetheredJailbreaks)
非完美越狱是设备重启后就消失的越狱。越狱后的设备每次重启后需要某种方式的重新越狱。通常意味着每次关机再重新开机时需要重新连接到电脑上。由于这个过程中需要USB线缆连接,这就是tethered的意思。这个词tethered也用于不需要USB连接,但需要访问特定网站或执行特定应用程序的重新越狱,如果漏洞是某些提权代码,一个非完美越狱能只由单个漏洞组成。一个例子是limera1n的bootrom漏洞,被目前的大部分iOS4和iOS5越狱使用。另一个例子是iOS的USB内核驱动程序的漏洞。然而,目前没有类似的公开漏洞。
如果没有类似的漏洞可用,进入设备的初始入口可以通过一个应用程序的漏洞来获得很少的权限,如MobileSafari浏览器。然而,单独的这样一个漏洞不能认为是越狱,因为没有附加的内核漏洞,不能禁止所有的安全特性。所以一个非完美越狱由一个提权代码漏洞组成,或一个非提权代码漏洞结合其他权限提升漏洞。
完美越狱(UntetheredJailbreaks)
完美越狱是利用一个设备重启后不会消失的持久漏洞来完成的,完美(untethered)因为设备每次重新启动后不需要重新越狱,所以它是更好的越狱方式。
由于完美越狱需要启动环节的非常特殊地方的漏洞,自然更难完成。过去由于在设备硬件里发现了非常强有力的漏洞,允许在设备的启动环节的早期进行破解,使完美越狱可能实现。但这些漏洞现在已经消失了,而同样品质的漏洞没有出现。
由于以上原因,完美越狱通常由某种非完美越狱结合附加的允许在设备上保持的漏洞组成。利用开始的非完美越狱来在设备的根目录文件系统上安装附加漏洞。由于首先专有未签名代码必须执行,其次权限要提升以便能对内核打补丁,所以至少需要2个附加的漏洞。
在开始越狱之前,我们还需要确定此次越狱利用的漏洞类型:
漏洞的存在位置影响你对设备的存取级别。一些允许低级别的硬件存取。另一些受限于沙盒内的许可权限。
Bootrom级别
从越狱者的角度看,Bootrom级别的漏洞是最有力的。bootrom在iPhone的硬件内部,它的漏洞不能通过软件更新推送来修复。相反,只能在下一代的硬件版本里修复。在存在limera1n漏洞的情况下,苹果没有发布iPad1或iPhone4的新产品,直到A5处理器的设备,iPad2和iPhone4S发布前,这个漏洞长期存在并为人所知。
Bootrom级别的漏洞不能修复,并且允许对整个启动环节的每个部分进行替换或打补丁(包括内核的启动参数),是最有力的漏洞。由于漏洞在启动环节发生的很早,而且漏洞Payload拥有对硬件的全部读取权限。如它可以利用AES硬件引擎的GID密码来解密IMG3文件,而IMG3文件允许解密新的iOS更新。
iBoot级别
当iBoot里的漏洞达到能提供的特性时,几乎和bootrom里的漏洞一样有力。这些漏洞效果下降是由于iBoot没有固化入硬件,能通过简单的软件升级来修复。
除了这点,iBoot漏洞在启动环节任然很早,能提供给内核启动参数,对内核打补丁,或对硬件直接进行GID密码的AES操作。
Userland级别
用户层面级别的越狱是完全基于用户层面进程的漏洞的,像JBME3(http://jailbreakme.com)。这些进程如果是系统进程,就拥有超级用户root权限,如果是用户应用程序,就拥有稍低级别的如mobile用户的权限。不管哪种情况,越狱设备至少需要2个漏洞。第一个漏洞用来完成专有代码执行,第二个漏洞用来使内核的安全措施失效,进行权限提升。
在以前的iOS版本里,只要破解的进程以root超级用户权限运行,代码签名功能就会失效。现在,内核内存崩溃或执行内核代码需要禁止强制代码签名。
和bootrom、iBoot级别漏洞相比,用户层面的漏洞更弱一些。因为即使内核代码执行已经可能了,如GID密码的AES引擎的硬件特性依然不能读取。所以苹果公司对用户层面的漏洞更容易修补;并由于远程用户层面的漏洞能用于iPhone恶意软件的注入,所以苹果公司对这些漏洞经常很快进行修补。
当进行到这里时候,真正的越狱就开始了,一般情况下,越狱工作者按照下列的顺序开始一步一步完成越狱,当你初步了解了越狱的整个过程后,你将会对每个发布完美越狱的越狱工作者致以敬意:
破解Bootrom(ExploitingtheBootrom)
启动Ramdisk(BootingtheRamdisk)
越狱文件系统(JailbreakingtheFilesystem)
安装完美越狱破解(InstallingtheUntetheringExploit)
安装AFC2服务(InstallingtheAFC2 Service)
安装基本程序库(InstallingBaseUtilities)
应用程序隐藏(ApplicationStashing)
安装程序包(BundleInstallation)
安装后过程(Post-InstallationProcess)
执行内核Payloads并修改内核(ExecutingKernelPayloadsand Patches)
修复内核状态(KernelStateReparation)
权限提升(PrivilegeEscalation)
修改内核(KernelPatching)
修改沙盒(SandboxPatches)
清空缓存(ClearingtheCaches)
清理并返回(CleanReturn)
了解了苹果iOS越狱的原理之后,是不是对国人越狱团队多了几分崇敬之情呢?如今iOS9.0-9.0.2已经可以越狱,想要越狱的用户请点击查看iOS9完美越狱教程