還記得那個(gè)曾經(jīng)帶給時(shí)代恐懼的rowhammer嗎?他又回來了,在摧毀了DDR3的信仰之后,DDR4也沒能堅(jiān)守住陣地,在rowhammer面前依然表現(xiàn)的回天無力。
說起rowhammer就不能不提到DDR3。2015年,谷歌的安全團(tuán)隊(duì)ProjectZero發(fā)現(xiàn),在DDR3內(nèi)存中存在一種罕見的硬件漏洞:如果高頻率的訪問或者攻擊內(nèi)存中的一行(row) 數(shù)據(jù),會(huì)導(dǎo)致臨近行(row)的數(shù)據(jù)發(fā)生位反轉(zhuǎn)(bit flipping)。位反轉(zhuǎn)是一種系統(tǒng)錯(cuò)亂,我們都了解電腦使用的是2進(jìn)制的系統(tǒng),位反轉(zhuǎn)時(shí),系統(tǒng)會(huì)發(fā)生1和0互相調(diào)換。比如原來的一行數(shù)據(jù)是110010,反轉(zhuǎn)之后就變成了001101。
rowhammer會(huì)讓系統(tǒng)變成1、0不分的色盲
那么這個(gè)漏洞會(huì)導(dǎo)致怎樣的后果呢?ProjectZero隨后提出了相關(guān)概念并對(duì)此漏洞進(jìn)行了測(cè)試。結(jié)果顯示,在X86和X64架構(gòu)的Linux系統(tǒng)上測(cè)試時(shí),該漏洞提升了整塊內(nèi)存區(qū)域的訪問權(quán)限。而比漏洞更可怕的是,對(duì)于普通的用戶來講,一旦有人利用漏洞進(jìn)行攻擊,用戶幾乎無法防御!
竟然會(huì)有無法防御的漏洞?是的。ProjectZero提到,內(nèi)存小型化是該漏洞產(chǎn)生的根源所在。由于DRAM的制造精度越來越高,部件所占物理空間也就越小。當(dāng)在一塊芯片上集成較大的內(nèi)存容量時(shí),各個(gè)內(nèi)存單元之間發(fā)生電磁干擾也就難以避免了。
在內(nèi)存條的芯片中,物理空間很小
由于物理空間較小,在對(duì)內(nèi)存的某一區(qū)域大量讀寫時(shí),電流很可能流入或流出鄰近的內(nèi)存單元。進(jìn)而改變其內(nèi)容,使得0變成1,1變成0,發(fā)生位反轉(zhuǎn)。這種由于物理結(jié)構(gòu)上的設(shè)計(jì)而導(dǎo)致的漏洞與軟件的系統(tǒng)漏洞有著本質(zhì)的區(qū)別。軟件漏洞可以通過發(fā)布補(bǔ)丁等辦法修補(bǔ),而物理漏洞則很難防御。
DDR3被認(rèn)為是rowhammer的問題來源
DDR3是主流的DRAM技術(shù),該漏洞如果被利用,也就意味著很大一部分電腦的權(quán)限將無法保障,而且是用戶無法防御的一種漏洞。研究人員還發(fā)現(xiàn),如果此漏洞被黑客利用,那么很可能利用一些簡(jiǎn)單的JavaScript代碼,黑客就能輕松獲得用戶電腦的訪問權(quán)限。在谷歌的測(cè)試中,并非全部的DRAM和CPU都存在該問題,但超過一半的測(cè)試品仍存在這種風(fēng)險(xiǎn)。
Rowhammer的出現(xiàn)也引起的廠商的關(guān)注,DRAM制造商、CPU制造商、BIOS制造商等紛紛開始在他們的存儲(chǔ)器設(shè)備中加入了一些防范rowhammer漏洞的措施,并開始研發(fā)新型的內(nèi)存設(shè)備??陀^上來看,rowhammer的發(fā)現(xiàn)也推進(jìn)了DDR4的研發(fā)和改進(jìn)進(jìn)程,那么DDR4就可以抵抗rowhammer了嗎?
被廠商寄予厚望的DDR4能戰(zhàn)勝rowhammer?
在過去的一段時(shí)間里,我們一直都認(rèn)為是的。DDR4內(nèi)存條頻率明顯提升,內(nèi)存量更大,功耗更低的優(yōu)勢(shì)早已為人所知。不僅如此,其制造商也在不斷宣傳DDR4在安全方面的優(yōu)勢(shì)。
DDR4和DDR3在身材上也有所區(qū)別(圖片來自網(wǎng)絡(luò))
三星曾宣布,在很大程度上他們的DDR4產(chǎn)品線是免疫rowhammer的。因?yàn)樗麄兊漠a(chǎn)品在技術(shù)上采用了TRR,當(dāng)某一區(qū)域被快速連續(xù)訪問時(shí),可以針對(duì)性的進(jìn)行刷新,因而可以更好的承受大量的惡意訪問。此外,鎂光也贊揚(yáng)了他們?cè)贒DR4產(chǎn)品中采用的TRR技術(shù),似乎看來DDR4是rowhammer的克星了。
三星曾稱其DDR4內(nèi)存條可以抵抗rowhammer
但是現(xiàn)實(shí)的回應(yīng)卻是無情的打臉。美國(guó)的一家超級(jí)寬帶和高級(jí)計(jì)算機(jī)技術(shù)提供商 “Third I/O”通過研究發(fā)現(xiàn),事情恐怕并不像廠商們所說的那樣簡(jiǎn)單。這些研究人員通過對(duì)企業(yè)級(jí)的DDR3 DIMM進(jìn)行了測(cè)試,以每秒百萬次的速度訪問或者攻擊內(nèi)存的特定位置。確實(shí),幾乎所有的DDR3內(nèi)存模塊都出現(xiàn)了不同程度的位反轉(zhuǎn)。
臺(tái)灣廠商G.Skill的產(chǎn)品神奇存活
那么DDR4會(huì)不會(huì)更好呢?在該團(tuán)隊(duì)測(cè)試的十二款DDR4 DIMM產(chǎn)品中,有8款依然無法抵御rowhammer。在研究人員利用快速攻擊對(duì)抗TRR技術(shù)時(shí),僅有臺(tái)灣廠商G.Skill的產(chǎn)品不受影響,其他的內(nèi)存模塊依然出現(xiàn)了位反轉(zhuǎn)現(xiàn)象。這也就意味著,DDR4比DDR3更安全的說法并不能成立。
不過研究還發(fā)現(xiàn),對(duì)抗rowhammer也并非完全沒有辦法,在往DDR3 DIMM內(nèi)安裝了一種名為ECC內(nèi)存糾錯(cuò)技術(shù)后,如果計(jì)算機(jī)被連續(xù)攻擊或者訪問,在大約三分鐘時(shí),服務(wù)器就會(huì)完全鎖定或者自動(dòng)重啟,這樣將降低所受攻擊的風(fēng)險(xiǎn)。試驗(yàn)還發(fā)現(xiàn)給予DIMM一個(gè)額外的rowhammer防御時(shí),在打擊速度過高時(shí),芯片會(huì)自己刷新自己的記憶內(nèi)容,避免產(chǎn)生反轉(zhuǎn)混亂。
ECC糾錯(cuò)可打擊rowhammer的囂張氣焰
該研究機(jī)構(gòu)的人員希望這些研究成果能夠給內(nèi)存芯片廠商帶來新的思路,保障新的DIMM芯片能夠提高對(duì)rowhammer的防御力。盡管目前這項(xiàng)漏洞還僅存在于實(shí)驗(yàn)室當(dāng)中,但是他一旦外泄將會(huì)造成難以估量的后果。
硬件安全比軟件安全更致命
研究人員也表示,他們研發(fā)的目的在于給廠商們提醒,rowhammer還活著,位反轉(zhuǎn)的風(fēng)險(xiǎn)依然存在,對(duì)于DDR4也絕不能盲目樂觀,行業(yè)和相關(guān)的安全廠商應(yīng)當(dāng)引起足夠的重視,這個(gè)可怕的漏洞依然在威脅著用戶的安全。