SQUIP,一種影響 AMD 處理器並導致數據洩露的新攻擊

一群我格拉茨科技大學的研究人員 (奧地利),以前以開發 MDS、NetSpectre、Throwhammer 和 ZombieLoad 攻擊而聞名, 揭示了一種新的側信道攻擊 (CVE-2021-46778) AMD 處理器調度程序隊列中用於調度指令在 CPU 的不同執行單元中的執行。

攻擊,稱為 SQUIP,允許確定在另一個過程中的計算中使用的數據 或虛擬機或組織進程或虛擬機之間的隱藏通信通道,允許數據交換而無需通過系統訪問控制機制。

基於第 1、第 2 和第 3 Zen 微架構的 AMD CPU 一代(AMD Ryzen 2000-5000、AMD Ryzen Threadripper、AMD Athlon 3000、AMD EPYC) 被影響到的 當使用同時多線程 (SMT) 技術時。

現代 CPU 使用超標量設計,同時執行多條指令以最大限度地提高性能。 這些 CPU 通過幾個階段處理流水線中的指令:(1) 獲取,(2) 解碼,(3) 編程/執行,以及 (4) 獲取。

攻擊基於評估爭用發生的程度(爭用級別)在不同的調度程序隊列中,並通過在同一物理 CPU 上的另一個 SMT 線程中執行的檢查操作開始時測量延遲來完成。 為了分析內容,使用了 Prime+Probe 方法,該方法涉及用一組參考值填充隊列,並通過測量重新加載時對它們的訪問時間來確定更改。

程序/執行階段可以無序地處理指令以最大化指令級並行性。 我們簡要描述每個階段:

-搜索。 CPU 從 L1i 高速緩存中查找要執行的下一條指令。 
-解碼。 為了實現高效執行,將獲得的指令(宏操作)解碼為一個或多個更簡單的微操作(µops)並放入 µop 隊列中。 這些微操作被饋送到後端,在那裡它們被調度和執行。
- 計劃/運行。 調度器跟踪哪些微操作準備好執行(有可用的輸入),並動態地將它們(無序)調度到可用的執行單元。 一個 CPU 內核有多個執行單元,可以有多個算術和邏輯單元 (ALU)、分支執行單元 (BRU)、地址生成單元 (AGU)。

在實驗期間 研究人員能夠完全重建 4096 位 RSA 私鑰 用於使用 mbedTLS 3.0 密碼庫創建數字簽名,該庫使用蒙哥馬利算法將數字提升到冪模數。 需要 50.500 條軌跡來確定密鑰。

總攻擊時間為 38 分鐘。 演示了在 KVM 管理程序控制的不同進程和虛擬機之間提供洩漏的攻擊變體。 還表明,該方法可用於編排虛擬機之間以 0,89 Mbit/s 的速率和進程之間以 2,70 Mbit/s 的速率進行的隱蔽數據傳輸,錯誤率小於 0,8、XNUMX%。

CPU 內核被劃分為多個邏輯內核或線程,執行獨立的指令流,但共享 L1i 緩存等資源。 這些線程的微操作也動態共享執行單元以允許更高的總利用率。 內核不同部分的分區。
它是通過競爭性交換來完成的。 AMD Zen 架構允許兩個線程
每個核心。 這些線程可以來自單個程序,也可以來自不同的程序,由操作系統管理。

英特爾處理器不易受到影響 攻擊,因為它們使用單個調度隊列,而易受攻擊的 AMD 處理器為每個執行單元使用單獨的隊列。

作為阻止信息洩露的解決方案, AMD 推薦 那個開發商 使用始終在恆定時間內執行數學計算的算法,無論正在處理的數據的性質如何,並且還可以防止基於秘密數據的分叉。

最後,如果您有興趣能夠了解更多,可以在 下一個鏈接.


發表您的評論

您的電子郵件地址將不會被發表。 必填字段標有 *

*

*

  1. 負責數據:MiguelÁngelGatón
  2. 數據用途:控制垃圾郵件,註釋管理。
  3. 合法性:您的同意
  4. 數據通訊:除非有法律義務,否則不會將數據傳達給第三方。
  5. 數據存儲:Occentus Networks(EU)託管的數據庫
  6. 權利:您可以隨時限制,恢復和刪除您的信息。