一、主機虛擬化的安全威脅
1. 虛擬機信息竊取和篡改
這個實際上是說Hypervisor脆弱性引入的安全威脅,因為Hypervisor本身的脆弱性不可避免。
是否記得曾經虛擬化過的郵件服務器或者薪酬支付系統?如果擁有訪問虛擬化工作環境管理員權限,就可以輕松地進入該虛擬化工作環境,并且竊取所有的數據,而又不會留下任何痕跡。從數據中心偷走一個物理服務器是非常困難的,并且也很容易被人發現。但是無論在任何位置都可以通過網絡偷竊一臺虛擬機,把該虛擬機裝在閃存盤中就可以輕易地帶走。
2. 虛擬機逃逸
虛擬機逃逸指的是攻擊者在已控制一個VM的前提下,通過利用各種安全漏洞攻擊Hypervisor。典型案例:藍色藥丸、CloudBurst。
逃逸的后果:
安裝Hypervisor級后門;
拒絕服務攻擊;
竊取數據;
控制其他VM;
3. Rootkit攻擊
Rootkit是一種特殊的惡意軟件,它的功能是在安裝目標上隱藏自身及指定的文件、進程和網絡鏈接等信息,比較多見到的是Rootkit一般都和木馬、后門等其他惡意程序結合使用。Rootkit的三要素就是:隱藏、操縱、收集數據。
Rootkit 本身不會像病毒或蠕蟲那樣影響計算機的運行。攻擊者可以找出目標系統上的現有漏洞。漏洞可能包括:開放的網絡端口、未打補丁的系統或者具有脆弱的管理員密碼的系統。在獲得存在漏洞的系統的訪問權限之后,攻擊者便可手動安裝一個 Rootkit。這種類型的偷偷摸摸的攻擊通常不會觸發自動執行的網絡安全控制功能,例如入侵檢測系統。
4. 分布式拒絕服務攻擊
分布式拒絕服務(DDoS,Distributed Denial of Service)攻擊通過大量合法的請求占用大量網絡資源,以達到癱瘓網絡的目的。 這種攻擊方式可分為以下幾種:
通過使網絡過載來干擾甚至阻斷正常的網絡通訊;
通過向服務器提交大量請求,使服務器超負荷;
阻斷某一用戶訪問服務器;
阻斷某服務與特定系統或個人的通訊。
5. 側信道攻擊
芯片在運行的時候,由于數據或者邏輯的不同,內部的晶體管通斷是有區別的,通過這個區別來確定程序內部的數據或者指令,就是側信道攻擊。獲取這個區別有很多方法,比如在芯片的GND引腳處獲取電壓,通過探針去截取芯片輻射的變化等等。
側信道攻擊近幾年也在智能硬件的攻擊上被使用,比如2016年,就有人使用SPA(另一種側信道攻擊方法)攻擊了一個智能保險箱。其實,側信道攻擊對于運算單一,時鐘頻率低(時鐘頻率低這點很重要)的設備中的加密攻擊是很有效的。
二、主機虛擬化安全的解決方案
1. 虛擬化安全防御架構
作為整個虛擬化安全架構的一部分,IT部門應該把重點放在三個虛擬化方面:
按照位置分開虛擬機;
按照服務類型分開虛擬機;
在整個虛擬機生命周期內實施有預見性的安全管理;
這三個方面將幫助IT部門保護其虛擬基礎設施抵御當前的威脅,并且幫助IT部門緩解未來的攻擊威脅。
2. Hypervisor安全機制
目前主流的虛擬化軟件如Xen、VMware和KVM等均存在安全漏洞,主要體現在以下三個方面:一是隨著Hypervisor功能的增多,其代碼量也不斷增加,這就會在一定程度上增加安全漏洞的數量;二是Hypervisor自身可信性的問題,惡意攻擊者可能會將惡意軟件在Hypervisor中執行,破壞Hypervisor的完整性;三是Hypervisor的防御能力,若在Hypervisor中對物理資源或訪問策略的設置存在不合理之處時,Hypervisor的安全性就會大大降低。
自身安全保障:構建輕量級Hypervisor,較少TCB(Trusted Computing Base);基于可信計算技術的完整性保護。。
提高Hypervisor防御能力:虛擬防火墻;合理分配主機資源;保障遠程控制臺安全(連接數為1,禁止拷貝和黏貼);根據需要分配權限(先分配角色,不帶權限,用戶需要什么權限,再分配)。
3. 虛擬機隔離機制
安全隔離模型:硬件協助的安全內存管理SMM;硬件協助的安全I/O管理SIOM;
訪問控制模型:sHype,Shamon;
4. 虛擬可信計算技術
過虛擬監控機提供的隔離和監控機制,緩解軟件可信動態度量的理論危機,為在操作系統和軟件應用層建立可信計算環境提供一套解決方案。主要思路是通過虛擬技術提供的隔離機制將實體運行空間分開;通過監控機制動態度量實體的行為,發現和排除非預期的互相干擾。其主要的難點是細化隔離粒度,減少系統的開銷,提高度量效率。
過可信計算提供的可信度量、可信存儲和可信報告機制,凈化終端的計算環境,搭建終端之間的可信連接,構建誠實、互相信任的虛擬空間。主要思路是,通過可信度量機制保障虛擬機的動態完整性,通過可信報告機制實現不同虛擬環境的可信互通,通過可信存儲機制保障數據遷移、存儲和訪問控制的解決方案。一方面,利用可信計算技術實現對虛擬機的安全保障;另一方面,將可信計算融入基于虛擬機技術的應用業務中,例如云計算等,為上層服務提供更好的安全支撐。
5. 虛擬機安全監控
通過安全資源池的虛擬安全能力或者在租戶網絡內部署虛擬安全能力兩種方式,提供預防類安全服務,包括系統漏掃、配置基線核查和web漏洞掃描等,只需安全能力與掃描對象網絡可達,即可掃描租戶虛擬機的配置和漏洞情況,并根據掃描結果提供相應建議。
內部監控:被監控的虛擬機中插入一些鉤子函數,典型代表Lares、SIM,可以直接截取系統級語義;
外部監控:依賴Hypervisor的截獲,典型代表Livewire,需要語義重構(低級語義如二進制語義重構出高級語義如操作系統級語義);
6. 虛擬機自省技術
虛擬機自省是從虛擬機外部獲取客戶虛擬機操作系統內部狀態信息的技術,該技術打破了傳統安全防護技術的瓶頸,受到了安全領域的廣泛關注。它是一種在虛擬機外部監測虛擬機運行狀態的技術,從2003年提出以來,虛擬機自省得到了國內外學者的研究。近些年來,不僅出現了各式各樣的原型系統,還涌現出諸如LibVMI等優秀的開發工具包,基于虛擬機自省的應用也越來越多。
虛擬化概念最早起源于20世紀60年代,虛擬化技術可以實現在一個服務器上運行多個操作系統,初衷是為了更為充分地利用價格昂貴的大型機。經過半個世紀的發展,虛擬化技術已成為計算機領域的一項傳統技術,并且成為了云計算的核心技術。從虛擬化到云計算,IT產業實現了跨地域資源的動態調度,可以說虛擬化技術為云計算奠定了良好的基礎。但隨著云計算的廣泛應用,作為其核心技術的虛擬化技術的安全性也成為了業界關注的焦點問題。為了切實保障虛擬化環境的安全,需深入了解虛擬化存在的安全隱患,掌握虛擬化安全攻擊的原理,并有針對性地部署安全機制來抵御安全威脅。
最后絮叨兩句,安全運維和運維安全是兩個概念。運維是工程師對各種安全設備和軟件進行運維保障系統安全,而運維安全相比之下是涵蓋了整個云計算系統和安全有關的方方面面。