
概況
本文主要比較了主流虛擬機虛擬層(KVM,ESX,Hyper-V和Xen)中的安全功能和常見漏洞,并分析了安全趨勢。然后,對虛擬化軟件的常見威脅進行了分類,并討論其影響。最后,對于解決虛擬化軟件漏洞和安全問題,本文也提出一些解決方案。
1虛擬化軟件的常見漏洞及安全趨勢
首先,表1展示了上述主流虛擬層的一些標準功能和安全功能:
表1 虛擬機監控程序比較
如表所示,這些虛擬機虛擬層之間在安全功能方面的主要區別在于:只有KVM能通過SELinux為應用程序提供強制訪問控制。其他區別在于安全證書,其中Xen沒有FIPS 140-2驗證的加密模塊,而只有EAL2 +。
Common Vulnerabilities and Exposures(CVE)是追蹤計算機安全事件的關鍵方法。另一方面,也可以統計計算機軟件的漏洞條目來監測軟件的健壯性:
圖1 2011年至2020年CVE條目進行比較的折線圖此折線圖
顯示了2011年至2020年,KVM,ESX,Hyper-V和Xen的CVE條目數量?傮w來說,KVM展現出了比其他虛擬化軟件更好的安全性能。此外,該數字還打破了商業軟件比開源軟件更可靠的偏見。
2虛擬化軟件的常見威脅分類及其影響
通過分析虛擬化軟件的功能和CVE條目,可以得出,對虛擬化軟件的威脅可以分為以下方面:基于虛擬層(Hypervior)的攻擊【2.1】,基于虛擬機(VM,Virtual Machine)的攻擊【2.2】,和基于虛擬機鏡像(VDI,Virtual disk image)的攻擊【2.3】
常見威脅模型的具體分類如下圖所示。
圖2 虛擬化軟件的威脅模型
2.1 基于虛擬層的攻擊
基于虛擬層的攻擊,是入侵者利用虛擬化軟件允許多個操作系統共享單個硬件處理器功能中存在的漏洞。受控制的虛擬層,可以使黑客攻擊宿主機上的每個虛擬機。更多的軟件堆棧和API數量,以及較低的代碼安全性,也增加了此類風險,它包含以下攻擊模式: VM Escape,VM sprawl, Hyperjacking,Hypervisor rootkit attacks。
2.1.1 VM Escape
VM Escape是進程脫離其虛擬機并在宿主機操作系統上運行交互的的過程。虛擬機是“在正常宿主機操作系統中完全隔離安裝的客戶機操作系統。”虛擬機逃逸風險主要存在于2020年之前的VMware ESX中。
2.1.2 VM sprawl
當網絡上的虛擬機數量達到管理員無法再對其進行有效管理的程度時,就會發生虛擬化蔓延現象。其原因一般有兩個:首先,過度超分配的虛擬資源(vCPU,內存或磁盤);第二,不受限制的虛擬化資源分配策略。
2.1.3 Hyperjacking
Hyperjacking攻擊可以使黑客通過在虛擬機主機內創建虛擬環境,對虛擬層進行惡意控制。其攻擊的目標是虛擬機之下的操作系統,使攻擊者的程序運行應用在虛擬機之上,并且使虛擬機完全忽略運行程序的存在。
2.1.4 Hypervisor rootkit attacks
虛擬層級的惡意程序屬于類型二虛擬層,是學術界為證明概念而創建。通過利用諸如Intel VT或AMD-V之類的硬件虛擬化功能,這種類型的惡意程序運行在Ring 1指令上,并將目標操作系統變成一個虛擬機,從而使惡意程序能夠攔截由原始操作系統發出的硬件調用指令。
2.2 基于虛擬機的攻擊
基于虛擬機的攻擊是源自虛擬機的威脅。它可以通過惡意軟件破壞操作系統或其數據,或者通過網絡對另一臺虛擬機發起攻擊。此外,它還可以利用虛擬層的漏洞或繞過虛擬層來攻擊主機系統或其他虛擬機。
2.2.1 虛擬機內部攻擊
虛擬機的操作系統被惡意軟件或程序感染。此外,惡意的內部人員也可以利用系統和服務器漏洞入侵虛擬機。
2.2.2 虛擬機外部攻擊
虛擬機外部攻擊是來自未知來源的威脅。外部攻擊者可以利用一些公共資源的漏洞對虛擬機進行入侵,如暴露的服務端口或公開的服務漏洞。其中又主要包含DDoS攻擊{2.2.2.1},以及跨虛擬機側通道攻擊{2.2.2.2}。
{2.2.2.1} DDoS攻擊
DDoS攻擊是虛擬化和云平臺面對的主要攻擊之一。虛擬化平臺中有兩個最常見的DDoS攻擊對象:網絡帶寬和CPU資源。
{2.2.2.2} 跨虛擬機側通道攻擊
跨虛擬機側通道攻擊是一種復雜的攻擊方式。它可以通過旁路獲得虛擬機中的敏感信息,包括共享的CPU緩存、網絡、CPU負載。
2.2.3 虛擬機中過時的軟件
使用鏡像模板創建虛擬機實例,是交付虛擬機資源給用戶的常用方法。如果該鏡像模板中的軟件已過時,則意味著基于該鏡像創建的所有虛擬機都可能存在安全風險。另一個問題是,當用戶將虛擬機回滾或重置為早期版本時,它又可能會暴露軟件的早期漏洞。
2.2.4 虛擬機數據足印
虛擬機數據足印是系統的特征,包括操作系統類型、正在運行的服務、IP地址等。黑客可以通過分析虛擬機數據足印中的漏洞來準備一次攻擊。
2.2.5 濫用資源
盡管創建的虛擬機實例都有一個資源配額,但是當沒有嚴格的資源限制策略時,虛擬機實例仍然可以耗盡一些共享資源,例如CPU、網絡帶寬、磁盤I/O。當這些資源被濫用時,將導致其它的虛擬機實例無法獲取足夠的資源,從而無法保證服務質量。
2.3 基于虛擬機鏡像的攻擊
磁盤鏡像攻擊:常見的虛擬磁盤鏡像格式包括qcow2,qed,raw,vdi,vhd和vmdk。攻擊者可以修改鏡像的內容以插入惡意軟件或竊取敏感信息。2.3.1 虛擬機鏡像蔓延
虛擬機鏡像蔓延是在共享存儲(例如公共驅動器或隨機網絡共享)上拷貝,存儲和忽略了虛擬機磁盤鏡像。在某些私有云設計中,它可能會接入多個后端存儲,為運行虛擬機實例、鏡像模板或虛擬機備份,提供存儲空間。當其中一個存儲有安全漏洞時,也會增加軟件平臺信息泄漏的風險。
2.3.2 虛擬機回滾攻擊
在虛擬機回滾攻擊中,受感染的虛擬層會在用戶不知情的情況下,跟從舊快照來運行虛擬機。此處,用戶是云服務,該虛擬機的所有者。由于虛擬機部分執行記錄丟失了,因此攻擊者可以繞過虛擬機中的某些安全檢查,或撤消某些安全關鍵更新。
2.3.3 虛擬機檢查點攻擊
虛擬機鏡像要進行在線更新的前提,首先是要被啟動。啟動將增加云服務提供商的計算資源成本。攻擊者可以訪問磁盤中包含的可用物理內存信息的虛擬機檢查點,并找到揭示虛擬機狀態的數據。
3針對虛擬化軟件漏洞和安全問題的解決方案
虛擬化基礎架構包括計算虛擬化、存儲虛擬化、網絡虛擬化,以及安全保障,和資源管理解決方案。與傳統IT系統不同的是,虛擬化基礎架構更加復雜,在防止安全威脅方面也帶來了更多挑戰。但是,在大多數情況下,虛擬化安全就是IT安全。
在本章節中,將看到一些保護虛擬化安全的措施。
圖3 虛擬化安全措施
3.1 保護網絡
虛擬化網絡包含了兩個部分,即overlay網絡和underlay網絡。在underlay網絡安全中,核心措施是進行適當的網絡規劃。在overlay網絡中,主要措施是進行虛擬機網絡隔離和設置安全策略。此外,安全設備在虛擬化系統中仍然扮演著至關重要的角色。
3.1.1 平臺網絡規劃
網絡隔離是保護敏感信息免受外部攻擊或惡意內部人員攻擊的重要措施。在虛擬化或云平臺中,通常具有以下網絡:計算網絡、存儲網絡、管理網絡。在某些情況下,可能還具有備份網絡,即v2v網絡。如果平臺提供了Web門戶,則建議規劃一個單獨的門戶網絡。最佳實踐是通過VLAN或其他網絡技術,隔離每個系統網絡,以防止攻擊者利用一個系統的漏洞來入侵另一個系統。
3.1.2 虛擬機網絡隔離
虛擬機網絡隔離可以防止大多數基于虛擬機的攻擊。它也可以有效地阻止內部威脅。在虛擬化或云平臺中,可以使用VLAN或VPC網絡隔離不同的虛擬機或租戶。此外,將具有Internet訪問權限的外部虛擬機和內部虛擬機劃分為單獨的網絡,也可以有效降低受外部攻擊的風險。
3.1.3 安全政策
大多數虛擬化系統和云平臺都提供基于軟件的防火墻功能。管理員可以設置默認策略以拒絕所有帶內流量,并手動添加必要的防火墻策略。此措施可以防止虛擬機數字腳印掃描,并減少來自網絡的大多數威脅。
3.1.4 部署網絡安全設備
部署網絡安全設備可以防御各種威脅。與傳統的IT系統相比,不僅應該部署物理安全設備,還應該部署一些基于虛擬機的安全設備。物理安全設備包括防火墻、IDS、IPS等,它們用于防止來自外部的網絡攻擊,例如DDoS;谔摂M化的安全設備有HyperIDS、網絡訪問控制、負載均衡器和蜜罐等,它們用于防止來自內部的攻擊威脅。
3.2 保護IT系統
虛擬化軟件或云平臺是一個IT系統,它可以分為三個部分:虛擬化/云平臺軟件,物理機系統和虛擬機系統。
3.2.1 虛擬化/云平臺軟件
保護平臺的方法是選擇一種具有可靠技術支持,以及完善的文檔和培訓系統的產品化軟件,無論是采用商業軟件還是開源軟件,均可達到保護效果。當發生嚴重的安全問題時,可以確保第一時間獲得技術支持。
3.2.3 物理機系統
保護物理機系統安全是指硬件管理(例如,刪除不必要的外圍設備,確保磁盤高可用)和操作系統管理(例如:停止無關服務、文件/主導權限管理、補丁程序管理)。
3.2.3 虛擬機系
統確保虛擬化系統安全包括以下措施:為虛擬機實例分配適當的資源并設置磁盤和網絡QoS(Quality of Service 服務質量安全機制),確保每個物理主機的負載平衡,并更新公共鏡像。
3.3 安全合規管理
安全合規性管理是IT系統管理中的關鍵步驟,它可以降低安全風險。標準的合規性安全管理措施一般有:
3.3.1 建立審計系統
用來記錄服務的運行情況;同時,建立監控系統,例如去監控平臺、物理設備、虛擬機的運行狀態,并為某些資源(例如CPU和網絡負載)設置警報。
3.3.2 權限管理
包括為租戶設置權限和分配資源,例如API管理、第三方認證管理。
3.3.3 使用高可用設計
例如,管理服務的高可用,核心業務虛擬機的高可用,以及創建多個數據副本。
3.3.4 制定容災計劃
例如進行關鍵數據備份,建立異地備份中心。
總結
目前,虛擬化技術可以分為兩種類型:商業解決方案和開源解決方案。
從安全性特征的比較來看,KVM在資源隔離方面具有部分優勢。通過分析2011年至2020年的CVE條目來看,KVM比其他虛擬機監控程序更可靠。
當下,虛擬化的威脅仍然主要來自基于虛擬化層的攻擊,這些威脅可以分為三個方面:軟件缺陷、傳統安全威脅和管理問題。因此,本文提出的針對性措施也主要為:保護網絡安全、保護IT系統安全和安全合規性管理。