通殺所有系統(tǒng)的硬件漏洞?聊一聊Drammer,Android上的RowHammer攻擊

大家肯定知道前幾天剛爆出來(lái)一個(gè)linux內(nèi)核(Android也用的linux內(nèi)核)的dirtycow漏洞。此洞可以說(shuō)是個(gè)神洞,通過(guò)dirtycow,一個(gè)普通權(quán)限的app可以做到root權(quán)限的文件任意寫(xiě),隨后還可以轉(zhuǎn)化為android上的通用root。就在大家紛紛埋頭研究dirtycow的時(shí)候,Drammer橫空出世,號(hào)稱也可以root最新版的Android 6.0.1,同時(shí)還放出了CCS論文POC。

那么這個(gè)Drammer到底是什么東西呢?

Drammer可以說(shuō)是一種針對(duì)android設(shè)備的攻擊方式,利用的是內(nèi)存芯片設(shè)計(jì)上的一個(gè)缺陷。然而,這個(gè)問(wèn)題并不是只出現(xiàn)在Android系統(tǒng)上,而是所有使用內(nèi)存的系統(tǒng)都會(huì)出現(xiàn)這個(gè)問(wèn)題。最早提出這種攻擊方式的人是卡內(nèi)基梅隆大學(xué)的Yoongu Kim寫(xiě)的一篇paper -《Flipping Bits in Memory Without Accessing Them: An Experimental Study of DRAM Disturbance Errors》 在這篇文章中,作者提到有個(gè)有趣的現(xiàn)象,如果不斷的訪問(wèn)兩個(gè)具有"侵略者"性質(zhì)的虛擬地址會(huì)讓一個(gè)具有"受害者"性質(zhì)的內(nèi)存數(shù)據(jù)進(jìn)行位翻轉(zhuǎn),更神奇的是這個(gè)具有"受害者"性質(zhì)的內(nèi)存可能會(huì)在當(dāng)前進(jìn)程可訪問(wèn)的虛擬地址以外。

為什么會(huì)有這種現(xiàn)象呢?

原因是內(nèi)存廠商為了能讓內(nèi)存芯片存儲(chǔ)更多的數(shù)據(jù),于是將內(nèi)存中的DRAM(The Dynamic Random Access Memory)cell越做越小并且離的越來(lái)越近,從而導(dǎo)致相鄰的cell在通電的過(guò)程中會(huì)受到影響。因此,如果我們不斷的訪問(wèn)某個(gè)位置上的內(nèi)存,就可能會(huì)造成相鄰的內(nèi)存進(jìn)行位翻轉(zhuǎn)。隨后google project zero還通過(guò)PC上的linux提權(quán),證明了這種現(xiàn)象的確存在并且可以用來(lái)進(jìn)行攻擊(https://googleprojectzero.blogspot.com/2015/03/exploiting-dram-rowhammer-bug-to-gain.html)并將這種攻擊方式稱為RowHammer。因此,這次出現(xiàn)的drammer是受之前研究的啟發(fā),從而實(shí)現(xiàn)了Android上的rowhammer攻擊,所以drammer全稱其實(shí)是DRoid and rowhAMMER。

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負(fù)責(zé)任的教育,學(xué)習(xí)改變命運(yùn),軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開(kāi)發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式