當前位置: 華文世界 > 手機

發條訊息就能破解iPhone?蘋果系統這次像被「內鬼」攻破的。。。

2024-01-26手機

前幾天,差評君在網上沖浪的時候,看到了一條相當震撼的訊息:

簡單來講,就是主打封閉安全的 iPhone ,不僅被攻擊者發現了漏洞成功入侵,完全控制整個手機。

更加抽象的是入侵的還是知名防毒軟件卡巴斯基團隊成員的 iPhone 。。。

這年頭系統被攻擊的事情本來就少見,更何況被攻擊的還是封閉和安全著稱的 iOS 系統。

這就讓差評君很好奇這樣頂風作案 + 虎口拔牙的人到底是誰?他又是怎麽做到的?

同樣好奇的當然也有受害者本人,也就是卡巴斯基團隊。

他們給這個入侵行動起了個名字叫 「 三角測量行動 」 ,並且對整個入侵事件就進行了復盤,給出了詳細的報告。

卡巴斯基的報告裏 」 三角測量行動 「 附圖

差評君仔細分析了一下卡巴斯基團隊的分析報告,發現入侵者的入侵方法堪稱 「 豪華 」 ,連卡巴斯基團隊自己都懵逼了,從來沒見過這個玩法:

這次針對 iPhone 的攻擊, 居然同時利用了 4 個零日漏洞,就是憑借著 4 個漏洞,攻擊者基本實作了對整個硬件器材的完全控制。。。

額外提一嘴,零日漏洞 ( Zero-Day ) 又叫零時差攻擊,指的就是那種之前從來沒有被發現過、所以沒有被修復或者攔截的漏洞。

我嘗試著把攻擊者利用零日漏洞完成攻擊的整個鏈條捋了一遍,大致是這個樣子的:

通俗點來講,就是黑客給目標手機發了一個假的 iMessage 附件,植入了一個木馬,這個木馬騙過了 iPhone 裏各種嚴防死守的保護機制,甚至繞過了蘋果 A 系列處理器芯片上的硬件防護,完全控制了整個手機硬件器材,可以說為所欲為

在整個過程中,前面提到的 4 個零日漏洞被充分利用,被攻擊的手機只是因為接到了 iMessage 附件,甚至都還沒開啟,整個手機就已經連底褲都被扒光了。

看完我感覺這個攻擊者的操作離譜到匪夷所思,他真的是普通的攻擊者嗎?

聽我講完這些零日漏洞到底是啥,攻擊者又是怎麽利用他們的,估計就會懂我為什麽會有這樣的疑問了。

在最開始,攻擊者會給目標手機發送一份惡意的 iMessage 附件,但是按照 iMessage 對待附件的邏輯,它會在不向使用者顯示任何跡象的情況下處理這個附件。

也就是說,使用者可能還沒察覺這個是不是有問題的附件, iMessage 就已經開始處理這個附件了,這個有問題的附件進入到你的 iPhone 的過程,使用者是無法察覺的。

光是無法察覺這一點,估計已經嚇壞一大幫人了,但是這還只是入侵者的引子

攻擊者真正的第一個目標是一個名為 CVE-2023-41990 的零日漏洞。

這個漏洞存在於一款用來調整字型的顯示效果的系統 API 指令中,可以讓攻擊者透過惡意 iMessage 附件遠端執行程式碼,或者說植入了一個木馬。

是的,蘋果的字型指令中也會有漏洞,而且該指令自上世紀 90 年代初就已存在。

但是這個字型指令本身是蘋果公司獨有的,而且蘋果並沒有公開這一條指令的存在,很多關註這個事情的人分析到這裏的時候都懷疑攻擊者的真實來頭。

第一遍看的時候我以為,攻擊者植入的木馬就是這個 iMessage 附件本身。

但實際上它只是開啟字型指令漏洞的鑰匙,真正的 「 木馬 」 是在沒公開的字型指令的漏洞裏被植入的。

被植入之後,這個 「 木馬 」 一路高歌猛進,從程式碼框架手上騙到了執行手機上別的程式的能力,

這已經進入到 iOS 系統非常深的內部了, 甚至已經差不多要摸到系統內核了。

一般來說到了這裏,攻擊者已經可以收手了,直接劫持一個本地程式,也能讀取手機上的一些私密和資訊。

但對於這一次入侵的攻擊者來說,前面所做的還只是他的開胃菜, 他真正的目標就是 iOS 的系統內核。

按照正常的思路,攻擊者現在已經進入到 iOS 系統內部,下一步他應該會直接去攻擊系統內核。

但是他沒有這麽做。

攻擊者利用了內核中第二個零日漏洞,記憶體管理 - 記憶體對映系統上的一個漏洞,直接先去控制了最最最底層的硬件記憶體 ( 獲取了整個實體記憶體的讀取和寫入許可權 )

相當於說,先放下了 iOS 的這一套系統不管,跑到了 A 系列芯片上,控制了處理器上實際實體記憶體。

我們平時接觸到的 iMessage 、微信這些應用程式,並不會直接操作實際的芯片上的實體記憶體。

比如微信要儲存一個檔,並不是微信自己的程式碼跑到硬件記憶體芯片上去寫,它只要把檔交給系統的介面。

剩下的具體作業系統會統一安排,到硬件硬件記憶體芯片上去寫入。

既然攻擊者的目標是 iOS 系統內核,那為啥要費這麽大勁兒繞過它,而去管那麽遠的硬件記憶體的事情呢?

實際上到這裏為止,系統內核還是安全的,只是被利用了一下。

因為就算攻擊者能夠往實際的實體記憶體裏亂寫東西,也沒有用——攻擊只能往這裏面寫,但是不知道這一個記憶體塊存的是什麽東西、是用來幹嘛的。

而且內核存取硬件記憶體的路徑也是七彎八繞的根本不知道,攻擊者企圖從硬件記憶體反攻回內核簡直是在自己找死,自己在裏頭繞幾圈沒準就迷路繞死了。

除此之外攻擊者還有一個 「困難 」 要克服 —— 蘋果的硬件級記憶體防護。

比如蘋果的頁表保護層 PPL (Page Protection Layer) ,這樣的硬件級別的記憶體防護,專門防這種能搞定硬件記憶體的攻擊者。

在這次的攻擊事件發生之前,蘋果的這種深度基於硬件的保護被認為是牢不可破的。

因為這樣的硬件級別記憶體防護高度依賴於 SOC 設計本身, 正常情況下的只芯片設計者自己知道這個保護是怎麽回事。

但是攻擊者又是怎麽破的呢 ?

準確地說他並沒有攻破這一層的硬件級記憶體防護。

因為他找到了第三個零日漏洞——蘋果的這個頁表保護層雖然很強勢,但是可以繞過。

而攻擊者是怎麽利用這個零日漏洞的呢?用卡巴斯基團隊自己的話來說就是:

攻擊者能夠把數據寫入某個特定的實體位址,透過將數據、目的地址和數據哈希寫入到未被固件使用的芯片的未知硬件寄存器,從而繞過了基於硬件的記憶體保護。

簡單講就是,蘋果的這一層硬件級防護,只能保護那些 被系統內核用過的 硬件區域。

也就是說, 硬件記憶體裏有一塊隱藏區域,連蘋果的安全系統都不知道它的存在,保護不到它,但是這個黑客知道。

於是這塊隱藏區域成為了繞過安全檢查的後門。

攻擊者就這樣繞過繞過了這一層硬件級別的防護,劫持了系統內核。

在利用完前面三個零日漏洞之後,攻擊者基本就可以在器材上做任何他想做的事情了,他想要進的系統內核,也能進了。

但是攻擊者還沒有要收手的意思。

估計手機自己都無語了,我現在從到裏又從裏到外都已經被你看了個遍了,你想讓我幹嘛也我也完全要聽你的了,你還想怎麽樣?

事實上攻擊者確實也可以清除掉所有漏洞利用痕跡,繼續埋伏在這一台 iPhone 裏,悶聲發大財,或者就幹脆擦屁股走人。

但是攻擊者選擇了悄悄地執行 Safari 瀏覽器的行程,找到了另一個零日漏洞。。。

假如讀者裏有搞攻防的小夥伴可能現在的心情已經日了狗了。

大家可能不知道 iPhone 的一個零日漏洞有多值錢 —— 去年的 Pwn2Own 大會拿一百萬美元都沒釣出來蘋果的 0day。

結果這哥們輕輕松松就扔了四個出來。

而且最離譜的是,你們知道他拿這第四個 0day 漏洞幹了什麽嗎?

他又執行了一遍先控制實體記憶體再反攻 iOS 內核的操作!!! (最開始提到第一個漏洞做過的事情)

這位黑客,請問你是來搞黑客攻擊的還是來炫富的?!

假如 iPhone 能說話,可能也要開始大喊開掛了。

好了,這次事件的攻擊流程我們總算是大概給大家盤完了。

這次攻擊事件最有意思就是前面說到的,被攻擊者用來從硬件記憶體,反攻系統內核的 「 隱藏區域 」

這個隱藏區域,其實是某個沒有被用到的硬件寄存器。

正常情況下,各種可用的外圍器材比如馬達、喇叭、麥克風等等,都會提供特殊的硬件寄存器,CPU 可以透過這些寄存器來操作這些器材。

而此次攻擊者用來繞過蘋果硬件層保護的這些寄存器,CPU 自己都沒有呼叫過,也不知道他們是用來幹嘛的。

這就是為啥要說這些寄存器是 「 未知 」 的。

誇張點說,即使是是蘋果自己的工程師來了,不花上一點功夫都不一定能找到這些硬件寄存器在哪裏。

那攻擊者是怎麽知道這些未知寄存器的存在的?

又是怎麽知道用這些寄存器就能繞過蘋果的硬件級記憶體保護,從而實作整個手機硬件的控制的?

對於這一點,作為受害者和第一手資料分析者的卡巴斯基團隊,並沒有給出合理的解釋,只是非常委婉地指出:

「 我們猜測,這個未知的硬件特性很可能是蘋果工程師或工廠用於偵錯或測試的目的,或者是無意中被包含進去的。因為這個特性沒有被固件使用,我們不知道攻擊者是如何知道如何使用它的。」

卡巴斯基團隊

但是其他幾個零日漏洞都隱隱約約地透露出,這個攻擊者不是一般的外部攻擊者。。。。

這人說不定真是個內部人員,一直知道這些工程後門的存在。

但是這人也知道這些後門又是iMessage又是硬件記憶體的,會涉及到很多個產品線。

按蘋果這種大公司內部的協調效率的話,不推他們一下他們大概率是不會改的。

所以這位大哥直接拿這些東西黑了卡巴斯基,借卡巴斯基的手把事捅大了。

事情是不是一下子的變得合理了起來?

不過大家別慌,這些漏洞已經被蘋果堵上了。