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