0
在頂級黑客眼中,從來沒有不可能。
這不,這個黑客在 11 月初舉辦的第十二屆 POC 安全大會上針對蘋果最新機型 iPhone X 上搭載的 iOS 11.1. 1 系統,成功實現越獄。

這個黑客就是騰訊科恩實驗室的研究員陳良,前不久他帶領的團隊還拿了移動 Pwn2Own 黑客大賽的冠軍,獲得“世界破解大師”的稱號。
幾年之前,買了 iPhone 之后最重要的事情之一就是給它越獄。以非官方 app 商店 Cydia 為首的一眾越獄后才能使用的開源軟件們給 iPhone 帶來了令人驚訝的新功能和可定制性。但 Cydia 源中最知名的 ModMyi 發出了“再見”的消息。Cydia 三大源中的兩源已經停止服務,僅剩的 BigBoss 源顯得有些孤單。
關于越獄已死的說法喧囂直上,但在陳良等人眼中,這場與蘋果之間的貓鼠游戲一定會持續下去。
不過,把這場博弈比作游戲似乎有些草率,畢竟在此過程中,面對的除了“對手”的“奇襲”,更是對自己抗壓能力的沖擊。
“越獄期間我買了一個小酒壺,郁悶時候喝兩口,偶爾還能激發別的思路。”陳良說。
能對一扇扇門“視若無物”的破解大師還有煩惱?是的,他有。
口述:陳良 |文:又田
成功沒那么容易
看起來酷炫,但蘋果越獄這件事,其實沒有你們想起來那么容易。
蘋果的 Root 權限不對用戶開放,越獄就是獲取 iOS 的 Root 權限,獲取后用戶使用 iOS 權限大大增加,可以查看 iOS 文件系統,免費安裝 App Store 以外的海量軟件,更換外觀主題等。對安全研究人員來說,iOS 系統源代碼的閉源性以致所做研究有限。
即使是調試自己所寫的 APP,都需要購買開發者賬號在 Xcode 中進行調試,這也是 iOS 系統安全研究人員格外小眾的因素之一。
自 2007 年 7 月第一款 iPhone 上市,開發人員發布了第一款無名越獄工具,打開了另一扇天窗。此后,蘋果每次發布新機、新版本總有人躍躍欲試。
無論是 2007 年被開發出適用于第一代 iPhone 和 iPod touch 的 JailbreakMe,還是國外著名越獄團隊Chronic Dev Team 專為 iPhone4、iPhone4S 和 iPad2 等 A5 芯片設備用戶使用的一鍵式越獄工具 Absinthe,以及在 2014 年國內盤古團隊正式發布的蘋果 ios7.1.1 的越獄工具,能否越獄成功成為業界對 iOS 研究深度判斷的普遍標準,所以科恩實驗室自 2015 年以來就開始研究 iOS 越獄。
這是一波三折的經歷。
2015年,我們剛剛開始對 iOS 越獄進行研究,那時候主要學習前人成果,對已有的越獄工具進行逆向總結提煉。
2016年,我們在 Mobile Pwn2Own 上破解了 iPhone 6s,并利用內核漏洞成功取得 iPhone 6s 內部的照片資料。風光背后卻是團隊付出了大量時間和精力,彼時我們還沒有研發出自己的越獄工具,在沒有調試能力的時候我們只能從一些奔潰日志中查詢蛛絲馬跡甚至靠猜測進行攻破過程。
明明一小時就能完成的工作,在沒有調試情況下卻需要幾天時間來完成,也是在那時,我們清楚地意識到越獄工具對 iOS 研究的重要性。在此之后,我們開始針對性地尋找一些可越獄的漏洞。
直到今年 5 月份,我們做出了自己的越獄工具。
時隔半年,期間科恩遭遇過四次團隊隊員發現可以用于越獄的漏洞,并耗時編寫越獄工具,而編寫到一半甚至快完成時,發現蘋果更新的版本中補住了這一漏洞。除此之外,團隊成員的流動也給研究雪上加霜。
長期以來,封閉式和開放式的編程方式被形容為“大教堂”和“集市”兩種模式。而蘋果的 iOS 與安卓系統被視為兩個完美代表。然而,隨著這幾年蘋果逐漸開放權限、開源部分內核代碼,這種“大教堂”式的完美形象仍舊存在。但是,喬布斯的那個蘋果終究是有缺口的。
簡單說 iPhone 的越獄步驟可概括為三步:首先獲得低權限的代碼執行權限,然后想辦法繞過沙盒保護,隨后做系統內核提權。
實際上在 iPhone5 之前(包括iPhone5)的蘋果手機上完成以上這三點就可以實現越獄,但從 iPhone5S 開始,iOS 推出 KPP,即對內核進行保護,即使能進去,內核在保護機制下仍會阻止你修改內容。但對我們來說,修改內核的目的是把其自有的安全機制去掉,然后安裝自己的應用程序,調試系統組件,但KPP的推出讓不少安全研究人員竹籃打水。
在 iPhone7 推出后,蘋果為了加強對內核的保護,推出了 AMCC(硬件保護),從硬件級別對內核打補丁,其設計理念是即使蘋果不可能在短期將所有漏洞補住,但他可以盡全力阻止在內核有任意代碼執行時手機不被篡改,這也被認為是最后一道防線。
蘋果此舉幾乎堵死了越獄之路,這也給越獄帶來很大困難。不久前面世的 iPhoneX 中也加了防止代碼執行的保護措施,將這堵墻砌得更高。
實際上,蘋果一次一次加固了這堵“柏林墻”。
一方面是對手機的直接保護,從iPhone 5 到 iPhone 7 再到 iPhoneX 是一個不斷迭代的過程。
另一方面則是系統版本的更新,比如 iOS 10.3.2 到 10.3.3 的版本更新,每一次系統版本的更新都會修補漏洞,引入一些系統級別的保護.
我們曾發現,某一接口可以用于內核內存布局,可以利用其進行越獄,但在 iOS 10.3.3 版本中將此接口砍掉修復了這一漏洞。
蘋果不止封上了上面這條路。
比如,之前,獲得內核具備任意代碼執行的權限,就可以獲得 Task for pid 0(tfp0),但蘋果在 iOS10.3 等版本上做了很多加固,這些都可對越獄造成影響。
這對蘋果而言,是一個不斷壘高墻的過程,對我們來說,則是不斷找出突破口的挑戰。
5月,我們寫出自己的越獄工具時,針對的還是 iOS10.3.2 版本,此后蘋果每發布一個新的版本,我都要查看是否有加入新的對抗機制,如果加入了新機制,還要在現有工具上增加功能,以此適應全新版本。

獲得更高權限對于果粉來說似乎格外有吸引力,但衍生出來的問題是——越獄之后的手機是否安全。
而在我看來,越獄存有風險,但不代表絕對不安全,這是一把雙刃劍。
iOS 越獄不代表沙盒被破壞,不代表安裝的任意軟件都有 root 權限,不代表文件目錄可被所有應用任意訪問,不代表關鍵隱私暴露。
越獄只是禁用了部分 iOS 系統先進的防護機制。對用戶來說,可以獲得更多的權限,但也的確留給不法分子一條“無障礙通路”,這也是諸多支付軟件會直接檢查系統是否越獄,如果出現越獄情況會直接退出。
當然,目前許多越獄軟件做的不夠完美,甚至很多越獄軟件為了達到自己目的,禁用 iOS 的全部保護機制。
我們跟他們不是一類人,注定了要走不一樣的路。我覺得,真正的越獄工具應做到在該禁用時禁用,但在保護用戶隱私信息時,也應不遺余力,這也是我們所做的越獄工具的理念。
手持重器,但應行君子之道。
雷鋒網宅客頻道(公眾號ID:letshome)原創文章,雷鋒網雷鋒網。
雷峰網原創文章,未經授權禁止轉載。詳情見轉載須知。