日前,來自阿姆斯特丹自由大學(xué)的學(xué)者發(fā)表了一篇名為ECCploit的研究論文,描述了一種可繞過ECC內(nèi)存保護(hù)的Rowhammer攻擊(利用現(xiàn)代存儲卡硬件設(shè)計缺陷的一類漏洞)的新變種。
在默認(rèn)情況下,存儲卡將臨時數(shù)據(jù)儲存在臨時存儲器元件中,以柵格的形式多行排列在物理硅片上。研究人員在2014年發(fā)現(xiàn),通過反復(fù)讀取一行存儲數(shù)據(jù)可以創(chuàng)建一個電場來改變臨近行中的存儲數(shù)據(jù),從而導(dǎo)致數(shù)據(jù)損壞或以惡意方式操縱數(shù)據(jù)。隨后幾年,研究人員擴展了Rowhammer攻擊的方式和開發(fā)場景,并表示硬件制造商不可忽視這個漏洞。
理論上,Rowhammer攻擊的方式和形式有很多種:
◇ 改變存儲在DDR3、DDR4以及類似的存儲卡上的數(shù)據(jù)
◇ 通過JavaScript、網(wǎng)絡(luò)(不一定要訪問PC)和本地惡意軟件進(jìn)行攻擊
◇ 通過Microsoft Edge瀏覽器控制Windows計算機
◇ 攻擊并控制安裝在云托管環(huán)境中基于Linux的虛擬機
◇ 攻擊并獲取Android智能手機的root權(quán)限
◇ 當(dāng)?shù)谝淮喂舯慌逗驲owhammer會自動繞過已經(jīng)到位的Rowhammer防衛(wèi)
◇ 攻擊者可利用本地GPU提高攻擊效率
◇ 可通過網(wǎng)絡(luò)數(shù)據(jù)包發(fā)起攻擊
◇ 轉(zhuǎn)化為ION攻擊Android內(nèi)存子系統(tǒng),這打破了操作系統(tǒng)和本地應(yīng)用之間的隔離,允許數(shù)據(jù)被盜和整個設(shè)備被控制
ECC(Error-Correcting Code)是一種能夠?qū)崿F(xiàn)“錯誤檢查和糾正”的技術(shù),是高端RAM采用的一種典型的控制機制,硬件制造商在過去聲稱ECC內(nèi)存保護(hù)能檢測并防御Rowhammer攻擊。
ECC內(nèi)存最初被用于防止由α粒子、中子和其他宇宙射線引發(fā)的比特翻轉(zhuǎn),后來,研究證明ECC內(nèi)存對防御Rowhammer攻擊也有效。但是,阿姆斯特丹自由大學(xué)的團(tuán)隊經(jīng)過數(shù)月對ECC內(nèi)存的逆向工程設(shè)計,發(fā)現(xiàn)這種保護(hù)機制也存在局限性。
研究人員表示,ECC內(nèi)存一次只能對監(jiān)視的一個內(nèi)存段中的一個比特翻轉(zhuǎn)進(jìn)行檢測和糾正;當(dāng)一內(nèi)存段中同時發(fā)生兩個比特翻轉(zhuǎn)時,ECC內(nèi)存會不堪重負(fù),為了避免數(shù)據(jù)損壞或安全性受損而導(dǎo)致底層應(yīng)用程序的崩潰;而當(dāng)三個比特翻轉(zhuǎn)同時發(fā)生時,ECC內(nèi)存雖然不會崩潰,但也不會做出任何反應(yīng),這樣,Rowhammer攻擊就能完全繞過ECC保護(hù)。
令人欣慰的是,目前似乎沒有必要過度擔(dān)憂,因為自2014年被曝光以來,Rowhammer攻擊一直都只存在于專業(yè)學(xué)者的理論推斷中。像Meltdown和Spectre的CPU漏洞那樣,Rowhammer攻擊只是理論上的攻擊,從未在自然環(huán)境下發(fā)生過,但這些都揭示了支撐現(xiàn)代技術(shù)的硬件的主要設(shè)計缺陷。
研究人員認(rèn)為目前企業(yè)沒有必要因為Rowhammer攻擊而避免使用ECC內(nèi)存,因為發(fā)動一次ECCploit攻擊需要32分鐘甚至一周的時間,這意味著它遠(yuǎn)不如聽起來的那么危險,研究人員希望,對Rowhammer ECCploit攻擊的研究能給硬件供應(yīng)商帶來關(guān)于硬件設(shè)計和銷售方面的啟發(fā)。