KPP-less及KPP Bypass是用途iOS10~iOS11越狱工具与问题
2018-08-09
至今的越狱圈生态似乎都很乱,由于iOS 10~iOS 11漏洞原始码被公开后,造成有不少越狱开发者纷纷推出自己的越狱工具,导致有好几款越狱工具推出,但这些iOS 10及iOS 11越狱工具之间的差异又在哪里呢?以及他们都使用什么手法,而会常看见越狱圈会谈到KPP,这个KPP又被分成KPP-less及KPP Bypass。
苹果为了提升安全性,从iOS 9后就开始导入系统核心更动的保护(Kernel Patch Protection)简称KPP,这也让64位元设备越狱带来了更头痛的问题,当设备开机时,KPP就会被启动先检查核心(Kernel)代码是否可读取、写入、唯读,确认可以后,就会将核心先改为原本唯读后再继续开机流程,盘古团队在iOS 9.0.2越狱上就先让工具在KPP要启动前,先强行关闭KPP后再继续开机,也就能够实现完美越狱工具,假如这策略失败就会导致设备进入无限重开机状态。
当然苹果也不是省油的灯,防止KPP这么容易被关闭,从iOS 9.3.3开始又再度增强KPP机制,导致会不断管理和监视核心,因此盘古团队在替iOS 9.3.3 越狱工具上采用了第三方APP来越狱,每次开机后就需要先透过这个APP,才能够修改核心存取权力后再重新载入主画面(Resrping)实现越狱,这也就变成从iOS 9.3.3开始后每次重开机都需要依赖越狱APP来激活越狱环境的主要因素。
后续苹果更是将KPP直接写成硬体元件,导致Luca Todesco越狱开发者一直无法让iPhone 7与iPhone 7 Plus设备支援iOS 10.2越狱,最主要原因是在iPhone 7与iPhone 7 Plus以上设备加入硬体层面KPP防护,所以才会导致Yalu102及G0blin越狱都无法支援A9处理器以上的设备。
LiberiOS
LiberiOS 是一款新型的越狱工具,它并不是靠KPP bypass,而使用KPP-less,同样达到可以我们需要的效果,并不断会执行守护进程(daemon),将它们改变后就可以注入至iOS系统内,不过这也会造成Cydia 与Substrate 原本都是依照KPP bypass而执行,所以就需要等待Saurik 特地针对LiberiOS 而更新Cydia Substrate,让LiberiOS工具可以不需要使用KPP bypass,能够顺利让Cydia 与Cydia Substrate 运作,相对这款越狱工具不需绕过KPP bypass 也就更稳定。
相信未来的越狱都可能会采用这种新的KPP-less 方式,毕竟KPP bypass漏洞是相当难找到。
当前所有iOS 11越狱都采用KPP-less需要Cydia 与Cydia Substrate更新才能正常运作,而iOS 10 Meridian越狱使用KPP-less,G0blin或更旧的越狱则是使用KPP bypass。
Electra 越狱
Electra 是来自知名开发者CoolStar 的作品,与LiberiOS所用的是相同漏洞,不过这工具比起LiberiOS最大不同是解决了Cydia Substrate无法支援问题,是采用另一个Comex开发者所制作的Substrate替代品substitute取代,这个substitute与Substrate功能大致上都相同,而且是开放代码,可让其它开发者自由更新,能用来解决原生Cydia Substrate不支援的问题,但Saurik相当痛恨这个substitute,甚至不同意越狱工具用这种方案来解决,不过目前一直尚未等到Saurik替iOS 11推出Cydia Substrate无更新,也会逼迫开发者透过其它方案来解决。(目前已经substitute支持)
Meridian
Meridian 越狱是利用Siguza 的vortex exploit 和Xerub 的KPP-less 方法来获得iOS 10.3.3的root权限,也是采用全新的Kpp-less技术,和LiberiOS性质相同(完全绕过AMFI和SSH),重点是可以支援所有64位元设备,当然也包含了iPhone7、7 Plus 机种,目前仅适合开发者使用。
不过这有个缺点就是Cydia Substrate 无法正常运作,需要等Saurik 替Substrate 推出更新,但Saurik 公开认为这并不是他的工作,Meridian 开发者不应该将问题丢给他,导致现今有这种僵局,但Meridian作者就已经预告会有一个替代Cydia的解决方案,也许有可能会与Electra共同合作,联合推出Cydia及Cydia Substrate 替代品来解决这些问题。(目前有Cydia 工作正常Substrate生效(支持插件)兼容IPhone7)merdian下载地址:https://meridian.sparkes.zone/
G0blin
G0blin越狱是一款传统的越狱工具,它并不是使用KPP-less,而是采用Yalu 、Saigon这类的 KPP Bypass 旧技术,并且另外拓展沿用而推出的后续版本,因此它不需要越狱守护进程(daemon),甚至也不需要替Cydia Substrate进行更新,不过只能让A7~A9 处理器的设备支援,同样会导致iPhone 7、iPhone 7 Plus及iPad Pro 10.5吋新机种无法支持,只有iPhone 6s ( Plus)与更旧的机种才能支援。
KPP-less及KPP Bypass 是什么
前面看越狱工具一直提到KPP-less及KPP Bypass,相信大家对于这两个专业术语会看得很模糊,简单来替各位说明两者差异
KPP Bypass:当KPP触发前会先透过修补程式(Patch)来补掉漏洞需要的部分,所以修补的时机点就相当重要,当越狱失败时就会显示失败了,重试吗?(Failed,retry?)讯息。不过这也可能会再次触发KPP,导致突然设备重开机,就是因为发生核心错误( kernel panic)所引起。
KPP-less:这是采用绕过KPP机制的手法,让越狱可运作在没有KPP保护的区域上,由于KPP-less并不用担心KPP会触发的问题,比起KPP Bypass来的更稳定,不会导致突然重开机现象。
越狱不代表不安全
当越狱后能获取到root最高权限,导致大家对越狱后产生了「安全」上的质疑,虽然越狱的确是存在有风险,但并不代表是不安全。
iOS越狱是透过漏洞,使用越狱APP工具来逃离苹果在iOS系统上所规划的沙盒(Sandboxie),我们可以说越狱就是沙盒逃逸(Sandbox-Escaping)的一种过程。
沙盒是指iOS基于安全机制,特别规划出一块独立的区域,让指定程式只在这个被隔离的区域中执行、读写资讯,这并不代表任意APP获得root权限后,就可让所有文件目录能被其它软件APP可任意访问,也不表示隐私问题会曝光,所以iOS系统上的APP就无法像安卓系统那样容易被共用文件,在越狱后依旧还有沙盒机制存在。