KPP-less及KPP Bypass是用途iOS10~iOS11越獄工具與問題

至今的越獄圈生態似乎都很亂,由於iOS 10~iOS 11漏洞原始碼被公開後,造成有不少越獄開發者紛紛推出自己的越獄工具,導致有好幾款越獄工具推出,但這些iOS 10及iOS 11越獄工具之間的差異又在哪裡呢?以及他們都使用什麼手法,而會常看見越獄圈會談到KPP,這個KPP又被分成KPP-less及KPP Bypass,這些專業術語到底是什麼東西呢?本文帶大家一起來了解。

KPP-less及KPP Bypass是用途iOS10~iOS11越獄工具與問題

談KPP是什麼

蘋果為了提升安全性,從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 7iPhone 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。

LiberiOS越獄教學(支援iOS 11~11.1.2)

Electra 越獄

Electra 是來自知名開發者CoolStar 的作品,與LiberiOS所用的是相同漏洞,不過這工具比起LiberiOS最大不同是解決了Cydia Substrate無法支援問題,是採用另一個Comex開發者所製作的Substrate替代品substitute取代,這個substitute與Substrate功能大致上都相同,而且是開放代碼,可讓其它開發者自由更新,能用來解決原生Cydia Substrate不支援的問題,但Saurik相當痛恨這個substitute,甚至不同意越獄工具用這種方案來解決,不過目前一直尚未等到Saurik替iOS 11推出Cydia Substrate無更新,也會逼迫開發者透過其它方案來解決。(目前已經substitute支持)

因此我們可以發現當前Cydia與Cydia Substrate雖然是已經支持iOS 11,Cydia能夠順利運作,達成完整的越獄環境。

substitute開放原始碼:https://github.com/comex/substitute

Electra 越獄教學(支援iOS 11~11.4(b1-b3))

談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 替代品來解決這些問題。(目前有Cydia 工作正常Substrate生效(支持插件)兼容IPhone7)merdian下載地址:https://meridian.sparkes.zone/

Meridian越獄教學(iOS 10~10.3.3,真正支援iOS 10.3.x)

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無法使用問題。(可以用double h3lix替代越獄)

Goblin越獄教學(支援iOS 10.3~10.3.3)

KPP-less及KPP Bypass 是什麼

前面看越獄工具一直提到KPP-lessKPP 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就無法像安卓系統那樣容易被共用文件,在越獄後依舊還有沙盒機制存在。


分享到:


相關文章: