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