幾週前,我們在部落格上分享了 EntrySign 漏洞 這使得可以在 AMD 處理器的微碼更新期間逃避數位簽章驗證機制。
羅克 最初,這看起來像是一個僅限於 Zen 1 到 Zen 4 代的錯誤, 現在它擴展到 Ryzen 9000、EPYC 9005、Ryzen AI 300 和 Ryzen 9000HX 等最新晶片。此缺陷允許在特定條件下透過繞過數位簽章驗證機制來修改CPU微程式碼,這將對虛擬化系統的安全性造成嚴重影響。
問題的根源 它在 CMAC演算法使用不當 在微碼驗證過程中。 AMD 傳統上採用私鑰 RSA 對這些更新的內容進行數位簽名以及補丁中包含的公鑰,用於驗證微碼的真實性 在裝載時。然而,應該保證這種完整性的公鑰雜湊是使用 AES-CMAC 產生的,這是一種加密 MAC,與健全雜湊函數不同,它不能保證不會發生碰撞。
這種設計, 再加上 AMD 使用了通用加密金鑰 適用於自 Zen 1 以來的所有 CPU,使得研究人員能夠從任何受影響的處理器中提取密鑰 並重複使用它來操作其他計算機上的微碼補丁。令人驚訝的是,這個金鑰與 NIST SP 800-38B 加密實踐的公開範例相匹配,表明對良好加密實踐的使用不夠謹慎。
偽造的微碼,有效的簽名
由於這一弱點, 研究人員設法產生與 AMD 原始密鑰產生相同雜湊值的公鑰。,他們 允許構建能夠繞過完整性控制的假補丁。這些碰撞是透過在微碼末尾插入額外的區塊來實現的,看似隨機但經過精心計算,從而使數位簽名保持完整。這樣,就可以改變處理器的內部行為,而不會觸發警報機制。
分析工具促進了這個過程 例如 Zentool,這是一套開源實用程序,可讓您研究 AMD 的微代碼並準備修改後的補丁。要實現這種類型的攻擊,攻擊者必須擁有 Ring 0 權限,即存取作業系統的最高級別,如果虛擬機管理程式受到威脅或透過 VT-x 或 AMD-V 等技術的不安全配置,這在虛擬化環境中是可行的。
對 AMD SEV 和安全虛擬化的影響
除了微程式碼操縱之外,EntrySign 還對 AMD SEV(安全加密虛擬化)及其擴展 SEV-SNP(安全嵌套分頁)構成直接威脅,這些技術旨在確保虛擬機的完整性和機密性,即使在面對來自虛擬機器管理程式或主機系統的攻擊時也是如此。此漏洞可能會幹擾受保護的處理器暫存器、修改巢狀頁表以及改變客戶系統的行為,從而嚴重損害其安全性。
AMD 回應和緩解措施
面對這種情況, AMD 已開始發布修復該漏洞的微碼更新。或者,儘管在使用 SEV-SNP 的系統上也需要更新 SEV 模組韌體,但這需要 BIOS 更新。 該公司已經向製造商發送了新的包裹 名為 ComboAM5PI 1.2.0.3c AGESA,但據估計最終補丁可能需要數週甚至數月才能提供給最終用戶。
除此之外, AMD 工程師已經為 Linux 核心提出了一個補丁,可以阻止微程式碼載入。 非官方。此措施旨在防止第三方修改補丁的傳播,例如由愛好者從提取的 BIOS 片段創建的補丁。同時,強烈建議等待官方 BIOS 更新,不要安裝未經驗證的版本。
最後, 如果您有興趣了解更多信息,您可以在中查看詳細信息 以下鏈接。