【摘 要】 本文基于KVM/QEMU底層內(nèi)核,研發(fā)了一套應(yīng)用多租戶安全隔離技術(shù)的服務(wù)器虛擬化系統(tǒng),闡述了該系統(tǒng)自主可控虛擬化多租戶安全隔離的技術(shù)框架,并通過在多家軍工單位的部署應(yīng)用,實(shí)現(xiàn)了對網(wǎng)絡(luò)和用戶數(shù)據(jù)的機(jī)密性、完備性、隔離性的安全防護(hù)。
【關(guān)鍵詞】 虛擬化 強(qiáng)制訪問控制 網(wǎng)絡(luò)安全
1 引言
虛擬化安全作為我國推進(jìn)自主可控進(jìn)程中的重要研究內(nèi)容之一,是國家基礎(chǔ)軟件領(lǐng)域的核心目標(biāo)[1]。由于虛擬化技術(shù)在我國起步較晚,導(dǎo)致國外廠商產(chǎn)品在國內(nèi)的應(yīng)用較為普及。在虛擬化安全方面,我國研發(fā)設(shè)計(jì)及標(biāo)準(zhǔn)化工作正處于起步階段。虛擬機(jī)之間共享物理資源,多租戶之間能夠通過側(cè)通道攻擊來從底層的物理資源中獲得有用的信息,成為虛擬化安全面臨的重要研究課題。
2 虛擬化安全
目前,云計(jì)算的發(fā)展處于虛擬化技術(shù)與企事業(yè)單位業(yè)務(wù)深入融合所帶來的全新變革階段,隨著虛擬化的推廣,虛擬環(huán)境遭受的攻擊愈加多樣化,現(xiàn)階段最為緊要的任務(wù)是解決虛擬化環(huán)境下的安全問題[2],主要包括以下4個(gè)方面。
(1)外部攻擊
虛擬環(huán)境下服務(wù)器和虛擬機(jī)同樣面臨著與物理環(huán)境中一樣的安全風(fēng)險(xiǎn),例如惡意軟件、病毒感染、漏洞利用和SQL注入等手段。
(2)內(nèi)部攻擊
伴隨著云計(jì)算邊界消失,數(shù)據(jù)安全無法得到保證。虛擬機(jī)之間的攻擊、流量不可見,導(dǎo)致無法進(jìn)行有效檢測和防護(hù)。
(3)資源分配
在虛擬機(jī)上同時(shí)執(zhí)行病毒掃描和防病毒更新等占用內(nèi)存、CPU、網(wǎng)絡(luò)帶寬等操作會(huì)導(dǎo)致系統(tǒng)資源分配不均,在快照、休眠、遷移等過程中會(huì)產(chǎn)生防護(hù)間隙。
(4)安全管理
虛擬環(huán)境的復(fù)雜性使安全管理變得困難,在集群中虛擬機(jī)可動(dòng)態(tài)遷移、自主配置,這使得實(shí)施、維護(hù)、配置安全策略變得復(fù)雜。
3 虛擬化系統(tǒng)
由于虛擬化環(huán)境的開放性和網(wǎng)絡(luò)復(fù)雜性,核心重要資源面臨著安全威脅。本文基于KVM/QEMU底層內(nèi)核,自主研發(fā)了一套安全穩(wěn)定的國產(chǎn)虛擬化系統(tǒng),其主要結(jié)構(gòu)如圖1所示,本系統(tǒng)在虛擬化基礎(chǔ)上采用角色管理、策略控制、日志審計(jì)、身份認(rèn)證等訪問控制安全措施,利用虛擬化構(gòu)建了虛擬機(jī)房環(huán)境。
3.1 網(wǎng)絡(luò)安全
(1)管理、數(shù)據(jù)通信分離
通過虛擬網(wǎng)橋綁定不同的物理網(wǎng)口,讓管理口和虛擬機(jī)數(shù)據(jù)口互相隔離。
(2)QoS流量控制
提供虛擬機(jī)網(wǎng)絡(luò)流量和接口帶寬的安全管理功能,控制虛擬機(jī)的網(wǎng)絡(luò)流量,保證整個(gè)虛擬系統(tǒng)的穩(wěn)定性。
(3)虛擬防火墻
能抵抗外部發(fā)起的針對虛擬化產(chǎn)品及虛擬機(jī)的拒絕服務(wù)攻擊;能抵抗內(nèi)部發(fā)起的針對虛擬化產(chǎn)品及其他虛擬機(jī)的拒絕服務(wù)攻擊;能阻止內(nèi)部發(fā)起的針對虛擬網(wǎng)絡(luò)外部的拒絕服務(wù)攻擊。
(4)訪問控制
通過設(shè)置訪問控制規(guī)則,提供虛擬機(jī)和宿主機(jī)之間的資源管控及虛擬機(jī)之間的資源管控,確保虛擬機(jī)之間的資源隔離、內(nèi)存隔離、存儲(chǔ)隔離,防止虛擬機(jī)鏡像文件的異常掛載,保障虛擬機(jī)運(yùn)行安全。
3.2 網(wǎng)絡(luò)隔離
(1)物理資源與虛擬資源隔離
保證每個(gè)虛擬機(jī)都能獲得獨(dú)立的CPU指令、內(nèi)存和存儲(chǔ)等物理資源;在虛擬機(jī)監(jiān)視器層提供虛擬機(jī)與宿主機(jī)之間的安全隔離措施,控制虛擬機(jī)之間以及宿主機(jī)之間所有的數(shù)據(jù)通信,并禁止或限制虛擬機(jī)對物理存儲(chǔ)實(shí)體的直接訪問。
(2)虛擬CPU指令隔離
通過虛擬機(jī)虛擬CPU與物理主機(jī)物理處理器核心綁定的方式,實(shí)現(xiàn)各個(gè)虛擬CPU隔離。物理CPU核心只能綁定一個(gè)虛擬CPU核心。在這種方式下,因?yàn)槊總(gè)虛擬CPU的計(jì)算負(fù)載、指令實(shí)際運(yùn)行在被綁定的物理核心上,而且不同的虛擬機(jī)CPU對應(yīng)不同的物理核心,因此各個(gè)虛擬CPU的指令是相互隔離的。
(3)內(nèi)存隔離
使用KVM+QEMU虛擬化技術(shù),以Linux操作系統(tǒng)作為基礎(chǔ)平臺(tái)。在該技術(shù)方案下,每一個(gè)虛擬機(jī)對應(yīng)一個(gè)QEMU進(jìn)程,QEMU進(jìn)程提供虛擬機(jī)運(yùn)行所需要內(nèi)存等所有資源,即虛擬機(jī)使用的內(nèi)存等資源屬于被分配給QEMU進(jìn)程的內(nèi)存資源。在Linux操作系統(tǒng)下,不同的進(jìn)程之間是相互隔離的,不同進(jìn)程之間的虛擬地址相互獨(dú)立,每個(gè)進(jìn)程無權(quán)訪問其他進(jìn)程的地址空間,即內(nèi)存空間相互隔離。因此虛擬化系統(tǒng)中每個(gè)虛擬機(jī)的內(nèi)存空間也是相互隔離的。
4 多租戶安全隔離技術(shù)
虛擬化環(huán)境中虛擬機(jī)之間的隔離程度是虛擬化平臺(tái)安全的關(guān)鍵,多租戶虛擬化系統(tǒng)是指允許大量的用戶可以通過共享虛擬化系統(tǒng)上的數(shù)據(jù)資料和服務(wù)資源來實(shí)現(xiàn)服務(wù)需求。由于虛擬化環(huán)境的開放性、邊界模糊和網(wǎng)絡(luò)復(fù)雜性,核心重要資源面臨著非授權(quán)訪問、越界訪問等安全威脅。現(xiàn)有的虛擬機(jī)隔離機(jī)制主要包括以下4種。
(1)硬件提供的內(nèi)存保護(hù)機(jī)制
系統(tǒng)管理模式(System Management Mode,SMM)是一個(gè)對所有Intel處理器都統(tǒng)一的標(biāo)準(zhǔn)體系結(jié)構(gòu)特性,在這種模式下可以執(zhí)行高級電源管理、硬件控制和運(yùn)行OEM代碼。然而它對系統(tǒng)是透明的,這種硬件提供的保護(hù)機(jī)制是不可控的。
(2)硬件協(xié)助的安全I(xiàn)/O管理機(jī)制
硬件協(xié)助的安全I(xiàn)/O管理機(jī)制能夠利用加解密密鑰控制虛擬機(jī)占用的內(nèi)存空間、I/O復(fù)用等問題,將各虛擬機(jī)與管理主機(jī)、虛擬機(jī)與虛擬機(jī)之間的內(nèi)存、虛擬I/O設(shè)備隔離開來,達(dá)到增強(qiáng)虛擬機(jī)之間隔離性的目的。
(3)進(jìn)程地址空間的保護(hù)機(jī)制
當(dāng)進(jìn)程啟動(dòng)時(shí),系統(tǒng)會(huì)為其分配地址空間,這些地址空間對于每個(gè)進(jìn)程來說都是私有的,其他進(jìn)程不可訪問,只有進(jìn)程中的線程能夠訪問。然而現(xiàn)在進(jìn)程地址空間很容易被遠(yuǎn)程注入、系統(tǒng)鉤子等手段侵入。
(4)虛擬池、資源池地址邏輯隔離
服務(wù)器將租戶請求的資源池地址進(jìn)行正交化隔離,不同的虛擬池也需要進(jìn)行安全隔離,同時(shí)對租戶的訪問權(quán)限信息進(jìn)行正交化隔離,例如域名地址、用戶名、密碼等,以確保各個(gè)虛擬池間的物理地址安全隔離。
5 多租戶訪問控制體系
在虛擬化環(huán)境下,用戶之間的通信由訪問控制保證,由于每個(gè)用戶也都有自己的訪問控制策略,而在跨多個(gè)域的資源共享與訪問時(shí)需要對共享資源制定一個(gè)公共、雙方都認(rèn)同的訪問控制策略,更使得整個(gè)虛擬化系統(tǒng)的訪問控制變得復(fù)雜,對訪問控制策略的管理正逐漸成為虛擬化系統(tǒng)重要的研究方向。虛擬化環(huán)境下訪問控制體系框架如圖2所示。
虛擬化訪問控制架構(gòu)可以分為用戶、云平臺(tái)、網(wǎng)絡(luò)基礎(chǔ)環(huán)境3個(gè)部分。在用戶和虛擬化環(huán)境之間通過訪問控制規(guī)則(如訪問控制列表ACL等)和訪問控制策略進(jìn)行訪問控制。在虛擬化系統(tǒng)中,虛擬機(jī)之間進(jìn)行虛擬設(shè)備的訪問控制,對于存儲(chǔ)在虛擬化系統(tǒng)內(nèi)部的數(shù)據(jù)可以采用基于某種訪問控制策略和基于密碼學(xué)的訪問控制相結(jié)合的手段進(jìn)行安全防護(hù)。在虛擬化系統(tǒng)和網(wǎng)絡(luò)基礎(chǔ)環(huán)境中采用訪問控制規(guī)則進(jìn)行訪問控制。
虛擬化訪問控制體系研究主要包括權(quán)限控制、身份認(rèn)證、策略管理、行為審計(jì)等內(nèi)容。
5.1 權(quán)限控制
權(quán)限控制是虛擬化系統(tǒng)安全運(yùn)行的基礎(chǔ),包括群組管理、虛擬用戶管理和權(quán)限管理3部分,能夠?yàn)橄到y(tǒng)安全、靈活運(yùn)行提供安全保障。虛擬化通過定義不同的角色,將權(quán)限與角色進(jìn)行結(jié)合,實(shí)現(xiàn)虛擬資源的安全使用。同時(shí)為杜絕超級管理員權(quán)限過大帶來的不安全因素,系統(tǒng)設(shè)置系統(tǒng)管理員、安全管理員、審計(jì)管理員3種管理角色,系統(tǒng)管理員負(fù)責(zé)虛擬資源的運(yùn)行維護(hù),安全管理員主要負(fù)責(zé)對虛擬資源的審計(jì),審計(jì)管理員負(fù)責(zé)對管理員行為進(jìn)行監(jiān)控,3種角色之間能夠相互制約相互監(jiān)督,防止權(quán)限集中帶來的安全隱患。群組管理是權(quán)限控制的基礎(chǔ),為后續(xù)的虛擬用戶管理、權(quán)限管理與資源安全訪問控制提供可能。通過群組管理與權(quán)限管理相結(jié)合實(shí)現(xiàn)多個(gè)虛擬用戶權(quán)限的集中控制,提高系統(tǒng)的易用性,如圖3所示。
虛擬用戶管理是角色管理的重要組成部分,虛擬用戶是使用虛擬資源的實(shí)際個(gè)體,也是虛擬資源的最終使用者,能夠?qū)μ摂M資源進(jìn)行訪問。系統(tǒng)通過為不同的虛擬用戶分配不同的權(quán)限實(shí)現(xiàn)虛擬用戶間使用資源的隔離,保證用戶數(shù)據(jù)的安全性。
權(quán)限是對虛擬資源訪問的許可,權(quán)限管理是系統(tǒng)安全運(yùn)行的必要保障。權(quán)限過大會(huì)降低虛擬資源數(shù)據(jù)的安全性,不僅能夠給每個(gè)用戶設(shè)置權(quán)限,而且能夠設(shè)置組權(quán)限,在提高安全性的同時(shí)增加系統(tǒng)的易用性。同時(shí),除普通用戶、組權(quán)限之外,角色管理實(shí)現(xiàn)了用戶與訪問權(quán)限、資源的邏輯分離。
5.2 身份認(rèn)證
在用戶身份的認(rèn)證上,利用USBKey技術(shù),結(jié)合動(dòng)態(tài)口令技術(shù),全面替換操作系統(tǒng)的認(rèn)證模塊,實(shí)現(xiàn)用戶身份的登錄系統(tǒng)一次一密,用戶登錄系統(tǒng)時(shí)需要通過USBKey或生物識別認(rèn)證,并將用戶使用的客戶端MAC信息進(jìn)行認(rèn)證;通過和PKI技術(shù)及身份認(rèn)證技術(shù)結(jié)合,保證用戶身份的唯一性;通過USBKey或生物識別認(rèn)證進(jìn)行登錄, 保證管理員身份的合法性, 進(jìn)而保證系統(tǒng)安全性,確保用戶身份安全認(rèn)證。
5.3 策略管理
策略管理是保證虛擬化系統(tǒng)安全運(yùn)行的有效方式,策略是對虛擬用戶要求、虛擬環(huán)境安全要求等方面的集中體現(xiàn)。系統(tǒng)通過設(shè)置安全訪問策略,實(shí)現(xiàn)用戶對虛擬資源的訪問控制,通過設(shè)置數(shù)據(jù)流的單向、雙向策略保證用戶數(shù)據(jù)的安全性;通過設(shè)置外設(shè)安全策略保證外設(shè)設(shè)備的安全使用。
5.4 行為審計(jì)
行為審計(jì)能夠支持用戶操作日志與虛擬機(jī)操作事件的審計(jì)管理,詳細(xì)審計(jì)每個(gè)虛擬機(jī)操作的具體開始時(shí)間、結(jié)束時(shí)間和具體操作行為,以及管理員的登錄、退出、創(chuàng)建和刪除虛擬機(jī)以及創(chuàng)建和刪除用戶等各類事件的具體行為和時(shí)間增強(qiáng)系統(tǒng)的安全性。同時(shí)能夠?qū)徲?jì)系統(tǒng)的故障錯(cuò)誤,為增強(qiáng)系統(tǒng)的可靠性提供有力支撐。
6 結(jié)語
隨著云計(jì)算的蓬勃發(fā)展,虛擬化系統(tǒng)租戶數(shù)量的不斷上升,安全威脅所帶來的危害也急劇增加,因此需要定期對云平臺(tái)各類威脅及多租戶安全隔離問題進(jìn)行安全風(fēng)險(xiǎn)評估,以實(shí)現(xiàn)對安全風(fēng)險(xiǎn)有效的控制與處理,提高系統(tǒng)對異常訪問的預(yù)警能力并對它進(jìn)行安全隔離。針對虛擬化技術(shù)的多租戶架構(gòu)平臺(tái)的安全威脅,為虛擬化系統(tǒng)應(yīng)用提供機(jī)密性、完整性、真實(shí)性、可控性和可用性保障是必要的。
(原載于《保密科學(xué)技術(shù)》雜志2020年10月刊)