至今的越獄圈生態(tài)似乎都很亂,由于iOS 10~iOS 11漏洞原始碼被公開后,造成有不少越獄開發(fā)者紛紛推出自己的越獄工具,導致有好幾款越獄工具推出,但這些iOS 10及iOS 11越獄工具之間的差異又在哪里呢?以及他們都使用什么手法,而會??匆娫姜z圈會談到KPP,這個KPP又被分成KPP-less及KPP Bypass。
蘋果為了提升安全性,從iOS 9后就開始導入系統(tǒng)核心更動的保護(Kernel Patch Protection)簡稱KPP,這也讓64位元設備越獄帶來了更頭痛的問題,當設備開機時,KPP就會被啟動先檢查核心(Kernel)代碼是否可讀取、寫入、唯讀,確認可以后,就會將核心先改為原本唯讀后再繼續(xù)開機流程,盤古團隊在iOS 9.0.2越獄上就先讓工具在KPP要啟動前,先強行關閉KPP后再繼續(xù)開機,也就能夠實現(xiàn)完美越獄工具,假如這策略失敗就會導致設備進入無限重開機狀態(tài)。
當然蘋果也不是省油的燈,防止KPP這么容易被關閉,從iOS 9.3.3開始又再度增強KPP機制,導致會不斷管理和監(jiān)視核心,因此盤古團隊在替iOS 9.3.3 越獄工具上采用了第三方APP來越獄,每次開機后就需要先透過這個APP,才能夠修改核心存取權力后再重新載入主畫面(Resrping)實現(xiàn)越獄,這也就變成從iOS 9.3.3開始后每次重開機都需要依賴越獄APP來激活越獄環(huán)境的主要因素。
后續(xù)蘋果更是將KPP直接寫成硬體元件,導致Luca Todesco越獄開發(fā)者一直無法讓iPhone 7與iPhone 7 Plus設備支援iOS 10.2越獄,最主要原因是在iPhone 7與iPhone 7 Plus以上設備加入硬體層面KPP防護,所以才會導致Yalu102及G0blin越獄都無法支援A9處理器以上的設備。
LiberiOS
LiberiOS 是一款新型的越獄工具,它并不是靠KPP bypass,而使用KPP-less,同樣達到可以我們需要的效果,并不斷會執(zhí)行守護進程(daemon),將它們改變后就可以注入至iOS系統(tǒng)內,不過這也會造成Cydia 與Substrate 原本都是依照KPP bypass而執(zhí)行,所以就需要等待Saurik 特地針對LiberiOS 而更新Cydia Substrate,讓LiberiOS工具可以不需要使用KPP bypass,能夠順利讓Cydia 與Cydia Substrate 運作,相對這款越獄工具不需繞過KPP bypass 也就更穩(wěn)定。
相信未來的越獄都可能會采用這種新的KPP-less 方式,畢竟KPP bypass漏洞是相當難找到。
當前所有iOS 11越獄都采用KPP-less需要Cydia 與Cydia Substrate更新才能正常運作,而iOS 10 Meridian越獄使用KPP-less,G0blin或更舊的越獄則是使用KPP bypass。
Electra 越獄
Electra 是來自知名開發(fā)者CoolStar 的作品,與LiberiOS所用的是相同漏洞,不過這工具比起LiberiOS最大不同是解決了Cydia Substrate無法支援問題,是采用另一個Comex開發(fā)者所制作的Substrate替代品substitute取代,這個substitute與Substrate功能大致上都相同,而且是開放代碼,可讓其它開發(fā)者自由更新,能用來解決原生Cydia Substrate不支援的問題,但Saurik相當痛恨這個substitute,甚至不同意越獄工具用這種方案來解決,不過目前一直尚未等到Saurik替iOS 11推出Cydia Substrate無更新,也會逼迫開發(fā)者透過其它方案來解決。(目前已經(jīng)substitute支持)
Meridian
Meridian 越獄是利用Siguza 的vortex exploit 和Xerub 的KPP-less 方法來獲得iOS 10.3.3的root權限,也是采用全新的Kpp-less技術,和LiberiOS性質相同(完全繞過AMFI和SSH),重點是可以支援所有64位元設備,當然也包含了iPhone7、7 Plus 機種,目前僅適合開發(fā)者使用。
不過這有個缺點就是Cydia Substrate 無法正常運作,需要等Saurik 替Substrate 推出更新,但Saurik 公開認為這并不是他的工作,Meridian 開發(fā)者不應該將問題丟給他,導致現(xiàn)今有這種僵局,但Meridian作者就已經(jīng)預告會有一個替代Cydia的解決方案,也許有可能會與Electra共同合作,聯(lián)合推出Cydia及Cydia Substrate 替代品來解決這些問題。(目前有Cydia 工作正常Substrate生效(支持插件)兼容IPhone7)merdian下載地址:https://meridian.sparkes.zone/
G0blin
G0blin越獄是一款傳統(tǒng)的越獄工具,它并不是使用KPP-less,而是采用Yalu 、Saigon這類的 KPP Bypass 舊技術,并且另外拓展沿用而推出的后續(xù)版本,因此它不需要越獄守護進程(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,相信大家對于這兩個專業(yè)術語會看得很模糊,簡單來替各位說明兩者差異
KPP Bypass:當KPP觸發(fā)前會先透過修補程式(Patch)來補掉漏洞需要的部分,所以修補的時機點就相當重要,當越獄失敗時就會顯示失敗了,重試嗎?(Failed,retry?)訊息。不過這也可能會再次觸發(fā)KPP,導致突然設備重開機,就是因為發(fā)生核心錯誤( kernel panic)所引起。
KPP-less:這是采用繞過KPP機制的手法,讓越獄可運作在沒有KPP保護的區(qū)域上,由于KPP-less并不用擔心KPP會觸發(fā)的問題,比起KPP Bypass來的更穩(wěn)定,不會導致突然重開機現(xiàn)象。
越獄不代表不安全
當越獄后能獲取到root最高權限,導致大家對越獄后產(chǎn)生了「安全」上的質疑,雖然越獄的確是存在有風險,但并不代表是不安全。
iOS越獄是透過漏洞,使用越獄APP工具來逃離蘋果在iOS系統(tǒng)上所規(guī)劃的沙盒(Sandboxie),我們可以說越獄就是沙盒逃逸(Sandbox-Escaping)的一種過程。
沙盒是指iOS基于安全機制,特別規(guī)劃出一塊獨立的區(qū)域,讓指定程式只在這個被隔離的區(qū)域中執(zhí)行、讀寫資訊,這并不代表任意APP獲得root權限后,就可讓所有文件目錄能被其它軟件APP可任意訪問,也不表示隱私問題會曝光,所以iOS系統(tǒng)上的APP就無法像安卓系統(tǒng)那樣容易被共用文件,在越獄后依舊還有沙盒機制存在。