幾名安全研究人員發表了一篇論文,介紹了一種基於位翻轉漏洞 Rowhammer,並且將其威脅從內存完整性缺失擴展到內存信息泄露領域的技術 RAMBleed,表明位翻轉的利用能力遠超出當前人們的想象。
RAMBleed 是一種側通道攻擊,攻擊者可以讀取其它進程中的物理內存。研究者介紹,這一技術利用了幾年前就出現的位翻轉漏洞 Rowhammer,這是一種故障攻擊,攻擊者使用特定的存儲器訪問序列,使得內存出現位翻轉,也就是 bit 值(0/1)改變。由於攻擊者不直接訪問更改的內存位置,因此 CPU 或操作系統一般不會察覺到問題。雖然這種位翻轉技術不太好控制,但是其能力已被應用於沙箱逃逸、對操作系統和虛擬機管理程序的提權攻擊、DoS 與加密協議故障注入等攻擊。
過去人們認為 Rowhammer 攻擊都是只能夠破壞內存的完整性,也就是說,攻擊者使用 Rowhammer 將有限的寫入原語獲取到其它無法訪問的內存中,然後修改該內存的內容,而只要通過內存完整性檢查就可以緩解這種攻擊,比如使用以保護內存完整性為目標的內存或者帶有糾錯碼(ECC)的內存。特別是糾錯碼技術,一直被認為是防止 Rowhammer 的有效手段,它可以在檢測到位翻轉時將其糾正。雖然近期有證據表明攻擊者可以繞過 ECC 機制,使得在糾錯后仍可觀察到的位翻轉,但成功糾正翻轉仍然被認為是良性的,沒有任何安全隱患。
但是研究者認為這樣的想法不可靠,於是論文提出兩個問題:
結果表明位翻轉的利用能力遠超出當前人們的想象,位翻轉漏洞 Rowhammer 的威脅不僅僅是內存完整性缺失,它還可以用於獲取內存信息。
研究人員研究出了一種 RAMBleed 攻擊方法,這是一種側通道攻擊,通過觀察 Rowhammer 引發的位翻轉,可以推斷出附近 DRAM 行中的值,因此可以讀出屬於其它進程的物理內存,論文中他們還演示了使用 RAMBleed 對 OpenSSH 的攻擊,並成功獲取了泄漏的 2048 位 RSA 密鑰。
此外,與 Rowhammer 不同,RAMBleed 不需要持久的位翻轉,因此伺服器機器常用的 ECC 內存對於緩解該攻擊是無效的。
研究人員將在 2020 年 5 月舉行的第 41 屆 IEEE 安全和隱私研討會上發表題為「RAMBleed:在沒有訪問它們的情況下讀取內存位」(RAMBleed: Reading Bits in Memory Without Accessing Them)的論文,進一步介紹該攻擊手法。
論文地址:https://rambleed.com
[admin
]