Rowhammer攻擊——危險攻擊的演變
早在2015年,Google Project Zero團隊的安全研究人員就演示了如何利用某些DDR DRAM(雙倍數據速率動態隨機存取存儲器)晶元的物理弱點來劫持運行Linux的英特爾個人電腦。
專家設計的攻擊技術被稱為Rowhammer,成功利用能使攻擊者獲得更高的目標系統內核特權。
Rowhammer被歸類為影響一些最新的DRAM設備的問題,其中重複訪問一行存儲器可能導致相鄰行中的位翻轉,這意味著理論上攻擊者可以改變存儲器中該位的值。
卡內基梅隆大學和英特爾實驗室的專家發表的一篇研究論文詳細分析了利用Rowhammer的技術。
我們測試了一系列筆記本電腦,發現其中的一部分出現問題。我們構建了兩個使用這種效果的特權升級漏洞。一個漏洞利用Rowhammer是一些最新DRAM設備的問題,在這些設備中,重複訪問一行內存可能導致相鄰行中的位翻轉。當被引用的位作為非特權用戶級進程運行時,就能獲得x86-64 Linux上的內核特權。
來自Google Project Zero發布的帖子。
當在容易受到Rowhammer影響的機器上運行時,該過程能夠引起頁表項(PTE)中的位翻轉。這樣就能獲得對自己的頁表的寫訪問許可權,從而獲得對所有物理內存的讀寫訪問權。
為了理解攻擊者可以利用Rowhammer的方式,讓我們記住DDR內存以行列排列。內存塊分配給不同的服務和應用程序。
實現「沙箱」保護機制以避免應用程序訪問另一個應用程序保留的內存空間。然而,可以用一個翻轉技術來逃避它,這是攻擊技術的支柱。
此項研究基於Yoongu Kim之前的研究,名為「Flipping Bits in Memory Without Accessing Them: An Experimental Study of DRAM Disturbance Errors」。該專家與同事們證明,通過反覆訪問兩個「aggressor」進程虛擬地址空間內的內存位置可能會在第三個「受害者」位置導致位翻轉。
Project Zero的博客指出。
受害者的位置可能在進程的虛擬地址空間之外,與aggressor位置不同,因此位於不同的DRAM行中,位於不同的4k頁面中(因為如今系統中的行大於4k)。因此,敲擊兩個aggressor存儲器區域可能干擾相鄰的位置,導致電荷進入或離開相鄰的單元格。
現在處理器中使用的DRAM具有高容量,並且很難防止DRAM單元彼此之間電相互作用。
Project Zero的白帽黑客提出了兩個PoC漏洞,允許他們控制幾台運行Linux的x86計算機,但據專家稱,這些攻擊也可以在其他操作系統上使用。
下面是兩次攻擊的詳情:
· 首先,基於頁面表項(PTE)的利用程序使用Rowhammer引發的位翻轉來獲得x86-64 Linux上的內核許可權,並由此獲得對整個物理內存的讀寫訪問許可權。
· 第二個漏洞利用程序演示了從Native Client沙箱中逃逸來利用相同的漏洞。
Project Zero的專家團隊還為Rowhammer漏洞提供了緩解措施,特別是內核特權提升攻擊。
研究人員將Native Client更改為禁止x86上的CLFLUSH指令,此指令為成功利用漏洞所必需的。
「我們通過改變NaCl來禁止CLFLUSH指令來緩解這種情況,」該團隊建議。
第二種攻擊在現有體系結構上非常難以緩解,因為它在Linux上作為正常的x86-64進程運行,並提升特權以訪問所有物理內存。
專家測試了2010年至2014年間生產的八款x86筆記本電腦的漏洞利用情況,並在五個不同的CPU系列上使用了五家不同的DDR3 DRAM供應商。
Project Zero專家在Github上發布了「DRAM Rowhammer問題測試程序」。
測試結果表明,研究人員在15種情況下獲得了29個不同機器的位翻轉,他們強調,沒有觀察到位翻轉並不意味著DRAM一定不能被利用。
其中一位研究人員說,
雖然在給定機器上進行測試期間缺少位翻轉並不意味著安全,但確實提供了一些基本保證,即在該機器上引起位翻轉很困難。
抵禦Rowhammer攻擊的防禦是使用ECC內存,該內存利用額外的位來幫助糾正錯誤,但更加昂貴。最新的DDR4晶元或者包含ECC功能的DIMM會導致攻擊失敗。
Errata Security的研究員Robert Graham說,
目前最大的威脅是台式機/筆記本電腦,因為他們既沒有ECC內存也沒有虛擬機。特別是,谷歌的本地客戶端(NaCl)存在代碼執行危險。這是一個聰明的沙箱,允許在Chrome瀏覽器中運行本地代碼,以便網頁能夠像系統上的本機軟體一樣快速運行。這種記憶破壞了NaCl的一級保護。沒有人證明如何在實踐中使用這種技術來完全擊敗NaCl,但最終有可能有人會發現一種方式。
Zero團隊呼籲DRAM製造商、晶元製造商和BIOS廠商採取必要的措施來緩解Rowhammer的安全問題,並透露他們如何做到這一點。
Drammer——mobile上的Rowhammer攻擊
一年後,阿姆斯特丹Vrije大學VUSec實驗室的一個小組研究了利用Rowhammer來獲取對數百萬Android智能手機的無限「root」訪問的可能性。
專家們設計了一種名為Drammer的攻擊技術,利用這種技術可以獲取針對數百萬Android智能手機設備動態隨機存取存儲器(DRAM)的「root」訪問許可權。
針對移動設備的Rowhammer攻擊包括一個惡意應用程序,該應用程序一旦執行就反覆訪問存儲器晶元上相同的「行」晶體管(Hammering過程)
敲擊存儲器的特定部分可能會與相鄰行發生電氣干擾。這種干擾可能會導致該行漏電到下一行,最終導致一些位發生翻轉並導致數據修改。
攻擊者可以利用這些修改來執行自己的代碼並獲得移動設備的控制權。
研究人員創建了一個PoC漏洞利用,名為DRAMMER,用於測試移動設備上的Rowhammer攻擊。專家發表了一篇關於DRAMMER攻擊的研究論文和一個包含攻擊技術細節的網頁。
該技術允許修改主要供應商Android設備的關鍵位數據。
為了讓應用程序直接訪問動態隨機存取存儲器(DRAM),研究人員利用了Android機制的ION存儲器分配器。
ION內存分配器還允許攻擊者識別DRAM上的相鄰行,這對於通過產生位翻轉來驅動Rowhammer攻擊是必不可少的。
這種能力使研究人員能夠在受害者的設備上實現root訪問權,使他們能夠完全控制移動設備。
該論文指出,
從最高層面來說,我們的技術通過耗盡不同大小的可用內存塊來驅動物理內存分配器進入一種狀態,在該狀態下,它必須從我們可以可靠預測的區域開始提供內存。然後,我們強迫分配者將目標安全敏感數據,即頁表放置在物理內存中易受位翻轉影響的位置,並且我們可以從我們控制的相鄰存儲器敲擊。
圖1 – Drammer攻擊
研究人員發表的一篇博客文章指出,
Drammer是一個利用Android設備上Rowhammer硬體漏洞的新攻擊。它允許攻擊者通過將其隱藏在不需要許可權的惡意應用程序中來控制移動設備。幾乎所有的設備都可能受到攻擊,必須等待Google修復才能控制。Drammer可能會讓數百萬用戶面臨風險,尤其是與現有的Stagefright或BAndroid等攻擊媒介相結合時。
專家成功獲取Android手機root許可權,包括Google的Nexus 4和Nexus 5; LG的G4;三星Galaxy S4和Galaxy S5,摩托羅拉的2013年和2014年的Moto G;和OnePlus One。
圖2 – Drammer測試結果
專家發表的一篇論文如是說,
我們的[DRAMMER]攻擊不僅表明實際的、確定性的Rowhammer攻擊對數十億移動用戶構成了真正的威脅,而且還是第一次證明Rowhammer在x86以外的平台上能可靠地被利用。與現有解決方案相比,其軟體功能集有限得多。
DRAMMER應用程序可以在幾分鐘內完全控制受害者的手機,並且不會請求用戶的交互。
研究人員發布了兩個PoC視頻,證明了DRAMMER可以攻擊沒有root的LG Nexus 5。
在第一個視頻中,手機運行谷歌10月5日發布了安全修補程序的Android 6.0.1,而在第二個視頻中,研究人員展示了如何將DRAMMER攻擊與Stagefright漏洞相結合,該漏洞在許多舊版Android設備中仍未修復。
https://youtu.be/x6hL-obNhAw
https://youtu.be/0pV-Q9Q5s4Q
研究人員還在GitHub上發布了DRAMMER應用的源代碼,以允許用戶測試他們的移動設備並匿名分享結果。
專家們在七月份向Google報告了這個問題,該科技巨頭認識到這是一個「嚴重」的漏洞,並在其bug獎勵計划下給予研究人員4000美元獎勵。
問題是DRAMMER利用的某些軟體特性對於任何操作系統都非常重要,因此在不對設備的整體設計產生重大影響的情況下刪除或修改它們是不可能的。
GLitch Attack: 第一起針對Android設備的遠程Rowhammer攻擊
來自阿姆斯特丹Vrije大學VUSec實驗室的研究人員繼續分析了Rowhammer攻擊技術,並演示了如何利用圖形處理單元(GPU)來針對Android智能手機。
專家們開始對Drammer攻擊進行了最大的限制,該攻擊表現為必須在目標設備上安裝惡意應用程序。
現在,同樣的專家團隊首次設計了一種名為GLitch的技術,可以遠程對Android手機進行Rowhammer攻擊。
GLitch技術利用嵌入式圖形處理單元(GPU)發起攻擊。
該研究報告顯示,
我們證明,已經廣泛用於加速各種良性應用(如圖像渲染)的GPU也可以用於在商業平台上』加速』微架構攻擊(使其更有效)。攻擊者可以構建所有必要的基來執行基於GPU的有效微架構攻擊,並且這些基都通過標準化瀏覽器擴展暴露給網路,從而允許來自JavaScript的邊路和Rowhammer攻擊。
GLitch這個名稱來自於一個廣泛使用的基於瀏覽器的圖形代碼庫(稱為WebGL)用於渲染圖形以觸發DDR存儲器中已知的故障。
專家們發布了GLitch PoC攻擊,並證明可以通過欺騙受害者訪問託管惡意JavaScript代碼的網站來進行Rowhammer攻擊。
通過使用此攻擊方案,可以在2分鐘內遠程攻擊Android智能手機。惡意腳本只能在Web瀏覽器許可權下運行,這意味著攻擊者可以獲取用戶的憑據並監視用戶的瀏覽行為。
GLitch攻擊無法讓威脅攻擊者獲得對受害者設備的完全控制權。
GLitch不像其他Rowhammer技術一樣使用CPU,而是使用圖形處理單元(GPU)。
研究人員選擇利用GPU,因為它的緩存可以很容易控制,允許在沒有任何干擾的情況下敲擊目標行。
文章表明,
雖然功能強大,但由於硬體功能沒有文檔,這些GPU基元並不容易實現。我們描述了新穎的反向工程技術,用於窺探先前未知的緩存架構和Adreno 330的替代策略,這是在許多常見移動平台中發現的集成GPU。
受影響的智能手機晶元運行Snapdragon 800和801系統;這意味著GLitch攻擊僅適用於較舊的Android設備,包括LG Nexus 5,HTC One M8或LG G2。
PoC代碼適用於Firefox和Chrome;視頻中研究人員在運行Mozilla Firefox瀏覽器的Nexus 5上演示了GLitch攻擊。
https://youtu.be/YniqBaSK-Eg
不幸的是,用軟體補丁來緩解GLitch攻擊是不可能的,因為它利用了硬體漏洞。
專家對大規模潛在Rowhammer攻擊發出警告;目前他們正在幫助Google減輕攻擊。
Throwhammer——針對區域網計算機的Rowhammer攻擊
在GLitch攻擊中,專家演示了如何利用圖形處理單元(GPU)對Android智能手機發起遠程Rowhammer攻擊,他們還設計了一種名為Throwhammer的Rowhammer攻擊變體,專門針對區域網中的計算機系統。
該技術是由同一個研究小組提出的,來自阿姆斯特丹Vrije大學和塞普勒斯大學的專家小組。
研究人員此次證明,通過區域網發送惡意數據包可能會對配備有遠程直接內存訪問(RDMA)的乙太網網卡的系統實施Rowhammer攻擊。雲基礎設施和數據中心廣泛採用這種配置。
圖3 – Throwhammer攻擊
網卡使用RDMA功能,允許網路中的計算機直接將數據(具有讀取和寫入許可權)交換到主存儲器。研究人員證明,有可能濫用此功能來快速連續訪問目標存儲器,從而觸發DRAM上的位翻轉。
Throwhammer攻擊要求至少10Gbps的高速網路在十毫秒內訪問數十萬次特定DRAM位置來觸發一次位翻轉。
專家們發表的研究論文如是說,
具體來說,我們設法使用商用10 Gbps網路遠程翻轉位。我們依靠雲端和數據中心中常用的RDMA技術來快速讀取遠程DMA緩衝區,以便在這些不受信任的緩衝區之外造成Rowhammer破壞。這些破壞讓我們在不依賴任何軟體錯誤的情況下危害遠程memcached伺服器。
根據該文件,專家們可以在區域網中支持RDMA的網卡上觀察到64毫秒訪問560,000次(大約每秒900萬次訪問)內存可以引發位翻轉。
該論文表示,
即使是普通的10 Gbps乙太網卡,也可以輕鬆地每秒向遠程主機發送900萬個數據包,最終存儲在主機內存中。這可能足以讓攻擊者通過網路實施Rowhammer攻擊?在本文的其餘部分中,我們證明了這種情況,攻擊者可以使用由網路流量引發的這些位翻轉來危害遠程伺服器應用程序。
專家解釋說,禁用RDMA來緩解攻擊是有效的,但也不現實,因此他們提出了一些解決方案,如ALIS,一種自定義分配器,可以隔離容易受到攻擊的RDMA緩衝區。
Throwhammer攻擊的技術細節可以在專家發表的文章中找到,題為「Throwhammer: Rowhammer Attacks over the Network and Defenses」。
總結
專家們演示了如何利用Rowhammer攻擊移動和桌面系統。不幸的是,目前不能通過使用軟體補丁簡單地減輕此技術所利用的漏洞。
為了解決這個問題,有必要重新設計有缺陷組件的體系結構;同時威脅攻擊者可以在野外利用Rowhammer技術。
參考
http://users.ece.cmu.edu/~yoonguk/papers/kim-isca14.pdf
https://github.com/google/rowhammer-test
https://vvdveen.com/publications/drammer.pdf
https://www.vusec.net/projects/glitch/#technicals
https://www.cs.vu.nl/~herbertb/download/papers/throwhammer_atc18.pdf
https://www.vusec.net/projects/drammer/
https://www.vusec.net/wp-content/uploads/2018/05/glitch.pdf
https://securityaffairs.co/wordpress/72377/hacking/throwhammer-rowhammer-attack.html
https://securityaffairs.co/wordpress/72131/hacking/glitch-attack-amndroid.html
https://securityaffairs.co/wordpress/34717/hacking/dram-rowhammer-flaw-exploit.html
https://securityaffairs.co/wordpress/52677/hacking/drammer-android-attack.html


※Mirai變種將發起新一波的DDoS攻擊 目標鎖定金融機構
TAG:嘶吼RoarTalk |