Intel CPU環形匯流排資料外洩

伊利諾大學的一組研究人員開發了一種新的旁道攻擊技術,可以透過英特爾處理器的環形互連操縱資訊外洩。此攻擊可讓您突出顯示另一個應用程式中的記憶體使用資訊並追蹤擊鍵計時資訊。研究人員發布了用於執行相關測量的工具和幾個原型開發。

已經提出了三種利用方法,可以:

  • 使用易受旁道攻擊的 RSA 和 EdDSA 實作時會恢復加密金鑰的各個位元(如果計算延遲取決於正在處理的資料)。例如,帶有有關 EdDSA 的初始化向量(隨機數)資訊的各個位元的洩漏足以使用攻擊來順序恢復整個私鑰。該攻擊在實踐中實施起來比較困難,需要大量保留才能進行。例如,當 SMT(超線程)且 LLC 快取在 CPU 核心之間分段時,會顯示成功的操作。
  • 定義有關擊鍵之間延遲的參數。延遲取決於按鍵的位置,並允許透過統計分析以一定的機率重新建立從鍵盤輸入的資料(例如,大多數人通常在「a」之後鍵入「s」比在「g」之後鍵入「g」快得多) “s”)。
  • 組織一個隱藏的通訊通道,以每秒約 4 兆位元的速度在進程之間傳輸數據,該通道不使用共享記憶體、處理器快取以及 CPU 核心特定的資源和處理器結構。值得注意的是,所提出的建立隱藏通道的方法很難用現有的防止側通道攻擊的方法來阻止。

漏洞利用不需要提升權限,普通的非特權使用者就可以使用。值得注意的是,該攻擊可能會被用來組織虛擬機器之間的資料洩漏,但這個問題超出了研究範圍,並且沒有對虛擬化系統進行測試。建議的程式碼在 Ubuntu 7 中的 Intel i9700-16.04 CPU 上進行了測試。總體而言,該攻擊方法已在 Intel Coffee Lake 和 Skylake 系列的桌面處理器上進行了測試,並且也可能適用於 Broadwell 系列的 Xeon 伺服器處理器。

環形互連技術出現在基於Sandy Bridge微架構的處理器中,由用於連接運算和圖形核心、伺服器橋接器和快取的多個循環匯流排組成。此攻擊方法的本質是,由於環形總線頻寬的限制,一個進程中的記憶體操作會延遲對另一個進程記憶體的存取。透過逆向工程識別實現細節,攻擊者可以產生導致另一個進程記憶體存取延遲的負載,並將這些延遲用作獲取資訊的側通道。

由於缺乏有關匯流排架構和操作方法的資訊以及高水準的噪音,對內部 CPU 總線的攻擊受到阻礙,這使得隔離有用資料變得困難。透過對總線傳輸資料時所使用的協定進行逆向工程,可以了解總線的工作原理。基於機器學習方法的資料分類模型用於將有用資訊與雜訊分離。所提出的模型使得在多個進程同時存取記憶體並且從處理器快取返回資料的某一部分的情況下,可以在特定進程的計算期間組織對延遲的監控。

此外,我們還可以注意到在攻擊 Linux 系統期間識別出 Spectre 漏洞第一個變體 (CVE-2017-5753) 的利用痕跡。此漏洞利用側通道資訊洩漏來尋找記憶體中的超級區塊,確定 /etc/shadow 檔案的 inode,並計算記憶體頁面位址以從磁碟快取中檢索該檔案。

來源: opennet.ru

添加評論