自從Rowhammer漏洞首次出現以來,研究者與防禦者之間可以說從此上演了一場軍備競賽,一招一式之間彰顯各方技術實力。就在最近,百度安全實驗室資深研究員Yueqiang Cheng博士和新南威爾士大學的Zhi Zhang博士就祭出大招,他們發現了一種新型Rowhammer攻擊方法,可以有效攻破目前PC上的各種防禦機制,從而使得整個PC安全機制面臨崩塌的風險。

憑藉此項研究,百度安全成功入選了本屆Black Hat Asia,成為本屆大會“連中三元”的贏家。3月26日,Yueqiang Cheng博士和Zhi Zhang博士受邀出席大會並在演講中詳細介紹了Rowhammer新型攻擊方法和防禦思路。

Black Hat是國際安全工業界的頂級會議之一,具有廣泛的影響力。每年分別在美國、歐洲、亞洲各舉辦一次安全信息技術峯會,會議聚焦於先進安全研究、發展和趨勢,並以其強技術性、權威性、客觀性引領未來安全思想和技術的走向。為保證會議內容的技術先進性和客觀性,Black Hat對報告內容有嚴苛的評審機制,報告入選率不足20%。近年來,百度安全多次登上Black Hat的舞臺,分享在AI安全、移動安全等領域的研究與實踐成果。

百度安全發現最全新Rowhammer攻擊方法

這幾年,硬件內存容量正在大幅度上漲,這直接要求着每個單獨DRAM芯片上的存儲容量也要提升,存儲單元的密度顯著增加。當頻繁轟炸多個DRAM內存單元時,其相鄰行的電荷將會發生相互幹擾,觸發DRAM單元極間的相互作用,造成DRAM中比特位數值的永久翻轉,這意味着攻擊者可以在不訪問目標內存區域的前提下使目標內存區域產生數據錯誤。這就是Rowhammer比特翻轉攻擊。

PC安全機制又招“重鎚”,百度安全發現新型Rowhammer攻擊方法 科技 第1張

攻擊者可以利用它破壞MMU強制執行的內存保護,從而獲得權限提升。值得關注的是,在這個過程中攻擊者不需要藉助任何軟件漏洞,便能打破沙盒,攻擊內核甚至虛擬機監控器,從而獲得非法提權,造成用戶隱私泄漏或者帳號資產被盜等嚴重損失。

這一存在設備硬件端的漏洞,已然超越了傳統安全軟件的對於解決方案的認識,無法僅僅通過升級操作系統軟件來解決。但為了抵禦該攻擊,業界還是提出了不少防護措施。基於硬件的防護措施需要硬件廠商修改硬件標準,對硬件進行升級,對現有的硬件無法進行防護。因此,具有實用性的軟件防護機制是目前主流的防禦辦法。

在這些軟件防禦中,基於內核的memory isolation是最有效和實用的解決方案(CATT Usenix Security 2017)。該方案將物理內存分割成若干隔離的物理分區,並確保每一個分區只能被一個軟件域使用,由任意軟件域發起的內存訪問只能由它所分配的物理分區完成,因此,任何軟件域所觸發的位翻轉只能發生在該域所在的分區,從而防止軟件域逃逸而引起權限提升。

此次演講中,來自百度安全的Yueqiang Cheng博士展示了一種全新的攻擊方法,可以有效攻破上述目前最先進的memory isolation機制,從而使得Rowhammer攻擊內核變得可能。該方法證明在現代操作系統中,物理隔離也表現的迴天乏術。

具體來說,之前基於內核的memory isolation機制基於靜態ownership來決定所有權的歸屬。比如內核申請的內存屬於內核域,用戶申請的內存屬於用戶域。但是Yueqiang Cheng博士發現,在現代的內核裡面,內存的歸屬權往往是動態變動的,而且會有多個所有者的情況,比如大量mmap的內核內存,都同時有兩個擁有者。通過這樣的內存,攻擊者就有機會發起Rowhammer,獲得內核權限。該攻擊分為以下幾個步驟:

1.尋找到符合要求的內存。此次攻擊裡面使用了SCSI驅動的內存和Video驅動的內存。這樣的內存都具有兩個所有者。

2.百度安全提出了全新的memory ambush技術,將其隱蔽的放置頁表頁面在目標周圍。相比以往的Rowhammer技術往往需要申請大量的內存,甚至有些時候會引起系統的崩潰等不穩定情況出現。而memory ambush技術巧妙的搭建在Linux Buddy Alloctor的基礎上,可以有效且準確的控制目標內存。在實驗環境下面,僅僅使用88MB內存就可以發起攻擊。

3.使用side-sided Rowhammaer技術對目標內存(比如頁表頁面)進行攻擊,使其發生bit翻轉

4.控制頁表去任意修改內核數據和其他程序的代碼和數據

5.修改uid,或者root提權。

注意這裏的memory ambush技術和另外文章another flip (S&P2018)裡面用的memory waylaying有着類似的優點(佔用內存很小,不會導致系統內存耗盡),但是兩者的技術有很大不同。memory ambush技術建立在Linux Buddy Alloctor基礎上,而memory waylaying建立在page cache的基礎上。另外該another flip文章是從一個non-root process攻擊了在同一個user隔離域裡面的root process,memory ambush則是從根本上攻擊了完全隔離的另外一個域(從user隔離域攻擊kernel隔離域)。如果CATT進行了細粒度的隔離域分割,比如把user隔離域分為root-user隔離域和non-root-user隔離域,another flip的攻擊就不能成功,但此次百度安全在Black Hat Asia上所展示的攻擊依然有效。

此次新型攻擊程序允許普通用戶隱蔽地獲取Linux系統(Linux 4.x)的root/kernel權限。這對整個系統的完整性和隱私性都會形成重大威脅。獲得提權之後,攻擊者可以任意獲取用戶隱私,篡改重要數據,監控用戶行為等等種種惡意攻擊。

PC安全機制又招“重鎚”,百度安全發現新型Rowhammer攻擊方法 科技 第2張

任重而道遠,防禦Rowhammer的路還很長

Rowhammer還活着,比特翻轉的風險依然存在。針對此次公佈的新型攻擊手法,百度安全也介紹了一些防禦方案建議,希望這些研究成果能夠給內存芯片廠商帶來新的思路,提高芯片對於Rowhammer的防禦能力。

第一,將軟件域之間的共享內存區域歸入低權限的軟件域中,因此將該共享內存和高權限的物理分區隔離,阻斷Rowahmmer,這需要大量修改系統內核的內存分配子系統,確保共享內存區域不再用於安全敏感數據結構的分配,因此此方案可行性較低;

第二,將所有數據(包括代碼)所在的DRAM單元行進行上下隔離,即數據單元行之間相隔一個無效單元行,因此確保位翻轉只會發生在無效行上,避免數據行被影響。此方法的問題在於沒有考慮位翻轉可以發生在連續多個單元行上,即一個數據單元行可引發相鄰的無效單元行以及更遠的數據單元行發生翻轉,導致權限提升;

第三,將所有的頁表頁放在DRAM模塊的true cells上,且只有頁表頁均位於物理地址區域的最高區域,因此確保當頁表頁發生翻轉時只會指向低段的物理地址區域(比特位只會由1到0進行翻轉),而不會指向位於高端的頁表頁,從而防止攻擊者獲得可寫頁表頁。該方案只保護以頁表頁可寫為目標的Rowhammr攻擊,保護範圍受限,即當攻擊者將頁表頁翻轉指向一個非頁表頁,如當前進程的cred結構體或者root進程的權限檢查代碼頁,該方案就會失效。最後,它依賴於一個大概率事件,即true cells的位翻轉方向是1到0,但該翻轉方向的概率是隨DRAM模塊變化的,並不是恆定的翻轉方向,一旦true cells發生從0到1的翻轉,那麼該方案也會失效。

總的來說,現有的軟件防護只能一定程度地減弱Rowhammer攻擊,我們還需要新的軟件防護機制來保衛現有的計算機系統,提高黑客的攻擊成本。

在萬物互聯的趨勢下,只有敢於直面問題才能解決問題。百度安全始終倡導通過新一代技術研發與開源,實現對安全問題的快速響應和有效對抗。在在本屆Black Hat Asia中,百度安全對於深度神經網絡(DNN)模型算法安全性、Rowhammer新型攻擊方法、Meltdown新變種三大創新性研究報告成功入選,彰顯了百度安全在AI安全、系統安全、軟件安全等重要安全領域方面具有世界領先的技術儲備。未來,百度安全還將繼續聯手學界、業界和監管機構一道,協作共贏,打造AI時代的安全生態。

相關文章