一種可以導致數據泄漏的新側信道攻擊方法幾乎可以攻陷任何現代CPU,但我們不太可能在短期內看到它被廣泛實際利用。

這項研究是由來自奧地利格拉茨科技大學和德國CISPA亥姆霍茲信息安全中心的八名研究人員共同進行的。參與這項研究的一些專家發現了臭名昭著的Spectre和Meltdown漏洞,以及另外幾種側信道攻擊方法。

這種新的攻擊名為Collide+Power,其破壞力與Meltdown和一類名為微架構數據采樣(MDS)的漏洞相提并論。

Collide+Power是一種基于軟件的通用型攻擊,針對搭載英特爾、AMD或Arm處理器的設備,它適用于任何應用程序和任何類型的數據。芯片制造商們正在發布各自的安全公告,該漏洞已被命名為CVE-2023-20583。

然而研究人員指出,Collide+Power不是一個真正的處理器漏洞,它利用一些CPU部件旨在共享來自不同安全域的數據這一點大做文章。

攻擊者可以利用這些共享的CPU部件將自己的數據與來自用戶應用程序的數據結合起來。攻擊者在改變他們控制的數據時,可以數千次迭代測量CPU功耗,這使他們能夠確定與用戶應用程序關聯的數據。

沒有特權的攻擊者(比如通過在目標設備上植入惡意軟件)可以利用Collide+Power攻擊,獲得有價值的數據,比如密碼或加密密鑰。

研究人員特別指出,Collide+Power攻擊增強了其他功率側信道信號,比如PLATYPUS和Hertzbleed攻擊中使用的信號。

研究人員解釋道:“PLATYPUS和Hertzbleed等以前基于軟件的功率側信道攻擊針對加密算法,需要確切了解目標機器上執行的算法或受害者程序。相比之下,Collide+Power針對的是CPU內存子系統,內存子系統把精確的實現抽取出來,因為所有程序都以某種方式需要內存子系統。此外,任何反映功耗的信號都可以被使用,因為Collide+Power利用了基本的功率泄漏。”

研究人員發表了一篇詳細介紹其研究工作的論文,還推出了Collide+Power網站,專門介紹這一研究發現。

他們描述了Collide+Power攻擊的兩種變體。在要求啟用超線程機制的第一種變體中,攻擊目標是與不斷訪問秘密數據(比如加密密鑰)的應用程序相關的數據。

“在此過程中,受害者不斷將秘密數據重新加載到被攻擊的共享CPU部件中。在同一物理核心上運行線程的攻擊者現在可以利用Collide+Power,強制秘密數據與攻擊者控制的數據之間發生碰撞。”

圖1

攻擊的第二種變體不需要超線程機制,也不需要目標不斷訪問秘密數據。

專家們表示:“攻擊者在這里利用了操作系統中一個所謂的預讀取小裝置。這個預讀取小裝置可以用來將任意數據引入到共享的CPU部件中,再次強行造成數據碰撞,并找回數據。”

雖然從理論上來說這種攻擊方法可能會產生重大影響,但在實踐中,數據泄漏率比較低,這種方法也不太可能在短期內被用來攻擊最終用戶。

研究人員已經在這種場景下設法實現了每小時泄漏4.82比特的數據:被攻擊的應用程序不斷訪問秘密信息,攻擊者可以通過直接報告CPU功耗情況的運行平均功率限制(RAPL)接口,直接讀取CPU功耗數值。按照這個泄漏率,攻擊者需要幾個小時才能獲得密碼,需要幾天才能獲得加密密鑰。

研究人員發現,在特殊場景下,攻擊者可以大大提高數據泄漏率,最高每小時可泄漏188比特的數據。

格拉茨科技大學參與這個項目的研究人員之一Andreas Kogler告訴安全外媒:“攻擊者可以達到每小時188比特的泄漏率,具體取決于被攻擊的應用程序和內存中的秘密數據。比如說,密鑰或密碼是否多次出現在緩存行中。”

另一方面,在實際環境的攻擊模擬中,研究人員遇到了實際限制,這大大降低了泄漏率——如果采用遏制手段,泄露每比特就需要一年多。

盡管目前這種攻擊帶來的風險比較小,但Collide+Power研究強調了潛在的問題,并為未來的研究鋪平了道路。

至于緩解措施,在硬件層面防止這類數據碰撞并非易事,需要重新設計通用CPU。另一方面,可以通過確保攻擊者無法觀察到與功率相關的信號來阻止攻擊,這種類型的緩解措施適用于所有的功率側信道攻擊。