彭淑芬
(國家安全生產監督管理總局 通信信息中心 , 北京 100713 )
隨著IT服務的專業化和云計算的盛行,虛擬化技術顯得越來越重要。而虛擬機又是重中之重,它的安全性直接決定云計算的安全性。虛擬機除了在服務器的傳統安全性方面需要保證以外,在資源隔離和共享方面也要采取嚴格的安全措施[1-2]。服務器虛擬化的安全性離不開網絡設備和安全設備的虛擬化及安全性。針對上述問題,本文首先分析了虛擬機存在的六大安全風險,然后根據《信息系統安全等級保護基本要求GB/T 22239-2008》分析了幾種典型的虛擬機部署架構的安全性,最后以等級保護二級和等級保護三級為例分析了典型的虛擬機部署架構的應用。
虛擬機技術將計算機物理資源表示成若干個虛擬域,每個虛擬域都可以運行獨立的操作系統,作為一臺獨立的計算機進行工作和對外提供服務。虛擬機的體系結構本身可以增強虛擬域操作系統的安全性,因為它對虛擬域中的應用是透明的,這些運行在虛擬域中的應用程序通常無法發現自己運行在虛擬域環境中。根據虛擬機的隔離機制,一個虛擬域中的惡意程序不會影響到其他虛擬域,也很難影響到虛擬機監控器和真實的硬件設備。而且通過虛擬機架構中用于管理功能的特權域,可以對其他虛擬域中的操作系統和應用程序進行監控和掃描。這些都增強了虛擬域的安全性。但是,這種對安全增強的前提是虛擬機具有嚴格的隔離機制。BlackHat在近幾年提出了多種攻擊Xen虛擬機監控器的方法,這些攻擊都展示出虛擬機監控器的脆弱性和其安全系統的復雜性。而事實上,幾乎所有的主流虛擬機都存在安全漏洞。這就使得虛擬機安全和云計算安全成為空談。虛擬機體系結構帶來的主要安全問題有[3-5]:
(1)虛擬機監控器安全
虛擬機監控器是虛擬機的核心,可視做小型的操作系統內核,主要負責CPU調度、內存分配等資源管理工作。如果虛擬機監控器自身受到攻擊,會使虛擬機監控器無法正常工作,各個虛擬域也將無法正常運行。目前已經有方法可以利用漏洞或注入代碼對虛擬機進行攻擊。
(2)虛擬機逃逸
虛擬機提供的隔離機制如果存在漏洞,就可能會發生虛擬機逃逸。虛擬機逃逸是指:一個虛擬域中的用戶利用程序對虛擬域的操作系統進行攻擊,導致能夠通過內存映射獲得其他虛擬域甚至特權域的數據和權限,從而破壞這些虛擬域甚至整個虛擬機架構的安全性。
(3)虛擬域的安全遷移
虛擬域遷移是虛擬機技術中非常重要的一部分。為了更合理地利用資源,根據需要將虛擬域從一臺物理機遷移到另一臺物理機中。遷移過程通常需要同步內存等動態數據,有時也需要同步虛擬磁盤等靜態數據。遷移時還應當使用安全的遷移協議。協議不安全會導致遷移過程中發生數據泄漏,或者數據的完整性被破壞,最終導致虛擬域無法正常運行。而如果遷移到的目的主機的計算平臺存在安全問題,也會導致被遷移的虛擬域存在安全威脅。此外,如果攻擊者截獲了某次遷移的數據,并將這些數據的日后遷移進行重放攻擊,也會破壞虛擬域的完整性。
(4)特權域安全
很多虛擬機都存在特權域允許管理員管理虛擬機自身和其他虛擬域,例如分配資源,創建、啟動、遷移、關閉和刪除虛擬域,訪問虛擬域的數據文件,甚至利用一些機制訪問虛擬域的內存。特權域的權限非常大,如果攻擊者通過網絡或其他手段入侵特權域并獲得相應的管理權限,將對運行在該虛擬機中的虛擬域造成嚴重影響。
(5)共享虛擬化資源池安全問題
云計算環境是多用戶環境,所有用戶的數據都在云中存儲和處理。如果數據不能有效地隔離,將會導致用戶私人數據被其他用戶盜取、篡改、破壞。這就要求不同用戶的數據必須嚴格隔離,防止用戶讀寫他人的文件。用戶提交的計算作業首先被分配在共享虛擬化資源池中。如果不能保證這些計算作業是由可信的用戶提交到資源池,將會導致資源池中的所有共享資源被盜取、篡改以及破壞的危險。動態的資源在使用完畢或失效后需要立即銷毀,否則將會造成信息泄漏的危險。
(6)拒絕服務
與傳統的網絡攻擊中的拒絕服務攻擊不同,由于對外提供服務的是運行在虛擬機中的各個獨立的虛擬域,因此如果隔離機制比較完善,那么一個虛擬域自身漏洞引起的攻擊通常不會影響其他虛擬域。但是,如果虛擬機的資源調度和管理存在問題,當一個虛擬域的工作負載突然增強時,特別是網絡負載增強時,也會影響到其他虛擬域甚至整臺虛擬機的正常工作。這就要求虛擬機監控器自身必須穩定,實時監控資源的使用,以便在發現問題時能及時采取應對措施。
在《信息系統安全等級保護基本要求GB/T 22239-2008》中等級保護二級網絡安全的結構安全方面,要求“應根據各部門的工作職能、重要性和所涉及信息的重要程度等因素,劃分不同的子網或網段,并按照方便管理和控制的原則為各子網、網段分配地址段”。在訪問控制方面,要求“應在網絡邊界部署訪問控制設備,啟用訪問控制功能”;在安全審計方面,要求“應對網絡系統中的網絡設備運行狀況、網絡流量、用戶行為等進行日志記錄”;而且在邊界完整性檢查、入侵防范、網絡設備防護等方面也有明確要求。級別越高,安全防護要求越高,例如等級保護三級網絡安全在結構安全方面,還要求“應避免將重要網段部署在網絡邊界處且直接連接外部信息系統,重要網段與其他網段之間采取可靠的技術隔離手段”[6]。
虛擬環境下大部分安全問題都來自于管理不當或一些顯而易見的錯誤。所以,應對服務控制臺與管理工具的訪問實施嚴格的控制,并利用管理工具來支持一個獨立的網絡,確保虛擬機不會干擾到管理控制臺對其他服務器的控制。同時,應根據基本要求和應用系統的等級保護級別,評估是否需要增加額外的控制,比如虛擬防火墻或虛擬入侵保護系統??赏ㄟ^物理服務器內的虛擬交換設備來密切觀察用戶是如何使用虛擬機的,比如交換機的配置、流量情況,以及虛擬機自身之間、虛擬機與外部設備之間的可訪性。典型的虛擬機部署架構一般包括三種模式:一個管理中心一個物理資源池多個虛擬安全域,一個管理中心多個物理資源池多個虛擬安全域,多個管理中心多個物理資源池多個虛擬安全域。
一個管理中心一個物理資源池多個虛擬安全域的部署模式如圖1所示。虛擬化宿主主機為高端主機,前端連接支持虛擬化的網絡設備(如交換機、網卡)和邊界訪問控制設備(如防火墻),后端連接 SAN存儲設備和虛擬機管理系統。虛擬化宿主主機在虛擬機管理系統中虛擬出了多臺 Windows或 Linux操作系統支撐業務系統。相同安全域的主機之間的數據流會流向交換機,交換機按照預訂的安全策略轉發數據包。不同安全域之間的數據流會流向邊界訪問控制設備,邊界訪問控制設備按照預訂的安全規則允許或禁止不同虛擬安全域之間的數據訪問。虛擬化宿主主機位于同一管理網段,被虛擬機管理系統管理。在這種部署模式中,雖然虛擬機采用了MLS(多級安全系統)技術進行隔離和保護,滿足 EAL4+(Evaluation Assurance Level)的要求,但是不同安全域的虛擬機位于同一物理主機上,虛擬化宿主主機位于同一管理網段,虛擬機可能干擾到虛擬機管理系統對其他安全域虛擬機的控制,安全性僅符合等級保護一級的結構安全要求,不符合等級保護二級的結構安全要求。

圖1 一個管理中心一個物理資源池多個虛擬安全域
一個管理中心多個物理資源池多個虛擬安全域的部署模式如圖2所示。虛擬化宿主主機為高端主機,每個虛擬化宿主主機池的前端連接各自支持虛擬化的網絡設備(如交換機、網卡)和普通的邊界訪問控制設備(如防火墻),后端連接同一 SAN存儲設備和虛擬機管理系統。虛擬化宿主主機在虛擬機管理系統中虛擬出了多臺 Windows或Linux操作系統支撐業務系統。相同安全域的主機之間的數據流會流向交換機,交換機按照預定的安全策略轉發數據包。不同安全域之間的數據流會流向邊界訪問控制設備,邊界訪問控制設備按照預訂的安全規則允許或禁止不同虛擬安全域之間的數據訪問。不同物理資源池的虛擬化宿主主機位于不同的管理網段,被虛擬機管理系統管理。在這種部署模式中,不同安全域的虛擬機位于不同的物理服務器上,不同安全域的虛擬機的管理網段也不相同,虛擬機不易干擾到虛擬機管理系統對其他安全域虛擬機的控制。這基本符合等級保護二級的結構安全要求,只是由同一虛擬機管理系統管理存在一定風險。

圖2 一個管理中心多個物理資源池多個安全域

圖3 多個管理中心多個物理資源池多個安全域
多個管理中心多個物理資源池多個虛擬安全域的部署模式如圖3所示。虛擬化宿主主機為高端主機,每個虛擬化宿主主機池的前端鏈接各自支持虛擬化的網絡設備(如交換機、網卡)和普通的邊界訪問控制設備(如防火墻),后端連接同一 SAN存儲設備和各自的虛擬機管理系統。虛擬化宿主主機在虛擬機管理系統中虛擬出了多臺Windows或 Linux操作系統支撐業務系統。相同安全域的主機之間的數據流會流向交換機,交換機按照預訂的安全策略轉發數據包。不同安全域之間的數據流會流向邊界訪問控制設備,邊界訪問控制設備按照預訂的安全規則允許或禁止不同虛擬安全域之間的數據訪問。不同物理資源池的虛擬化宿主主機位于不同的管理網段,且被不同的虛擬機管理系統管理。每個安全域的物理資源池、虛擬機、管理中心均相互獨立,完全符合等級保護二級的結構安全要求。虛擬機不會干擾到其他安全域的虛擬機管理系統對其安全域的虛擬機的控制。
按照《信息系統安全等級保護基本要求 GB/T 22239-2008》中等級保護一級關于結構安全的要求,Web服務器、應用服務器和數據庫服務器可以位于一臺虛擬機,也可以分別位于三個不同虛擬安全域的三臺虛擬機中。所以,等級保護一級的信息系統可以部署在一個管理中心一個物理資源池多個虛擬安全域的環境中。
按照《信息系統安全等級保護基本要求 GB/T 22239-2008》中等級保護二級關于結構安全的要求,Web服務器和應用服務器位于同一物理資源池的同一個或者兩個不同的虛擬機,數據庫服務器位于不同物理資源池的虛擬機。所以,等級保護二級的信息系統至少需要部署在一個管理中心多個物理資源池多個安全域的環境中。
按照《信息系統安全等級保護基本要求 GB/T 22239-2008》中等級保護三級關于結構安全的要求,Web服務器位于一個物理資源池的一個虛擬機,應用服務器位于另一物理資源池的一個虛擬機,數據庫服務器位于與應用服務器相同(或不同)物理資源池但與 Web服務器不同物理資源池的虛擬機。所以,等級保護三級的信息系統至少需要部署在一個管理中心多個物理資源池多個安全域的環境中,條件許可的情況下部署在多個管理中心多個物理資源池多個安全域的環境中更安全。
虛擬機技術會越來越廣泛地應用于不同保護等級的信息系統中,上述三種虛擬機部署模式滿足基本要求中第一級、第二級和第三級的結構安全要求?!缎畔⑾到y安全等級保護基本要求 GB/T 22239-2008》中有關網絡安全、主機安全、應用安全和數據安全及備份恢復方面的技術要求同樣適用于基于虛擬機的信息系統,以后會深入探討虛擬機環境下主機安全、應用安全和數據安全及備份恢復方面的問題。
[1]秦中元, 沈日勝, 張群芳,等.虛擬機系統安全綜述[J].計算機應用研究, 2012,29(5):1618-1622.
[2]胡小龍, 蔣光慶, 郭玉東, 等.基于協作型VMM的虛擬機網絡訪問控制技術研究[J].小型微型計算機系統, 2014, 35(4):883-888.
[3]孫磊, 楊星, 馬自堂.云環境下基于BN模型的虛擬機安全部署模型[J].計算機科學, 2013, 40(3): 210-214.
[4]蔡志強, 丁麗萍, 賀也平.一種基于虛擬機的動態內存泄露檢測方法[J].計算機應用與軟件, 2012, 29(9): 10-13.
[5]梁彪, 秦中元, 沈日勝, 等.一種虛擬機訪問控制安全模型[J].計算機應用研究, 2014, 31(1): 231-235.
[6]GB/T 22239-2008信息系統安全等級保護基本要求[S].北京:中國標準出版社, 2008.