ASLR遭破解:這可能是最難修復(fù)的大規(guī)模漏洞
過去10年,想要侵入計算機的黑客面臨一個艱巨的任務(wù):即便已經(jīng)讓惡意代碼運行在目標(biāo)計算機上,他們也不得不找出代碼究竟運行在內(nèi)存的哪個位置。這是因為Windows、安卓和其他每個現(xiàn)代操作系統(tǒng),都會采用隨機化進(jìn)程內(nèi)存位置的安全保護(hù)措施。這讓數(shù)字侵入過程變得好像是在完全黑暗的環(huán)境里嘗試搶劫民居一樣。
但如今,一組荷蘭研究人員,發(fā)現(xiàn)了能破解該“地址空間布局隨機化”(ASLR)措施的技術(shù),為黑客們提供了在陌生計算機中標(biāo)定自身位置的指路牌。這意味著:軟件應(yīng)用中發(fā)現(xiàn)的任一常見內(nèi)存泄露漏洞,都可能導(dǎo)致對目標(biāo)PC或智能手機更深層次的控制。而且,由于該攻擊利用的是硬件而不是軟件,數(shù)百萬臺設(shè)備因此暴露于風(fēng)險之中——無論裝載什么操作系統(tǒng)。僅通過軟件更新來完全修復(fù)該漏洞的想法,太過天真。
重回ASLR
該攻擊方法開發(fā)者,阿姆斯特丹自由大學(xué)研究員本·格拉斯及其同事卡威·拉扎維說:“漏洞到處都是,但ASLR讓漏洞難以被利用。該攻擊技術(shù)則讓不可利用的漏洞又可以被利用了。某種意義上,這把我們都甩回了安全缺失的90年代。”
他們的攻擊方法還真是搞出大事情了,因為攻擊者僅用JavaScript就能搞定,也就是說,僅僅是訪問惡意網(wǎng)站都能觸發(fā)。該研究團(tuán)隊名為VUSec,發(fā)布了一段視頻來演示如何在火狐瀏覽器中運行之。微架構(gòu)安全專家約斯·奧棱稱:“沒人在網(wǎng)頁中這么干過,這是此類攻擊中非常隱蔽和狡猾的一個例子。”
這種攻擊的修復(fù)難度與其部署簡易程度相當(dāng)。VUSec技術(shù)利用了計算機硬件最深層次的資產(chǎn)——英特爾、AMD、Nvidia和三星等公司制造的微處理器。想讓ASLR再度起效,恐怕不是一次快速的操作系統(tǒng)或瀏覽器更新能辦到的,還需要對這些芯片的重設(shè)計和替換。
破解安全
該攻擊利用了微處理器和內(nèi)存的互動:處理器有個被稱為內(nèi)存管理單元(MMU)的部件,負(fù)責(zé)映射計算機在內(nèi)存中存儲程序的地址。為跟蹤這些地址,MMU頻繁查詢名為頁表的目錄。
VUSec攻擊的關(guān)鍵,在于設(shè)備通常將頁表存儲在處理器緩存中——讓最常訪問的信息隨時可被計算核調(diào)用的一小塊內(nèi)存。這種做法可以提升芯片處理速度和效率。
但是,網(wǎng)頁上運行的一段惡意JavaScript代碼,同樣可以寫入那塊緩存。最關(guān)鍵的是,它還能同時查看MMU的工作速度。“通過密切監(jiān)視MMU,JavaScript代碼可以找出其自身地址——這可不是好代碼該干的事。”格拉斯說。
VUSec研究人員的攻擊,將MMU速度變成了提示信息。攻擊代碼會復(fù)寫緩存,一次一個單元,直到看到MMU降速。這就是無論緩存哪部分被重寫MMU都要去查找一塊頁表的標(biāo)志——MMU會減緩速度,因為它得跑回正常的隨機存取內(nèi)存去找該頁表的副本,而不是直接在處理器緩存中查找。
MMU要執(zhí)行4次單獨的頁表查詢,才能找到任給代碼段的物理地址。因此,該攻擊會重寫緩存4次,搜出緩存中存放頁表的4個地方。每一次,惡意程序都會記下MMU降速的時刻。MMU走到該降速時刻的耗時,就成為了惡意代碼自身在緩存中地址的提示信息,當(dāng)設(shè)備將攻擊代碼從緩存中拷貝到RAM中時,ASLR想隱藏起來的代碼內(nèi)存地址就暴露無遺了。
該攻擊有些像是古早的撬保險箱手法:聽診器貼在保險箱上,慢慢轉(zhuǎn)動撥盤,仔細(xì)聆聽撥片聲音。緩存就像是保險箱中發(fā)出這些充滿提示意味咔噠聲的撥片,能聽懂,就能順利開門而入。
難以修復(fù)的大漏洞
VUSec向荷蘭國家網(wǎng)絡(luò)安全中心報告了該情況,后者聯(lián)系了所有受影響的芯片制造商和軟件公司,包括英特爾、AMD、三星、Nvidia、微軟、蘋果、谷歌和Mozilla——三個月前的事兒。研究人員給足了這些公司標(biāo)準(zhǔn)窗口時間來解決問題,直到現(xiàn)在才公開他們的發(fā)現(xiàn)。而且,研究人員不打算公布任何源代碼來證明他們的攻擊。不過,他們警告稱,技術(shù)高超的黑客能在幾周內(nèi)就從他們已經(jīng)公布的東西中逆向出該技術(shù)。
同時,格拉斯給出了一些應(yīng)急建議。你可以安裝插件,像是火狐的NoScript,或者Chrome的ScriptSafe,來封鎖網(wǎng)頁上的JavaScript。瀏覽器廠商也可以降低腳本測量時間的精度,防止腳本監(jiān)視MMU的速度。
至少一家公司已經(jīng)著手緩解該威脅。蘋果發(fā)布了旨在強化Safari的軟件更新,但并未揭示該更新到底做了什么。蘋果發(fā)言人稱,該公司還向其他受影響廠商分發(fā)了一份行動計劃,例如蘋果所用芯片的供應(yīng)商們。
完全修復(fù)最終將需要更換硬件,而非軟件。設(shè)備將需要建立在新架構(gòu)之上的新芯片——MMU與處理器緩存中的頁表相互隔離。格拉斯稱:“因為該漏洞實在太底層,其上的軟件層可以讓它更難以被利用,但不能讓漏洞消失。”
英特爾、微軟和Mozilla,則是低調(diào)處理了該事件。微軟公關(guān)發(fā)給《連線》的一份聲明中稱:“我們確定這不是個安全問題。”英特爾則稱該研究“不代表英特爾架構(gòu)系統(tǒng)的安全要做出重大改變。”這三家公司的發(fā)言人都指出:該攻擊僅在與其他內(nèi)存泄露漏洞連用時才構(gòu)成威脅。三星、Nvidia、AMD和谷歌并未回復(fù)《連線》的評論請求。
然而,微軟和英特爾指出僅擊敗ASLR黑不進(jìn)操作系統(tǒng),并沒有讓人多放心一些。ASLR被攻破,黑客就能重用回那些被ASLR擋住的常見內(nèi)存泄露漏洞了。老舊漏洞煥發(fā)新生的節(jié)奏。
如果科技公司不認(rèn)真重視ASLR攻擊,其結(jié)果,可能會是一大批新方法的出現(xiàn),上百萬誤入錯誤網(wǎng)頁的無辜用戶坐等被黑。“攻擊者一直走在變得更聰明的路上。如果計算機越來越笨,優(yōu)勢無疑會在攻擊者一方。”
【本文是51CTO專欄作者"李少鵬"的原創(chuàng)文章,轉(zhuǎn)載請通過安全牛(微信公眾號id:gooann-sectv)獲取授權(quán)】