解释KPP-less及KPP Bypass是什么? iOS10~iOS11越狱工具状态与问题

至今的越狱圈生态似乎都很乱,由于iOS 10~iOS 11漏洞原始码被公开后,造成有不少越狱开发者纷纷推出自己的越狱工具,导致有好几款越狱工具推出,但这些iOS 10及iOS 11越狱工具之间的差异又在哪里呢?以及他们都使用什么手法,而会常看见越狱圈会谈到KPP,这个KPP又被分成KPP-less及KPP Bypass,这些专业术语到底是什么东西呢?本文带大家一起来了解。


谈KKP是什么

苹果为了提升安全性,从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 处理器以上的设备。


谈 iOS 11 越狱工具

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无更新,也会逼迫开发者透过其它方案来解决。

因此我们可以发现当前Cydia与Cydia Substrate虽然是不支持iOS 11,不过CoolStar已经不想等待Saurik更新,因为等待时间真的太久了!提早一步先解决了插件问题,现在开发者与越狱用户可透过手动安装插件,CoolStar 表示后续也准备推出自行修改版的Cydia工具,到时就可让Cydia能够顺利运作,达成完整的越狱环境。


谈 iOS 10 越狱工具

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 替代品来解决这些问题。

如果你当前是在iOS 10.2.1或更低的iOS版本上,目前暂时不建议使用这款工具越狱,也许你应该先使用Yalu、extra_recipe或Saigon先越狱会更快,要是你是iOS 10.3.x越狱用户,想快点使用到Cydia 那应该先选择g0blin越狱会更好。


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)与更旧的机种才能支援。

但G0blin目前还存在一个错误,就是Touch ID会导致在第三方APP无法使用问题。


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就无法像安卓系统那样容易被共用档案,在越狱后依旧还有沙盒机制存在。


评论

  • *
  • *
精彩评论
  • 访客
    回复
    2018-05-06 20:36:17

    国外的大神有一种说法,他们把硬件级别的kpp,不是称为kpp而是叫做ktrr