Root,一場精妙的密室逃脫 | 315特別報道

來源:雷鋒網 2016-03-10 08:00:00

雷鋒網按:本文是3.15維權係列報道之“Root”。

黑客的快感源於什麽呢?

雖掘螻蟻之穴,卻蕩破千裏之堤;麾下萬馬千軍,仍如入無人之境。

大抵如此。

2015年11月,在日本舉行的Pwn2OwnMobile黑客大會上。龔廣麵對一部Nexus6手機。他輕輕點擊了一個網址,隨即一片沉靜,似乎什麽都沒發生。然而短短片刻,桌麵上突然出現了一個新的圖標。原來,在電光火石間,係統已經自動從GooglePlay市場下載並且安裝了一個被他指定的App。這一切都靜靜地發生在水麵之下,手機的主人根本無從發現。

現場短暫的沉默,繼以雷動的掌聲,祝賀他優雅地扒掉Android係統的底褲。

一個漏洞,優雅地推倒 Android

觀眾並不知道,這一係列流暢的進攻,其實是龔廣的下策。他原本的計劃是通過相互配合的兩個漏洞,一舉拿下係統控製權,讀出手機所連接的 Wi-Fi密碼。

然而,無巧不成書。就在他動身參加比賽的兩周前,穀歌發布了新的升級。閱讀升級日誌之後,龔廣內心一驚:本來準備妥當的兩個漏洞,其中一個看起來已經被穀歌發現並且修複了。

他重演了一遍攻擊過程,果然失效。不過,作為江湖老手,一個優雅的黑客,他也沒那麽容易認輸。在之前的研究中,他記得GooglePlay存在一個小的係統設計缺陷,於是用剩餘的十多天時間重新寫攻擊代碼,最終在比賽開始之前一天完成了攻擊程序。這才有了前麵發生的一切——僅僅使用一個漏洞就擊潰了Android係統的防線。

雖然這次攻擊看起來賞心悅目。但是龔廣告訴雷鋒網,他的攻擊並沒有提取到係統的頂級權限,也就是“Root”。

密室逃脫,Root更像一種輪回

在Android係統安全中,Root就是皇冠上的明珠。如果能拿到它,就可以成為手機中的上帝,對所有的文件為所欲為,並且可以讀取手機主人的所有敏感信息。

雖說在日常生活中,我們普通人似乎都可以下載一個Root工具把自己的手機“幹翻”,但是Root卻遠比想象中艱難。龔廣告訴雷鋒網,Root需要一連串漏洞(一般為3-4個)的有效配合才可以實現。

如果打一個“優雅”的比方,那大概就是:

黑客在製造一枚精確製導的導彈,穿過係統為進攻者準備的導彈防禦係統——四道不同的關卡,最終準確地擊中敵人的菊花。

這四道關卡,就像四個暗箱。它們層層嵌套,每一個看上去都無懈可擊。而你想獲得自由,就必須衝破這四層枷鎖,少一個都不行。如果你願意,就隨我變成一段複仇的代碼,享受一下鮮血四濺的樂趣吧。

故事馬上開始。

{反綁的繩索} 網頁腳本

手機的主人通過Chrome瀏覽器點擊了鏈接,於是我們成功地閃入了手機之中。但是,我們發現:

自己不僅被困在Chrome這間宮殿當中,還被反綁了手腳。

因為我們既沒有權限讀取Chrome之外的信息,也沒有權力對係統發號施令。

作為一個網頁腳本,我們最多有權調整一下網頁的布局、圖片的位置。顯然,作為一個刺客,這點權力是沒有卵用的。這個時候,我們突然發現了房間裏的一張桌子,我們用桌角可以割開捆綁自己的繩子。

當我們重新解放雙手的時候,我們已經成功地利用了第一個漏洞。此時已經沒有任何人可以阻擋我們從口袋裏掏出“作案工具”了。

{無門的宮殿} Chrome

然而,我們的境況並沒有變得太好,因為這間叫做Chrome的宮殿是沒有門的。如果我們無法逃逸出去,將會困死在這裏。

然而俗話說,上帝在關上一道門的時候,必定會打開一扇窗。天窗是宮殿裏唯一和外界連通的渠道。這扇天窗顯然不是為了人進出而設計的,而是為了房間內外空氣流通(App內外信息交互)之用。但是在我們眼裏,它成為了一個絕好的漏洞。

我們用手中的工具,把屋裏的家具改裝成了一把梯子,終於夠到天窗。此時,我們完成了Root中的經典動作——沙箱逃逸。

{金色的鑰匙} 係統服務進程權限

寶藏就在眼前的房間裏,然而這個華麗的房間卻大門緊鎖。這扇大門擁有一個奇特的鎖,要想打開它,必須用找到一把金色的鑰匙:係統服務權限。

作為一個黑客,我當然知道這把鑰匙藏在哪。隻不過這把鑰匙被放在一個密碼箱中,一般人絕對沒有可能碰到。當我成功地破解了密碼箱,拿到了金色鑰匙的一瞬間,我已經成功利用了第三個漏洞。

推開門,我將要麵對最終的水晶球——Android係統的內核。

{迷之水晶}Linux內核

站在水晶球麵前,我知道我們距離成功隻有一步之遙。隻要知道最終的咒語,我們就可以解開Android的秘密。水晶球向四周散射出耀眼的光芒,無數0和1交替閃爍在四周的牆壁上,這是Android係統Linux內核的底層代碼。而我們要做的,就是在這數以億記的數字中,找到那一個微小的錯誤。這個錯誤可能是驅動程序的漏洞,也可能是內核本身的漏洞。總之,它就是打開一切的咒語。

在審看了數萬行代碼之後,一個微小的錯誤終究沒能逃脫我們的眼睛。

我們高聲喊出了最終的咒語,一道白光閃耀蒼穹。我們全速奔襲,終於衝破了Android構建的虛擬世界,霎那間回到了我們的天地。周遭景物依然熟悉,然而世界已經日月新天。

這恰似輪回。

以上就是一次Root的全過程。當我們完成了這個過程,就可以帶領千軍萬馬重新殺回手機之中。那時節,將是金鼓齊鳴,片甲不留。

走上“絞刑架”,一個漏洞的宿命

然而,這些漏洞的命運是悲慘的。因為他們本不該存在於世上。曾經讓我們縱橫捭闔的漏洞免不了一個個走上絞刑架。

作為硬件生產廠商的高通和聯發科,還有作為軟件商的穀歌,會根據龔廣和諸多黑客提供的樣本進行漏洞修複。如果手機廠商選擇跟進,升級到最新的硬件固件和Android係統版本(當然很多廠商為了係統的穩定和用戶體驗,並不會及時對所有的軟件進行升級),那麽一切都會變得更加困難。

未來的某一天,當我們再次通過瀏覽器回到Android係統之中,也許會發現:

桌子被抹去了棱角,天窗增加了守衛,密碼箱換了樣式,而水晶球的咒語不再靈驗。

這個時候,就是“龔廣們”再次出發的季節了。

如今,龔廣去年用於攻破Android係統的漏洞已經被穀歌修複,他也再次受邀到Pwn2Own做演講,分享這次攻擊的技術細節和Android世界的驚心動魄。

穀歌不斷地增加“漏洞緩解措施”,是否會讓漏洞利用或者Root越來越難呢?龔廣給出了肯定的答案。不過,沉思片刻之後,他告訴雷鋒網:正是由於越來越難,這件事才變得越來越有意思。

背景資料:龔廣,360手機衛士安全研究員。主攻瀏覽器和Android漏洞挖掘,向穀歌提供大量Android高危漏洞,數次獲得穀歌現金激勵,被稱為Android係統的“賞金獵人”;多次參加國際黑客大會並發表主題演講。

點擊查看原文

相關鏈接