英特爾發布微代碼更新修復RAPL接口洩露CPU敏感數據的安全漏洞
英特爾今日發布了CPU微代碼更新,以防止攻擊者濫用RAPL機制、從其CPU中竊取敏感數據。與此同時,一支研究團隊披露了一種名叫“鴨嘴獸”(Platypus)的新型攻擊方法,全稱為“針對受保護的用戶敏感數據的功率洩露攻擊”(Power Leakage Attacks:Targeting Your Protected User Secrets )。
被攻擊者利用RAPL 接口,全稱為“運行平均功率限制”(Running Average Power Limit)。其支持通過系統固件、或工具軟件,來監測CPU 和DRAM 的功率消耗。
作為一種已被運用多年的應用程序/ 系統硬件性能追踪和調試接口,其能夠有效地讓固件和工具軟件調取CPU 為執行相關任務所需耗費的能源。
然而在今日發表的一篇論文中,來自格拉茨技術大學、伯明翰大學、以及CISPA 亥姆霍茲信息安全中心的研究人員團隊,已經揭示瞭如何通過Platypus 攻擊來確定CPU 內部正在處理哪些數據,然後通過RAPL 接口匯報相應的值。
研究人員指出,借助Platypus,其證明了可通過觀察功耗的變化,來區分不同的指令、以及不同的操作數和存儲負載的權重,從而達成推斷出負載值的目的。
PLATYPUS – Breaking KASLR with Intel RAPL(via)
這些“已加載值”特指CPU 中加載的數據,比如加密密鑰、密碼、敏感文檔、或任何其它類型的信息。
通常情況下,這類數據的訪問可受到一系列安全機制的防護。比如內核空間佈局隨機化(KASLR),或在硬件隔離的受信任執行環境(TEE)下運行,Intel 公司的SGX 也是其中一種。
然而新研究表明,Platypus 攻擊允許別有用心者通過查看功耗值的變化,來繞過所有這些安全機制構築的信息圍欄。
測試期間,研究人員稱其僅通過持續20 秒的RAPL 功耗值觀察,即成功地繞過KASLR 機制的防護,並從Linux 內核中檢索了相關數據。在另一項測試中,他們還檢索了在Intel SGX 安全區內處理的數據。
不過要從SGX 安全區內檢索RSA 秘鑰,需要攻擊者通過Platypus 展開持續100 分鐘的RAPL 數據監測。若要從SGX 安全區和Linux 內核內存空間檢索AES-NI 加密密鑰,更需要耗費26 個小時。
而且相比之下,Linux 較其它平台更易受到Platypus 攻擊的影響。因為Linux 內核附帶了powercap 框架,該通用驅動程序可用於和RAPL 接口(及其它功率限制API)進行交互,以輕鬆讀取功耗值。
當然,這並不意味著Windows和macOS就可以高枕無憂。只是在某些情況下,攻擊者必須在目標設備上安裝Intel Power Gadget實用工具應用程序,才能夠通過RAPL接口進行交互。
但無論底層操作系統如何處理,針對Intel SGX 安全區的Platypus 攻擊都可以在一定程度上得逞。因為攻擊者僅追求對SGX 安全區的訪問,而不涉及OS 底層及其獨立的CPU 內存區域。
PLATYPUS – Attacking AES-NI with Intel RAPL(via)
除了通過物理接觸,研究團隊也證實Platypus 攻擊可遠程發起。比如通過將攻擊代碼植入惡意軟件的安裝包中,即可在沒有真人直接介入的情況下對目標系統展開攻擊。
當然,Platypus 和PlunderVolt 攻擊也存在著較大的區別。後者是針對Intel CPU 電源電壓接口的另一種形式的攻擊,實際應用中也更加積極(比如主動修改功率值)。
相比之下,Platypus 要更加被動一些,僅通過查看功耗數據來推斷出CPU 正在處理的敏感數據。慶幸的是,芯片製造商已於今日發布了CPU 微代碼(固件)修復更新。
最後,相關安全報告涉及CVE-2020-8694(Linux + Intel)、CVE-2020-8695(Intel)、以及CVE-2020-12912(Linux AMD),研究論文(PDF)和更多細節可移步至Platypus Attack網站查看。