【摘要】伴隨著大數(shù)據(jù)和云時代的到來,虛擬化技術(shù)的應(yīng)用已經(jīng)越來越成熟。如何運用虛擬化技術(shù)給終端客戶提供一個安全穩(wěn)定高效的桌面環(huán)境,成為了一個日益熱門的話題。Qubes系統(tǒng)利用新一代的硬件技術(shù)和虛擬化技術(shù)實現(xiàn)物理宿主機的隔離能力,從系統(tǒng)層面對木馬病毒和惡意代碼進(jìn)行了防范和遏制,一定程度上解決了系統(tǒng)安全領(lǐng)域的木桶問題。此外,應(yīng)用虛擬化技術(shù)提高安全性能的同時還可能帶來那些問題和隱患,也應(yīng)該引起我們足夠的重視。
【關(guān)鍵詞】虛擬化,Xen,Qubes,攻擊
1引言
目前,桌面計算領(lǐng)域的主流操作系統(tǒng),包括Windows、MacOS以及基于Linux的系統(tǒng)在安全性方面都不甚令人滿意。它們的主要問題是無法為一 臺機器中運行的各種程序提供相互之間的有效隔離。為了彌補上述問題,QubesOS在Linux基礎(chǔ)上采用許多現(xiàn)有模塊,特別是Xen虛擬機技術(shù),來解決 兩個問題:一是利用虛擬化提供優(yōu)異的安全隔離性能;二是兼容主流操作系統(tǒng)的應(yīng)用程序和硬件驅(qū)動。
2Qubes系統(tǒng)架構(gòu)
Qubes系統(tǒng)中的基礎(chǔ)和精髓是虛擬化技術(shù)的使用。為了這一特點,Qubes系統(tǒng)特別優(yōu)化了磁盤的讀寫方式和使用效率,從而避免多個虛擬機同時訪問磁盤時可能造成磁盤性能降低等問題。文件系統(tǒng)共享機制允許不同的虛擬機在不降低安全隔離性能的前提下重用大部分的文件系統(tǒng),而IntelVT-d和TXT技術(shù)則用來創(chuàng)建安全的設(shè)備驅(qū)動域從而減少系統(tǒng)受攻擊的概率。
3Qubes安全技術(shù)特點
3.1虛擬隔離技術(shù)
Qubes選擇Xen為其底層的虛擬機監(jiān)控器,以便實現(xiàn)虛擬機之間的相互隔離。相對于Linux內(nèi)核代碼而言,Xen更為輕量,更易進(jìn)行安全審計。一般而言,Xen體系中存在的特權(quán)域(Dom0)幾乎和虛擬機監(jiān)控器擁有相同的安全等級,而這種設(shè)計的本身可能導(dǎo)致安全隱患。因此Qubes將網(wǎng)絡(luò)功能和存儲功能從Dom0中移植出來,這樣既能保證Dom0對外開放的接口極度精簡從而加強安全型,又能減少Dom0的代碼量從而提高效率。此外,Qubes的虛擬機監(jiān)控器受到嚴(yán)格的VT-d保護(hù),Dom0和其他應(yīng)用虛擬機都將自動獲取DMA保護(hù)以防止來自總線控制設(shè)備的物理攻擊。
3.2安全存儲技術(shù)
Qubes采取LUKS全盤加密來保障安全,這樣即使存儲域被入侵,其他域的文件系統(tǒng)仍然可以不受侵害。主要采取了兩個措施:一是對各虛擬機所有的存儲設(shè)備分別進(jìn)行加密,只有該虛擬機本身和Dom0才持有密鑰;二是對包含應(yīng)用虛擬機使用的根文件系統(tǒng)塊設(shè)備進(jìn)行數(shù)字簽名,只有Dom0有簽名密鑰。
3.3網(wǎng)絡(luò)安全技術(shù)
如果將每個應(yīng)用虛擬的網(wǎng)絡(luò)策略統(tǒng)一放置到網(wǎng)絡(luò)域,那么網(wǎng)絡(luò)域?qū)䲟碛休^高的特權(quán)。因此,Qubes將每個應(yīng)用虛擬機的網(wǎng)絡(luò)策略放置到其自身的存儲空間中。網(wǎng)絡(luò)域有權(quán)限直接訪問網(wǎng)絡(luò)硬件設(shè)備,但其自身只是一個非特權(quán)域。網(wǎng)絡(luò)域隔離不同域之間的通信。每個需要網(wǎng)絡(luò)通信的應(yīng)用虛擬機都通過一個由Xen創(chuàng)建的虛擬網(wǎng)絡(luò)終端完成通信。為了避免域間通過TCP/IP棧通信,Qubes并沒有橋接不同虛擬機的vif*接口,而是將它們直接連接到包過濾器上,通過過濾器阻止域間通信。
3.4應(yīng)用支持技術(shù)
Qubes安全操作系統(tǒng)的設(shè)計是在傳統(tǒng)操作系統(tǒng)的基礎(chǔ)上,在其底層增加虛擬機監(jiān)控層,因此其能支持的應(yīng)用類型取決于虛擬機監(jiān)控層上各個虛擬機中的客戶操作系統(tǒng)。目前,Qubes可支持Windows和Linux作為其客戶操作系統(tǒng),能夠兼容運行大部分的Windows或Linux應(yīng)用程序。
4Qubes潛在攻擊威脅
4.1虛擬機為載體的攻擊(一階攻擊)
4.1.1虛擬機監(jiān)控器可能存在漏洞
盡管Xen以精簡安全著稱,但其源代碼中仍然發(fā)現(xiàn)過可以利用的安全漏洞。Xen虛擬機監(jiān)控器僅被發(fā)現(xiàn)過一個溢出漏洞,它不是在Xen核心代碼中,而是在稱為“FLASK安全模塊”的可選擴展代碼中,將來不排除會發(fā)現(xiàn)更多的漏洞。4.1.2Xen存儲守護(hù)進(jìn)程可能存在漏洞
Xen存儲守護(hù)進(jìn)程運行在Dom0中,入侵者一旦入侵可據(jù)此獲取整個Dom0的控制權(quán)。Xen守護(hù)進(jìn)程究竟運行在用戶賬戶還是root賬戶將決定著整個系統(tǒng)的安全等級。存在一種理論上的可能,就是Xen存儲守護(hù)進(jìn)程在實現(xiàn)過程中發(fā)生了邏輯錯誤。比方說一個非特權(quán)域可能利用守護(hù)進(jìn)程中的某漏洞去讀取它權(quán)限之外的數(shù)據(jù),可能就此獲取了用來加密塊設(shè)備的Inter-VM交換文件,這樣攻擊者不僅可以完全控制存儲域,并且可以竊取虛擬機之間的交換數(shù)據(jù)。Xen守護(hù)進(jìn)程采用非常簡單的方式進(jìn)行通信,建立與Xen共享內(nèi)存和事件通道機制之上。同樣,使用的協(xié)議也非常簡單,將受到攻擊的概率減到最小。
4.1.3GUI守護(hù)進(jìn)程可能存在漏洞
GUI守護(hù)進(jìn)程同樣運行在Dom0中,對它的成功入侵同樣將是致命的。GUI守護(hù)進(jìn)程和Xen存儲守護(hù)進(jìn)程一樣,使用底層通訊機制和相當(dāng)簡單的協(xié)議。因此GUI守護(hù)進(jìn)程產(chǎn)生錯誤的可能性非常小。
4.1.4CPU可能存在漏洞
CPU中曾存在一個漏洞,可以不經(jīng)授權(quán)就將ring3的權(quán)限提升到ring0,有些類似SMM緩存攻擊。
4.2驅(qū)動域為載體的攻擊(二階攻擊)
4.2.1VT-d技術(shù)繞行攻擊
一般而言,攻擊者如果能夠針對某個驅(qū)動域(比如說網(wǎng)卡)制造一個可編程設(shè)備進(jìn)行DMA通訊,那么就很有機會對系統(tǒng)進(jìn)行入侵。但是,Qubes基于IntelVT-d技術(shù)的架構(gòu)可以有效防止驅(qū)動域通過DMA訪問其它域的內(nèi)存空間。所以,假設(shè)攻擊者能夠繞開IntelVT-d技術(shù)的保護(hù),比如說入侵內(nèi)存控制器,那就能成功實施入侵。然而,目前而言沒有發(fā)現(xiàn)針對IntelVT-d的有效攻擊手段。想成功入侵Qubes系統(tǒng)除了繞過IntelVT-d的保護(hù),還必須要利用軟件漏洞成功入侵一個驅(qū)動域才行。
4.2.2驅(qū)動域?qū)е碌腗BR攻擊
如果入侵者控制了某個驅(qū)動域,那么理論上他可以設(shè)法將該域控制的某個硬件設(shè)備的固件進(jìn)行更新。然后等到機器重啟時利用改過的固件和惡意DMA代碼感染系統(tǒng)引導(dǎo)器甚至于MBR。然而由于Qubes使用了IntelTXT技術(shù)實現(xiàn)安全啟動過程,所以收效可能也不大,因為始終無法解決存儲域的控制權(quán)限問題。
4.2.3存儲域?qū)е碌腄MA延時攻擊
如果攻擊者能夠控制存儲域,那他就可以感染引導(dǎo)區(qū)或者M(jìn)BR。然后通過引導(dǎo)區(qū)訪問顯卡或者聲卡并將他們重新編程或者重刷固件(這是因為引導(dǎo)過程的早期階段,或者說執(zhí)行SENTER之前并沒有VT-d的保護(hù))。顯卡或聲卡被篡改后,當(dāng)Dom0啟動時就可以實施惡意DMA攻擊了。此等攻擊手段能夠成功的原因主要是Dom0所分配的設(shè)備(比如網(wǎng)卡和聲卡)被賦予整個Dom0內(nèi)存域的DMA訪問權(quán)限。為了抵御類似的攻擊手段,虛擬機管控器需要通過hypercall讓所有域在虛擬機啟動前就開起VT-d保護(hù)。
4.2.4TXT技術(shù)繞行攻擊
Invisiblethings實驗室曾經(jīng)揭露過針對IntelTXT的安全攻擊,主要利用了SMM中存在的漏洞對IntelTXT發(fā)起攻擊。SMM享有系統(tǒng)的最高權(quán)限,可以不受控制地執(zhí)行任意系統(tǒng)指令。而利用TXT指令SENER進(jìn)入可信環(huán)境時并不對系統(tǒng)中已經(jīng)存在并運行的SMM做完整性校驗,因此通過攻擊SMM就能夠繞過TXT機制對系統(tǒng)執(zhí)行任何惡意指令,使得系統(tǒng)的安全機制形同虛設(shè)。另外,SINIT模塊同樣存在安全漏洞,能夠攻破TXT安全機制。
4.2.5源自BIOS的不可信輸入(例如惡意ACPI技術(shù))
Xen虛擬機監(jiān)控器和Dom0內(nèi)核在啟動過程中處理若干個由BIOS提供的輸入數(shù)據(jù)。包括了BIOS的E820內(nèi)存映射、BIOS提供的ACPI表等等。所有BIOS提供的輸入都應(yīng)被視作不可信的,處理的時候應(yīng)該格外謹(jǐn)慎。舉例來說,ACPIAML是Dom0內(nèi)核中實現(xiàn)電源管理功能的一部分,攻擊者可以通過篡改ACPI表使得Dom0執(zhí)行惡意的AML從而達(dá)到入侵Dom0的效果。更極端情況下,可以利用虛擬機監(jiān)控器或Dom0內(nèi)核中的輸入過程處理錯誤,例如Bios提供的數(shù)據(jù)存在內(nèi)部格式錯誤就會導(dǎo)致緩存溢出,而e820表中如果有太多項就會導(dǎo)致這樣的情況發(fā)生。
4.2.6源自存儲域的加密系統(tǒng)繞行
可信的VM私有塊設(shè)備加密方案和安全的根文件系統(tǒng)共享機制的實現(xiàn)對于存儲域尤為重要。否則一旦攻擊者獲取了存儲的控制權(quán)限,那就可以盜取虛擬機的私有數(shù)據(jù),而且還能給虛擬機注入惡意代碼。
4.2.7源自存儲域的存儲前端攻擊
攻擊者一旦控制了存儲域,就可以利用那些與存儲域的塊設(shè)備后端進(jìn)行通訊的虛擬機塊前端的漏洞來控制相應(yīng)虛擬機。但由于塊前端驅(qū)動十分精簡,因此此種攻擊成功的概率不高。
4.2.8虛擬機網(wǎng)絡(luò)代碼攻擊
控制網(wǎng)絡(luò)域的攻擊者會試圖利用虛擬機網(wǎng)絡(luò)前端或者TCP/IP棧所可能存在的漏洞。一般的TCP/IP棧,相比WiFi;蛘遅iFi驅(qū)動而言,經(jīng)過了更為嚴(yán)格的代碼測試,因此較難在此棧發(fā)現(xiàn)或?qū)嵤┞┒垂簟?/p>
4.3網(wǎng)絡(luò)為載體的攻擊
由于所有開放的網(wǎng)絡(luò)代碼都在非特權(quán)網(wǎng)絡(luò)域內(nèi)運行,所以沒有從本地網(wǎng)絡(luò)系統(tǒng)直接進(jìn)行攻擊的途徑。然而,一旦攻擊者設(shè)法入侵了網(wǎng)絡(luò)域(比如通過WiFi驅(qū)動漏洞),那就可以嘗試運行在其他應(yīng)用程序虛擬機中的網(wǎng)絡(luò)堆棧漏洞,即所謂的二階攻擊。
4.4物理方式攻擊
物理攻擊是一種廉價高效的攻擊手段,Qubes在防御物理攻擊方面也作了很多工作,但還是有一些方法和途徑可以去嘗試。比如邪惡女傭攻擊、鍵盤嗅探攻擊或者DMA攻擊(例如惡意PCMCIA)
由于VT-d的廣泛使用,Qubes在設(shè)計之初就考慮到了應(yīng)對多種動態(tài)DMA攻擊。比方說,當(dāng)攻擊者插入一塊特制的PCMCIA卡,試圖通過DMA技術(shù)直接訪問和修改內(nèi)存,從而達(dá)到入侵Dom0、解鎖系統(tǒng)或者抓取內(nèi)存鏡像的目的。我們知道,蘋果系統(tǒng)在10.8版本之后修改了DMA應(yīng)用的相關(guān)代碼,從而杜絕了DMA繞行漏洞。而Qubes的發(fā)行版本也同樣考慮到了這一點,因此這種方法實現(xiàn)的可能性較小。
參考文獻(xiàn)
[1]石文昌.安全操作系統(tǒng)研究的發(fā)展.計算機科學(xué),2002,29(6,7).
[2]JeannaN,Matthews,EliM.Dow,etal.RunningXEN:AHands-OnGuidetotheArtofVirtualization[M].2009.
[3]金海等.計算系統(tǒng)虛擬化——原理與應(yīng)用.北京:清華大學(xué)出版社,2008.
[4]R.P.Goldberg.SurveyofvirtualMachineResearch.IEEEComputer,1974,7.
[5]薜海峰,卿斯?jié)h,張煥國.XEN虛擬機分析[J].系統(tǒng)仿真學(xué)報,2007,19(23):5556-5558.
轉(zhuǎn)載請注明來自:http://www.jinnzone.com/dianzijishulw/29905.html
上一篇:中國科技獎勵雜志
下一篇:電子技術(shù)論文范文地址