早在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技術。
原文釋出時間為:2018-05-23
本文來自雲栖社群合作夥伴“
嘶吼網”,了解相關資訊可以關注“
”。