中國駭客 5 秒幹掉 macOS 系統,攻擊方法首次全球揭曉

作者 | 發布日期 2016 年 08 月 06 日 0:00 | 分類 Apple , 網路 , 資訊安全 follow us in feedly

用戶在蘋果電腦上點擊了一條連結,在他眼裡,一切都那麼平靜。然而他並不知道,隨著點擊的輕響,無數數據在電腦中奔湧激盪。在秒針走動 5 次的時間內,蘋果公司頂尖程式設計師們藉由代碼構建的層層防禦體系毀滅殆盡,賽博世界的上帝悄然易主。電光火石間,駭客奪取了電腦的一切權限。



這件事,真實地發生在「駭客奧運會」──Pwn2Own 2016 上。做出這種華麗攻擊的,正是來自騰訊科恩實驗室的駭客們。令人髮指的是,他們還使用了另一種姿勢,再次讓 macOS 的世界失守崩潰。

正是這種震懾人心的駭客美學,幫助他們成功獲得了「世界破解大師」的稱號。

從今年 3 月開始,全世界都在等待這群「大師」揭曉那次神秘攻擊的方法。5 個月過去了,科恩實驗室的駭客們終於決定還原這次攻擊的技術細節。他們選擇的舞台,是駭客界的最高盛會──BlackHat USA。

雷鋒網配圖

▲ 由左至右分別是:Gross、Flanker(何淇丹)、傅裕斌、陳良。

隱密入口──關於那次攻擊的驚人真相

陳良、Flanker(何淇丹)、傅裕斌、Gross,正是當時破解 macOS 的主力駭客。

他們親口講述的真相,幾乎超出所有人的想像:兩次完美的進攻,全部擊潰了蘋果的圖形渲染系統。這種攻擊方法,在世界上只出現過一次。而那一次攻擊的導演,仍然是他們。

這是一個隱密的入口。

陳良告訴雷鋒網,

遠端攻擊是所有攻擊中難度較大的。而駭客進行遠端攻擊的首選正是瀏覽器 Safari。這兩次成功的攻擊,利用了兩套「Safari + 圖形渲染」漏洞。

對於這種攻擊的發生,蘋果也負有一定的責任。 Flanker 說,「在舊的蘋果系統中,一般的應用是無權調用 GPU 和圖形渲染系統的,所有的圖形渲染都必須透過『窗口管家』實現;而在新的蘋果系統中,為了保證用戶體驗的順暢,蘋果開放了普通應用調用 GPU 的權限。」

這正是一切災難的邏輯起源。

雷鋒網配圖

▲ 中國駭客團隊展示 macOS 圖形渲染系統工作邏輯示意圖。

畸形的數據

簡單科普一下:如果一個 App 想要繪製圖形,需要提供一些邏輯坐標,這些坐標透過內核驅動器傳遞給 GPU 繪製,進而轉換成屋裡坐標,出現在顯示器上。

對於已經透過漏洞「綁架」Safari 的陳良一眾,可以偽造 Safari 的命令,向圖形繪製系統發出各種畸形的數據。

例如一個非常非常長的矩形,例如一個邊長為負數的矩形。

對於圖像渲染系統來說,無論 Safari 的命令有多麼不可靠,他都無法「抗旨不尊」。於是,可憐的渲染系統手握小皮鞭,逼迫 GPU 畫出一個「邊長為負數的矩形」。於是 GPU 方了,它的世界崩潰了,各種沒頭沒腦的數據被寫進記憶體,駭客的嘴角露出一絲笑容。

然而,這還遠遠不夠。

雷鋒網配圖

▲ 記憶體溢出示意圖。

精心構建的數據陷阱

讓系統完全崩潰顯然不是駭客的目的,他們的目的是精準地控制這種崩潰──讓 GPU 的「哀號」組成一段「動人的交響曲」。

為了達到這個目的,他們面對「3 座大山」。

  1. 他們要利用這個微小的創口,用手術刀精準地在記憶體裡排列出他們想要的代碼。
  2. 即使這麼艱難,但蘋果的代碼還是「閉源」的,他們必須透過逆向工程「猜」出蘋果的代碼邏輯。
  3. 雪上加霜的是,封閉的蘋果系統在安全防護上之決絕遠超過 Windows。

事實上:他們每一個微小的動作,都會造成大面積的影響。

舉例來說,

這就像駕駛一部堆高機穿針引線,連續完成 100 次;

這就像戴上墨鏡玩遊戲,連續破關不浪費一滴血;

這就像同時交往 100 個女朋友,還讓她們感覺不到彼此的存在。

總之,這件事情,比你想像的更難。

雷鋒網配圖

▲ 現場展示對 macOS 的破解過程。

Flanker 告訴雷鋒網:

比較簡單的漏洞,可以允許駭客在任意地址寫任意值。這種情況就很容易。但是和圖形相關的漏洞通常是依靠 GPU 執行浮點運算。所以我們必須滿足它的性質──浮點數要對應很大的整形,所以必須在精確的記憶體位置布置極其特別的數據。

從技術上來說,他們需要找到一片穩定的記憶體,然後在極其短暫的時間內,把自己精心構建的代碼鋪進去。就像在飛馳的列車旁,精準地跳上一個指定的車門。然而,上帝在大多數時候並不那麼給力。

這個漏洞處於比較活躍喧囂的記憶體區,利用時一旦內存收到干擾,就會失敗。所以我們發明了一套「記憶體風水論」。利用記憶體分配某些「先進先出」的特性,構造了一些「空洞」,然後想辦法讓我們的代碼正好落入這片「空洞」之中。

Flanker 這樣解釋。

以上的技術路徑,是兩套破解方案中較為複雜的一套,被他們稱為「內核態漏洞方案」,而另一套「用戶態漏洞方案」雖然理論相近,但利用方案相對簡潔。

雷鋒網配圖

▲ 現場展示影片中,攻擊者獲得系統最高權限。

永不消逝的噪音 vs. 永不磨滅的駭客精神

正如前文所言,這種破解相當於「在飛馳的列車旁,精準地跳上一個指定的車門」。然而,Flanker 和傅裕斌告訴雷鋒網一個殘酷的事實:存在一定的可能性,當你準確地跳向車門時,車門卻是關閉的。

這種在電影《全面啟動》最底層將入侵者扼殺掉的力量,仍然是來自記憶體的「永不消逝的噪音」。 Flanker 說,「用戶態漏洞方案」有 15% 至 20% 的失敗機率,而「內核態漏洞方案」雖然失敗機率極低,但是仍然難保 100% 成功率。

這些來自賽博實際的的噪聲,是他們盡了最大的努力,仍然不能控制的最低值。

在 3 月的 Pwn2Own 大賽上,嚴苛的賽制規定,一個團隊只能在 15 分鐘的時間內最多進行 3 次嘗試。也就是說,雖然概率很小,但是他們仍然有失敗的可能。

然而這一次,一直為他們出難題的上帝終於眷顧了他們,兩種方案全部一次攻擊成功,分別花費 5 秒和 1 分鐘。

上帝眷顧他們的理由或許很多,但是有一條不容置疑,那就是這群中國駭客身上流淌著的,永不磨滅的駭客精神。

(本文由 雷鋒網 授權轉載)

延伸閱讀:

關鍵字: , ,

發表迴響