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