一群人 格拉茨工業大學的研究人員 (奧地利),以前 以開發 MDS、NetSpectre、Throwhammer 和 ZombieLoad 攻擊而聞名, 揭曉 幾天前 一種新的攻擊方法 (CVE-2021-3714) 它通過通道端的內存頁面重複數據刪除機制可以確定內存中是否存在某些數據,組織內存內容的字節洩漏或確定內存佈局以繞過基於地址隨機化(ASLR)的保護。
新方法 與重複數據刪除機制的攻擊變體不同 前面演示了當從外部主機執行攻擊時,使用作為更改攻擊者通過 HTTP / 1 和 HTTP / 2 協議發送的請求的響應時間的標準。 該攻擊針對 Linux 和 Windows 服務器進行了演示。
在數據更改導致使用寫時復制 (COW) 機制克隆已刪除重複數據的內存頁面的情況下,內存重複數據刪除攻擊利用寫入操作的處理時間差異作為信息洩漏的渠道。
在這個過程中,內核確定了相同的內存頁 不同的過程 並將它們結合起來,將相同的內存頁映射到物理內存的一個區域,只存儲一個副本。 當其中一個進程嘗試更改與已刪除重複頁面關聯的數據時,會引發異常 (page fault) 並且使用copy-on-write機制,自動創建一個單獨的內存頁副本,分配給複製時間最多的進程,這可能是數據變化重疊的標誌與另一個過程。
研究人員表明,由此產生的延誤 COW機制 不僅可以在本地捕獲,還可以通過分析網絡響應傳遞時間的變化來捕獲.
有了這些信息,研究人員 已經提出了幾種方法來確定來自遠程主機的內存內容 通過 HTTP/1 和 HTTP/2 協議分析請求的執行時間。 為了保存所選模板,使用典型的 Web 應用程序將請求中接收到的信息存儲在內存中。
攻擊的一般原理歸結為填充服務器上的內存頁 數據可能會復制服務器上已有的內存頁面的內容。 之後, 攻擊者等待內核進行重複數據刪除所需的時間 並合併內存頁, 然後修改受控重複數據 並估計響應時間以確定是否成功。
在進行的實驗中,對廣域網的攻擊最大信息洩漏率為每小時 34,41 字節,對本地網絡的攻擊為每小時 302,16 字節,這比其他旁道數據提取方法更快。 (例如,在 NetSpectre 攻擊中,數據傳輸速率為每小時 7,5 字節)。
提出了三種攻擊工作的變體:
- 第一種選擇 允許您在使用 Memcached 的 Web 服務器的內存中定義數據. 攻擊歸結為將某些數據集加載到 Memcached 存儲中,刪除重複數據刪除的塊,重寫相同的項目,並為當塊的內容更改時發生 COW 副本創建條件。
- 允許第二個選項 知道 DBMS MariaDB 中寄存器的內容, 使用 InnoDB 存儲時,逐字節重新創建內容。 攻擊是通過發送經過特殊修改的請求,在內存頁面中生成一字節不匹配並分析響應時間來確定對字節內容的假設是正確的來執行的。 從本地網絡進行攻擊時,這種洩漏的速度很低,每小時可達 1,5 字節。
- 允許第三個選項 完全繞過KASLR保護機制 在4分鐘內,獲取虛擬機內核鏡像在內存中的偏移量信息,在偏移地址在內存頁的情況下,其他數據不改變。
最後,如果您有興趣了解更多,可以諮詢 以下鏈接中提供了詳細信息。