安全研究員發(fā)現(xiàn)一個(gè)芯片漏洞,此漏洞影響到數(shù)以百萬計(jì)的設(shè)備,不管設(shè)備上安裝的是什么操作系統(tǒng)或是應(yīng)用程序,這個(gè)漏洞都能讓設(shè)備的防黑保護(hù)無效化。更糟糕的是,這個(gè)漏洞不會因?yàn)槿魏蔚能浖壎粡氐仔迯?fù)。
該漏洞存在于內(nèi)存管理單元(MMU)(許多CPU的組件)的工作方式中,利用此漏洞就能繞過地址空間布局隨機(jī)化(ASLR)保護(hù)。
ASLR是現(xiàn)代操作系統(tǒng)重要的安全防御手段,無論是Windows和Linux還是macOS,Android,BSD都已采用了該技術(shù)。
一般來說,ASLR是一種內(nèi)存保護(hù)機(jī)制,它使程序在設(shè)備內(nèi)存中運(yùn)行的位置隨機(jī)化。攻擊者難以通過利用緩沖區(qū)溢出或類似bug而在內(nèi)存的特定地址執(zhí)行惡意的有效載荷。可以說,有了ASLR的存在,攻擊者的每次嘗試都是摸瞎的狀態(tài)下進(jìn)行的。
但就是有那么一群來自荷蘭Vrije大學(xué)的研究者,他們開發(fā)出了一種攻擊腳本,它能夠繞過至少22個(gè)處理器微架構(gòu)的ASLR保護(hù),這些處理器來自英特爾,AMD,ARM,Allwinner,Nvidia和其他廠商。
這個(gè)名為ASLR Cache或AnC的攻擊影響尤為惡劣,因?yàn)樗褂玫氖呛唵蔚腏avaScript代碼來識別執(zhí)行系統(tǒng)和應(yīng)用程序組件的內(nèi)存中的基址。這種攻擊可以僅通過訪問惡意站點(diǎn)就能觸發(fā),能夠讓攻擊者進(jìn)行更多針對內(nèi)存的相同區(qū)域的攻擊,以竊取存儲在PC內(nèi)存中的敏感信息。
攻擊演示:
這種攻擊利用了微處理器和內(nèi)存彼此交互的方式。
內(nèi)存管理單元(MMU)存在于桌面、移動(dòng)和服務(wù)器芯片和任務(wù)中以映射計(jì)算機(jī)在其內(nèi)存中存儲程序的位置,不斷地檢查稱為頁表的目錄以跟蹤這些地址。而設(shè)備通常將頁表存儲在CPU的高速緩存中,使得芯片更快速和更高效。 但是這個(gè)組件還會與一些不可信的應(yīng)用程序(包括瀏覽器)共享一些緩存。
一段運(yùn)行在惡意網(wǎng)站上的JavaScript代碼也可以寫入該緩存(側(cè)信道攻擊),攻擊者可以借此來找到位于虛擬內(nèi)存中的軟件組件(如庫和RAM映射文件)
有了這些位置數(shù)據(jù),任何攻擊者都可以讀取計(jì)算機(jī)內(nèi)存的一部分,然后他們可以利用這些數(shù)據(jù)來啟動(dòng)更復(fù)雜的攻擊,獲取對完整操作系統(tǒng)的訪問權(quán)限,并劫持計(jì)算機(jī)系統(tǒng)。
研究人員通過最新的Chrome和Firefox瀏覽器在90秒內(nèi)成功對在22種不同的CPU微架構(gòu)施展了AnC JavaScript攻擊,即便這些瀏覽器內(nèi)存在ASLR保護(hù)。
VUSec研究團(tuán)隊(duì)發(fā)表了兩篇研究論文[1,2],詳細(xì)介紹了AnC攻擊,包括兩個(gè)視頻演示,展示了如何在64位Linux機(jī)器上的Firefox瀏覽器中完成的攻擊。
在他們的攻擊中,研究人員將他們的AnC JavaScript與攻擊代碼結(jié)合使用,利用了Firefox中現(xiàn)在修補(bǔ)的免漏洞漏洞(CVE-2013-0753)。 AnC攻擊的問題通過幾個(gè)CVE標(biāo)識符跟蹤,包括:
CVE-2017-5925 for 英特爾處理器
CVE-2017-5926 for AMD 處理器
CVE-2017-5927 for ARM 處理器
CVE-2017-5928 for 影響多個(gè)瀏覽器的時(shí)序問題
VUSec團(tuán)隊(duì)在三個(gè)多月前就已經(jīng)告知了所有受影響的芯片制造商和軟件公司,包括英特爾,AMD,三星,Nvidia,微軟,蘋果,谷歌和Mozilla,顯然這些廠商沒有理睬VUSec團(tuán)隊(duì),因此VUSec將他們的“發(fā)現(xiàn)”公之于眾。
“總而言之這樣的緩存行為和強(qiáng)地址空間隨機(jī)化是相互排斥的。由于緩存層次結(jié)構(gòu)對于整個(gè)系統(tǒng)性能的重要性,因此任何修復(fù)工作的代價(jià)和工作量都太大,不是一個(gè)可取的做法。”
“此外,即使在硬件中存有緩存,比如頁表的單獨(dú)緩存,這種問題也可能在軟件中出現(xiàn)。因此,我們建議不再將ASLR信任為防止內(nèi)存錯(cuò)誤攻擊和未來防御的第一道防線,不要將它作為防御工作關(guān)鍵的一環(huán)。
VUSec團(tuán)隊(duì)提醒,保護(hù)自己免受AnC攻擊的唯一方法是啟用插件,比如Firefox的NoScript或Chrome的ScriptSafe,阻止網(wǎng)頁上的不受信任的JavaScript代碼在瀏覽器中運(yùn)行。
*參考來源:thehackernews,F(xiàn)B小編bimeover編譯,轉(zhuǎn)載請注明來自Freebuf.COM