阿姆斯特丹自由大學的一組研究人員開發了RowHammer攻擊的新高級版本, 允許更改基於DRAM芯片的存儲器中各個位的內容,以保護所應用的糾錯碼(ECC)的完整性。
可以使用非特權訪問系統來遠程進行攻擊由於RowHammer漏洞可以通過週期性地從相鄰存儲單元讀取數據來扭曲內存中各個位的內容。
什麼是RowHammer漏洞?
研究人員對RowHammer漏洞的解釋是e基於DRAM存儲器的結構,因為基本上這是單元的二維矩陣,其中每個單元由一個電容器和一個晶體管組成。
因此,連續讀取同一存儲區域會導致電壓波動和異常,從而在相鄰單元中造成少量電荷損失。
如果讀數強度足夠大,則單元可能會損失足夠多的電荷,並且下一個再生週期將沒有時間恢復其原始狀態,從而導致單元中存儲的數據值發生變化。
RowHammer的新變體
到現在為止, 使用ECC被認為是防止上述問題的最可靠方法。
梨 研究人員成功開發了一種更改指定存儲位的方法 沒有激活糾錯機制。
方法 可以在具有ECC內存的服務器上使用以修改數據,替換惡意代碼並更改訪問權限。
例如,在上面演示的RowHammer攻擊中,當攻擊者訪問虛擬機時,通過更改主機名apt進程來下載和修改主機名數字簽名的驗證邏輯,從而下載了惡意系統更新。
這個新變體如何運作?
研究人員對此有何解釋 這種新的攻擊是ECC演練依賴於糾錯功能-如果更改一位,則ECC將糾正錯誤,如果兩位提高,將引發異常,並且將強制終止程序,但是如果同時更改XNUMX位,則ECC可能不會注意到該修改。
要確定ECC驗證不起作用的條件, 已經開發出一種與比賽類似的驗證方法,該方法可以評估內存中特定地址受到攻擊的可能性。
該方法基於這樣的事實,即在糾正錯誤時,讀取時間會增加,並且由此產生的延遲是相當可測量和引人注意的。
攻擊減少為連續嘗試分別更改每個位,從而通過出現由ECC設置引起的延遲來確定更改是否成功。
因此,用三個可變位執行機器字搜索。 在最後階段,必須確保兩個位置的三個可變位不同,然後嘗試單次更改其值。
關於演示
很多 研究人員成功地證明了攻擊具有DDR3內存的四台不同服務器的可能性 (理論上易受攻擊的DDR4內存),其中三個配備了Intel處理器(E3-1270 v3,Xeon E5-2650 v1,Intel Xeon E5-2620 v1)和一個AMD(Opteron 6376)。
En 該演示表明,在空閒服務器上的實驗室中找到所需的位組合大約需要32分鐘。
由於存在由應用程序活動引起的干擾,因此對正在運行的服務器進行攻擊要困難得多。
在生產系統中,可能需要多達一周的時間才能找到所需的可互換鑽頭組合。