阿姆斯特丹自由大學的一群研究人員發現了一種新的 (CVE-2020-0543) 存在於英特爾處理器的微架構中,值得注意的是,該漏洞允許恢復在另一個 CPU 核心上執行的某些指令的結果。這是推測執行機制中第一個允許不同 CPU 核心之間資料洩漏的漏洞(此前,洩漏僅限於同一核心的不同執行緒)。研究人員將該問題命名為 CROSSTalk,但在 此漏洞被稱為 SRBDS(特殊暫存器緩衝區資料採樣)。
該漏洞涉及 一年前,我們提出了一種用於 MDS(微架構資料採樣)類別問題的方法,該方法基於側通道分析方法對微架構結構中的資料的應用。 CROSSTalk 瀕臨崩潰 ,但洩漏源有所不同。
新的漏洞利用了先前未記錄的中間緩衝區中的洩漏,該緩衝區由所有 CPU 核心共用。
問題在於,一些微處理器指令(包括 RDRAND、RDSEED 和 SGX EGETKEY)是使用一種名為 SRR(特殊暫存器讀取)的內部微架構操作來實現的。在易受攻擊的處理器上,SRR 傳回的資料會儲存在所有 CPU 核心共用的中間緩衝區中,之後會傳送到與發動讀取作業的特定實體 CPU 核心綁定的填充緩衝區。之後,該值會從填充緩衝區複製到應用程式可見的暫存器中。
中間共享緩衝區的大小對應於一個快取行,該大小通常大於正在讀取的資料的大小,不同的讀取會影響緩衝區中的不同偏移量。由於共享緩衝區被完整地複製到填充緩衝區,因此不僅移動了當前操作所需的部分,還移動了其他操作(包括在其他 CPU 核心上執行的操作)剩餘的資料。
如果攻擊組織成功,則系統上經過驗證的本機使用者可以確定在另一個流程或英特爾 SGX 飛地內執行 RDRAND、RDSEED 和 EGETKEY 指令的結果,而不管程式碼在哪個 CPU 核心上執行。
發現該問題的研究人員 原型漏洞利用展示如何洩漏透過 RDRAND 和 RDSEED 指令獲得的隨機值,從而在系統上執行一次數位簽章操作後恢復在 Intel SGX 飛地中處理的 ECDSA 私鑰。

問題 此漏洞影響範圍廣泛,包括英特爾酷睿 i3、i5、i7、i9、m3、賽揚(J、G 和 N 系列)、凌動(C、E 和 X 系列)、至強(E3、E5、E7、W 和 D 系列)、至強可擴充處理器等。值得注意的是,英特爾於 2018 年 2019 月獲悉該漏洞,並於 XNUMX 年 XNUMX 月提供了原型漏洞利用程序,演示了 CPU 核心之間的資料洩漏,但由於實施複雜性,修復程序的開發被推遲。今天提出的微程式碼更新透過改變 RDRAND、RDSEED 和 EGETKEY 指令的行為來阻止該問題,從而冗餘地覆蓋共享緩衝區中的數據,防止殘留資訊在其中沉積。此外,緩衝區存取將被暫停,直到讀取和覆蓋操作完成。
此保護的副作用是執行 RDRAND、RDSEED 和 EGETKEY 指令時延遲增加,嘗試在不同的邏輯處理器上同時執行這些指令時吞吐量降低。執行 RDRAND、RDSEED 和 EGETKEY 也會暫停其他邏輯處理器的記憶體存取。這些功能可能會對某些伺服器應用程式的效能產生負面影響,因此韌體提供了一種機制 (RNGDS_MITG_DIS),用於停用在英特爾 SGX 安全區域之外執行的 RDRAND 和 RDSEED 指令的保護。
來源: opennet.ru
