蘋果越獄不好搞,但他們居然兩個(gè)月內(nèi)針對(duì)三個(gè)最新版系統(tǒng)“越”了三次,這就很神奇了。
“他們”就是阿里巴巴的潘多拉實(shí)驗(yàn)室。
潘多拉實(shí)驗(yàn)室于 2017 年成立,此前僅在阿里先知?jiǎng)?chuàng)新大會(huì)上露過一次面,其安全研究員用視頻演示了安卓8.0 的 Root 提權(quán)和 iOS 11.1 的完美越獄。
12 月 13 日,阿里安全潘多拉實(shí)驗(yàn)室稱,已經(jīng)完美越獄蘋果 iOS 11.2。一天后,在蘋果發(fā)布了 iOS 11.2.1之后的數(shù)小時(shí)內(nèi),他們又演示了針對(duì)該版本的完美越獄。
“完美越獄”是有技術(shù)含金量的?!胺峭昝涝姜z”后的手機(jī)一旦重啟,你就得重新手動(dòng)操作一遍越獄流程,有點(diǎn)像“一次性”越獄。而完美越獄可在重啟手機(jī)后,還能自動(dòng)執(zhí)行越獄代碼,在重啟前完成越獄。
人前厲害、風(fēng)光,人后的苦可能只有研究者自己知道。
潘多拉實(shí)驗(yàn)室 iOS 11.2 的越獄作者龍磊對(duì)宅客頻道表示, 2015 年初步研究蘋果越獄時(shí),十分孤獨(dú)。有意思的是,上一個(gè)對(duì)宅客頻道表達(dá)這種憂思的是騰訊科恩越獄了 iOS 11.1. 1 系統(tǒng)的著名黑客陳良。“越獄期間我買了一個(gè)小酒壺,郁悶時(shí)候喝兩口,偶爾還能激發(fā)別的思路?!标惲颊f。
龍磊經(jīng)歷思路受阻,睡不著覺時(shí),會(huì)喝兩口意式濃縮,看看越獄和咖啡,到底哪一種更苦。
龍磊不是一開始就選擇研究蘋果越獄的。確切來說,一開始他想專職研究蘋果系統(tǒng)越獄,但沒敢。
“不敢”是有原因的。
2011 年,龍磊加入了騰訊手機(jī)衛(wèi)士團(tuán)隊(duì)。當(dāng)時(shí),他在騰訊做的是越獄環(huán)境下的應(yīng)用。。比如,蘋果手機(jī)越獄后可以在非官方店下載第三方應(yīng)用,他做的就是與第三方應(yīng)用和生態(tài)相關(guān)的事情。2014 年 6 月,龍磊從騰訊離開時(shí),中國還沒有人成功實(shí)現(xiàn)蘋果手機(jī)越獄。
在此之前,要去探索一座國人尚未涉獵過的高峰,不知道前方能否有所收獲,可能需要積累勇氣。不過,這并不妨礙他在工作之余自學(xué)越獄技術(shù)。
環(huán)境推了龍磊一把。
從友盟發(fā)布的數(shù)據(jù)看,越獄 iPhone 在手機(jī)總數(shù)中所占的比例從 2013 年第一季度時(shí)的 35% 下降到了當(dāng)年年底時(shí)的 12% 。從 2013 年年底開始,越獄 iPhone 所占的比例穩(wěn)定在了 10%-15% 之間。
“越獄的生態(tài)越來越萎縮,蘋果生態(tài)研究變得沒有那么有市場,感覺掉轉(zhuǎn)方向的時(shí)機(jī)可能到了?!饼埨谡f。
2014 年 6 月,龍磊決定離開,去探尋可能可以追逐最初夢(mèng)想的機(jī)會(huì)。
不料,6 月 24 日,中國有個(gè)叫做“盤古”的越獄團(tuán)隊(duì)與知名的第三方市場 PP 助手聯(lián)合發(fā)布了國內(nèi)首款 iOS7.1.1 完美越獄工具“盤古”。
龍磊看到這則新聞時(shí),感到又驚喜又緊迫。
此時(shí),他已經(jīng)打算進(jìn)入阿里巴巴的移動(dòng)安全團(tuán)隊(duì),準(zhǔn)備探索 iOS 系統(tǒng)的不足——這個(gè)看上去離原來的興趣更近一點(diǎn)了。但他依然沒敢“正大光明”地宣告自己要越獄,還在積累技術(shù)。直到 2014 年底,龍磊覺得自己的技術(shù)“差不多了”,他所在的部門也很支持這件事。他覺得“越獄”這件事可以搞了。
不過,事情沒有那么順利。
2015 年,龍磊陸續(xù)向蘋果提交了一些漏洞,并帶著自己關(guān)于構(gòu)建通用漏洞挖掘工具的思路《Optimized fuzzing IOKIT in iOS》在世界著名黑客大會(huì) Blackhat 2015 上進(jìn)行了分享。臺(tái)下,他還與蘋果公司的工作人員聊了很多關(guān)于蘋果系統(tǒng)機(jī)制的問題。
看上去順風(fēng)順?biāo)5?,一個(gè)念頭閃了過來,龍磊突然覺得自己可能走岔了路。
龍認(rèn)為,自己在通用的漏洞挖掘工具上投入了太多精力,卻忽略了對(duì)蘋果安全機(jī)制本身的研究。
2017年 12 月 18 日,龍磊和潘多拉實(shí)驗(yàn)室負(fù)責(zé)人宋楊坐在宅客頻道面前時(shí),是這樣反思的——“對(duì)于蘋果安全機(jī)制的研究恰恰是最重要的。”宋說,龍磊在以前阿里內(nèi)部的經(jīng)驗(yàn)分享上,還著重介紹了蘋果越獄的兩個(gè)技術(shù)流派:“氣宗”和“劍宗”。
其實(shí),這就是安全圈挖掘漏洞的兩種主流的方式。第一種,開放通用的漏洞挖掘工具。第二種,完全不用工具,靠研究人員去做分析、看代碼。
龍說,不能說哪種方法更好。如果面對(duì)是成熟度比較低的代碼,使用漏洞挖掘的工具效率可能會(huì)更高,但如果面對(duì)的是 iOS 內(nèi)核級(jí)的漏洞,它的代碼過了很多年以及無數(shù)安全研究員的檢驗(yàn),代碼發(fā)展已經(jīng)變得非常穩(wěn)定,這種情況下,通過深入分析和工具,效果會(huì)更好。
顯然,龍磊認(rèn)為,工具并不是自己朝蘋果越獄前進(jìn)最重要的東西,理解 iOS 系統(tǒng),研究它的安全機(jī)制,才是驗(yàn)證蘋果系統(tǒng)是否有“缺口”的關(guān)鍵所在。
這也是后來潘多拉實(shí)驗(yàn)室一直沒有發(fā)布越獄工具的原因之一,宋楊認(rèn)為,發(fā)布工具不是他們的目的,他們的初衷還是檢測蘋果系統(tǒng)是否“足夠安全”,從攻擊視角提升移動(dòng)生態(tài)安全的水位。
2016 年是龍磊最“痛苦”的一年。
及時(shí)調(diào)整方向后,原來的老搭檔也來到了阿里,龍磊與他一起全身心地投入了蘋果系統(tǒng)的深入研究與分析,并嘗試用新思路來做這件事。
很快,他們完成了第一次越獄。但是,龍磊等人的喜悅并沒有維持多久,蘋果就進(jìn)行了一次安全升級(jí),這次的越獄馬上失效了,龍磊等人研究出來的“越獄有效時(shí)間”只有 3 個(gè)月?!爱?dāng)時(shí),我感受到了很強(qiáng)的挫敗感,自己投入了很長時(shí)間研究的東西,蘋果發(fā)布一個(gè)安全修補(bǔ)升級(jí)后,我們的努力一下子從100分降到了0分?!饼埨谡f。
隨后的一年里,他們都在找漏洞—完成越獄—漏洞被蘋果修補(bǔ)這三種狀態(tài)間來回切換,龍磊等人與蘋果玩著“貓捉老鼠”的游戲,一時(shí)間無法找到穩(wěn)定的越獄方法,十分焦慮。
直到 2017 年,隨著其研究的深入和經(jīng)驗(yàn)的積累,龍磊等人才可以做到比較快速地應(yīng)對(duì)蘋果的安全升級(jí),并且保持越獄的能力。
龍磊沒有透露此次越 iOS 11.2 的手法。但宅客頻道了解到, iOS 11.1 包含有存在缺陷的、可以被繞過的 SMAP 機(jī)制。蘋果在 iOS 11.2 中修復(fù)了這個(gè)漏洞,迫使研究人員尋找其他繞過 SMAP 的方法。此次越獄 iOS 11.2 則利用了一個(gè)內(nèi)存緩沖區(qū)溢出漏洞,觸發(fā)內(nèi)核錯(cuò)誤。
龍磊告訴宅客頻道,如果沒有意外,他們走出來的“這條大道”在接下來蘋果要發(fā)布的新版本中,大概率還能走得通。
他總結(jié)了一個(gè)經(jīng)驗(yàn):“以前出過安全問題的一些模塊更有可能產(chǎn)生安全問題。但是業(yè)界對(duì)這些模塊的關(guān)注度是一陣一陣的。比如,有人這一年關(guān)注這個(gè)模塊,下一年關(guān)注另外一個(gè)模塊,但我可能會(huì)選擇回退好幾年,去看大家曾經(jīng)關(guān)注過的模塊,那些看上去成熟度已經(jīng)非常高的模塊一旦找到漏洞,或者安全機(jī)制上的問題,就不那么容易被修補(bǔ)?!?/p>
不追熱點(diǎn),能回頭反思,找成熟度最高的模塊下手,挑戰(zhàn)看上去最不可能的路,對(duì)龍磊而言,恰恰是走得最快的那條路。
本文轉(zhuǎn)載自雷鋒網(wǎng),原標(biāo)題為《“黑客”龍磊:越獄 iOS 11.2,我選了一條最難走的路》