我們先前介紹過一種名為Bitsquatting的攻擊手法,這是一種超高端的釣魚攻擊:我們假定內(nèi)存、CPU緩存由于環(huán)境,或者制造缺陷,產(chǎn)生內(nèi)存的比特位翻轉(zhuǎn),就可能導(dǎo)致原本我們要訪問某家網(wǎng)站,最終由于這種硬件錯誤,卻訪問了與這家網(wǎng)站域名相近的釣魚站點。
這種聽起來很玄幻的攻擊其實不算新鮮,雖然看起來具有很強(qiáng)的不可控性,但實際還是可以人為觸發(fā)其中的“硬件”漏洞。這個漏洞名為Rowhammer,前兩年就有人提出了,可能是有史以來最理想化的漏洞。由于其不可控性,很多人認(rèn)為Rowhammer停留在理論階段。
不過最近有安全研究人員提出一種名為“風(fēng)水翻轉(zhuǎn)”的攻擊技術(shù),主要針對同處一個云環(huán)境下的其他虛擬機(jī)。其本質(zhì)也是Rowhammer攻擊,據(jù)說具備了“高準(zhǔn)確性”和“可控”的特點,可從其他虛擬機(jī)盜取加密密鑰。
顛覆攻擊邏輯的Rowhammer技術(shù)
去網(wǎng)上查資料,會發(fā)現(xiàn)Rowhammer的描繪極為晦澀。但Rowhammer漏洞其實很容易理解,這是個特別針對內(nèi)存的攻擊技術(shù),但不是內(nèi)存破壞或溢出攻擊。計算機(jī)內(nèi)存中,每個存儲單元(晶體管+電容器)存放1bit數(shù)據(jù),這個比特位要么是0,要么是1——存儲單元中充滿電子表示1,清空表示0。內(nèi)存就是由上億這樣的存儲單元構(gòu)成的,數(shù)據(jù)也因此得以存儲。
不過電容器會泄露,一個電容器充滿電子后,只需要幾毫秒就會泄露殆盡。這就要求CPU(內(nèi)存控制器)對電容進(jìn)行充電,讓“1”這個值能夠保持住。整個過程是由內(nèi)存控制器先讀取電容器中的值,然后再把數(shù)據(jù)寫回去。這種刷新操作,每秒會執(zhí)行幾千次。
這幾年的內(nèi)存容量正在大幅度上漲,所以存儲比特位的電容器也就越來越小,排列越來越近。要防止相鄰的電容之間相互干擾,難度也就變得更大。如果能夠快速、反復(fù)訪問一排電容,相鄰行的電容更容易產(chǎn)生干擾錯誤和所謂的“比特位翻轉(zhuǎn)”,也就是0變成1。
其實正常的數(shù)據(jù)讀寫一般是不會發(fā)生比特位翻轉(zhuǎn)的,可是如果對某些行進(jìn)行反復(fù)讀寫,問題就有可能產(chǎn)生。2014年卡內(nèi)基梅隴大學(xué)的研究人員層發(fā)表過一篇論文,題為《無訪問情況下的內(nèi)存比特位翻轉(zhuǎn)——DRAM干擾行錯誤的試驗研究》,其本質(zhì)是通過機(jī)器碼指令CLFUSH或Cache Line Flush,強(qiáng)制進(jìn)行這種比特位的讀取和更新。據(jù)說利用這種方式,可引起大量比特位翻轉(zhuǎn)。
利用比特位翻轉(zhuǎn),很多事情都可以做,比如說執(zhí)行未經(jīng)授權(quán)的代碼。這就是所謂的Rowhammer。這是一種顛覆人類對安全認(rèn)知的攻擊技術(shù),軟件層面幾乎解決無望。先前已經(jīng)有研究人員演示,如何用Rowhammer來進(jìn)行提權(quán),以及打破安全沙盒。
不過看原理就知道,這種攻擊實在有夠理想化,存在諸多不確定性,因為攻擊者根本無法精準(zhǔn)控制比特位如何翻轉(zhuǎn)。比如說,這種攻擊對數(shù)據(jù)所在的內(nèi)存位置首先就有要求,這樣才能實施內(nèi)存翻轉(zhuǎn):但敏感數(shù)據(jù)存儲在這些位置的幾率可能并不算高。
實現(xiàn)內(nèi)存“風(fēng)水逆轉(zhuǎn)”
針對Rowhammer的內(nèi)存位置限制,最近有人開發(fā)出一種名為Flip Feng Shui(風(fēng)水翻轉(zhuǎn))的攻擊技術(shù),這本質(zhì)上也是Rowhammer。這種攻擊就是篡改deduplication操作——deduplication在云端主機(jī)中應(yīng)用得很常見,這種技術(shù)可讓兩個或者更多虛擬主機(jī)共享特定的數(shù)據(jù)塊,起到節(jié)約內(nèi)存資源的作用。
Flip Feng Shui在物理內(nèi)存上做手腳,可致加密密鑰和其他敏感數(shù)據(jù)存儲到內(nèi)存特定的位置——這些位置就很容易受Rowhammer的影響了。所以才叫風(fēng)水翻轉(zhuǎn),就是讓數(shù)據(jù)在內(nèi)存中的“風(fēng)水”位置變更好,Rowhammer攻擊變得更可靠。
這種技術(shù)是由阿姆斯特丹自由大學(xué)的一名研究人員Ben Gras提出的(居然不是中國人!!!)。他說:“先前就已經(jīng)有攻擊方法表明,共同主機(jī)的虛擬機(jī)彼此間是可以相互攻擊的,比如說獲取對方的加密密鑰。不過這次的攻擊更具破壞性,也是此類攻擊的第一例。”
“我們可以相當(dāng)高的精度和可控性,針對目標(biāo)虛擬機(jī)的內(nèi)存進(jìn)行篡改。針對這種軟件堆棧中看似隨機(jī)化的數(shù)據(jù)破壞方式,我們首次以極高的準(zhǔn)確性和可控的方式,對其進(jìn)行了展示。”這里Gras所謂的“看似隨機(jī)化的數(shù)據(jù)破壞方式”也就是Rowhammer攻擊。
研究團(tuán)隊演示了攻擊者如何利用Flip Feng Shui攻擊,獲取另一臺VM虛擬機(jī)上的RSA加密密鑰——當(dāng)然這要求被攻擊的虛擬主機(jī)與攻擊者處在相同的云環(huán)境中。在他們進(jìn)行的某一例實驗中,進(jìn)行攻擊的虛擬機(jī)獲取到可用于授權(quán)安全shell訪問的密鑰,這樣一來,這臺虛擬機(jī)就可以獲取目標(biāo)虛擬機(jī)的未授權(quán)訪問了。
研究人員在報告中提到,進(jìn)行攻擊的虛擬機(jī)獲取到GPG密鑰——該密鑰是Ubuntu系統(tǒng)開發(fā)者用來確認(rèn)更新可靠性的。有了這個GPG密鑰,攻擊者就能迫使目標(biāo)虛擬機(jī)下載和安裝惡意更新。
其實整個攻擊過程描述起來還是比較復(fù)雜的,首先需要獲取目標(biāo)公鑰。發(fā)起攻擊的虛擬機(jī)通過Flip Feng Shui,針對公鑰的某個特定部分進(jìn)行比特位翻轉(zhuǎn),也就是我們上面提到的Rowhammer攻擊方式——這里實際上還利用了云環(huán)境的deduplication技術(shù)。就像前文提到的,這種技術(shù)在云端主機(jī)中很常見,這是一種相較數(shù)據(jù)壓縮粒度更大、節(jié)約存儲資源的技術(shù)。基于此,物理頁才會在多個虛擬機(jī)用戶間共享,針對共享數(shù)據(jù)塊的比特位翻轉(zhuǎn)才顯得有意義。
在公鑰的比特位發(fā)生翻轉(zhuǎn)之后,就構(gòu)造出了一個全新的公鑰,這個公鑰會非常簡單(足以進(jìn)行因式分解)。也就是說,Rowhammer攻擊欺騙目標(biāo)虛擬機(jī),接受新的公鑰;攻擊者隨后也就能夠得到相對應(yīng)的私鑰,并進(jìn)行未經(jīng)授權(quán)的SSH訪問,簽署惡意Ubuntu更新了。
鑒于篇幅關(guān)系,我們沒法細(xì)致詳述每一環(huán)技術(shù)細(xì)節(jié),有興趣的同學(xué)可以前往翻閱研究人員發(fā)表的論文,題為《Flip Feng Shui: Hammering a Needle in the Software Stack》。Gras表示,這次的實驗雖然只針對RSA密鑰,但他預(yù)期未來這種攻擊方式還能針對數(shù)字簽名算法、Diffie-Hellman加密算法、ECC等等。這樣一來,攻擊者就不僅能夠進(jìn)行未授權(quán)訪問量了,還能竊聽合法會話。
另外,這種攻擊也需要一些條件才能發(fā)起,比如說像前文提到的,要求虛擬機(jī)開啟Deduplication;而且本次實驗依賴于基于內(nèi)核的虛擬機(jī),以及Linux中的Kernel SamePage Merging特性。還有,內(nèi)存芯片本身也需要具備比特位翻轉(zhuǎn)的基礎(chǔ),先前有人做過相應(yīng)的測試,129款DDR3內(nèi)存中,110款存在攻擊可行性,還有12款DDR4內(nèi)存有8款也存在Rowhammer漏洞。
最后,研究人員還列出了一些可抵御Flip Feng Shui攻擊的手段,硬件層面要求DRAM芯片制造商進(jìn)行相應(yīng)的Rowhammer測試,還有比如針對某些DDR4芯片實施的直接行刷新機(jī)制等;至于軟件層面,包括禁用內(nèi)存的deduplication,開發(fā)者和工程師也應(yīng)該考慮加入額外的措施,比如檢查安全敏感信息完整性。
“這種攻擊不需要攻擊者進(jìn)行什么復(fù)雜的操作,就能完全控制共用主機(jī)的云虛擬機(jī)。同時,我們認(rèn)為Flip Feng Shui還能通過更多的形式發(fā)起攻擊,這就需要系統(tǒng)安全社區(qū)能夠?qū)@樣的威脅引起足夠的重視。”
預(yù)計今年11月份在倫敦舉行的Black Hat黑客大會上,研究人員還會特別進(jìn)行這一議題的演講。
* FreeBuf官方報道,作者/歐陽洋蔥,轉(zhuǎn)載請注明來自FreeBuf黑客與極客(FreeBuf.COM)