虛擬化已經(jīng)在數(shù)據(jù)中心證明了它的價值,但它能在戰(zhàn)術(shù)環(huán)境中工作嗎?是的,但前提是它是安全的。
允許移動數(shù)據(jù)的計算能力的發(fā)展為將戰(zhàn)術(shù)車輛轉(zhuǎn)變?yōu)闈L動數(shù)據(jù)中心鋪平了道路。這些令人印象深刻的機(jī)器為作戰(zhàn)人員主宰戰(zhàn)場提供了寶貴的資源。不幸的是,盡管將悍馬或坦克與實時智能計算設(shè)備打包有明顯的好處,但這些功能的代價并不那么明顯:犧牲了寶貴的動力、冷卻能力和后勤空間來容納新設(shè)備。例如,太多的計算機(jī)可能會對能見度產(chǎn)生不利影響或在已經(jīng)灼熱的環(huán)境中產(chǎn)生額外的熱量,使士兵的反應(yīng)時間變慢,并可能增加健康和安全風(fēng)險。
有趣的是,這些滾動數(shù)據(jù)中心正在經(jīng)歷許多與當(dāng)今企業(yè)數(shù)據(jù)中心相同的挑戰(zhàn) - 再次,功耗,冷卻不足和空間不足。為了應(yīng)對這些挑戰(zhàn),數(shù)據(jù)中心經(jīng)理已轉(zhuǎn)向虛擬化來執(zhí)行物理到虛擬服務(wù)器的整合,定期實現(xiàn) 10:1 或更高的優(yōu)化。數(shù)據(jù)中心虛擬化的經(jīng)驗教訓(xùn)是否也能使戰(zhàn)術(shù)車輛環(huán)境受益?包含不同分類級別內(nèi)容的戰(zhàn)術(shù)車輛的特殊安全要求如何?了解虛擬化和物理服務(wù)器整合之間的獨特挑戰(zhàn)和相似之處,以及開源社區(qū)取得的一些安全虛擬化進(jìn)步至關(guān)重要,這些進(jìn)步可以直接應(yīng)用于幫助作戰(zhàn)人員。
虛擬化的好處
在現(xiàn)場和數(shù)據(jù)中心部署虛擬化有幾個好處,包括整合、統(tǒng)一性、實時遷移和性能,這可以專門幫助作戰(zhàn)人員并提高前線的效率。
固結(jié)
當(dāng)工作負(fù)載通過虛擬化進(jìn)行整合時,硬件利用率會提高。可以用更少的硬件完成更多工作,從而節(jié)省電源、空間和冷卻。在戰(zhàn)術(shù)環(huán)境中,可以通過計算要求的名義增加來添加功能。通過在更少的物理系統(tǒng)上整合工作負(fù)載,新可用的空間可以重新用于額外的任務(wù)功能、更多的子彈,并為機(jī)組人員提供更多的肘部空間。
均勻
虛擬化允許數(shù)據(jù)中心管理員從操作系統(tǒng)中抽象硬件。這使數(shù)據(jù)中心經(jīng)理能夠以盡可能低的價格獲得性能最佳的硬件,而無需重新認(rèn)證軟件堆棧。硬件供應(yīng)商可以相互競爭以提供最佳價值。在戰(zhàn)術(shù)環(huán)境中,這種優(yōu)勢更加深遠(yuǎn),不需要每個應(yīng)用程序都有自己的計算機(jī),具有異國情調(diào)的外形、電源要求、專有連接器等。因此,可以更輕松地添加新功能,并且可以更快地進(jìn)行硬件更新,因為如前所述,重新認(rèn)證時間縮短了。此外,并非每輛車都需要相同的功能,因此無論是否使用該功能,都需要嚴(yán)格預(yù)算功率、空間和冷卻。最后,統(tǒng)一性使戰(zhàn)士更加靈活。
實時遷移
如果在數(shù)據(jù)中心的虛擬機(jī)管理程序上檢測到即將發(fā)生的硬件故障,則可以實時遷移工作負(fù)載,而無需停機(jī)。即使虛擬機(jī)監(jiān)控程序意外失敗,在其上運行的虛擬機(jī)也可以在其他硬件上重新啟動,而無需用戶干預(yù)。在戰(zhàn)術(shù)環(huán)境中,導(dǎo)致計算機(jī)損失的戰(zhàn)斗損壞可能會導(dǎo)致戰(zhàn)斗激烈時所需的關(guān)鍵能力的損失。通過直接在物理硬件上運行工作負(fù)載,在作戰(zhàn)人員返回進(jìn)行維修的車輛之前,該功能可能無法恢復(fù),這可能為時已晚。如果工作負(fù)載是虛擬化的,則可以將其實時遷移到車輛中其他位置的功能服務(wù)器上或在計算機(jī)上重新啟動,而無需作戰(zhàn)人員干預(yù)。因此,作戰(zhàn)人員在長時間的戰(zhàn)斗中失去關(guān)鍵任務(wù)組件的可能性降低。
性能
某些需要在系統(tǒng)之間進(jìn)行低延遲或高帶寬通信的工作負(fù)載在同一硬件上進(jìn)行虛擬化時實際上運行得更快。這是因為虛擬網(wǎng)絡(luò)通信是通過系統(tǒng)背板完成的,而不是通過更慢、延遲更高的網(wǎng)絡(luò)基礎(chǔ)結(jié)構(gòu)從一個物理系統(tǒng)到另一個物理系統(tǒng)。這種提高的性能和更低的延遲可以幫助作戰(zhàn)人員在激烈的戰(zhàn)斗中更快地做出反應(yīng)。
虛擬化安全嗎?
不是本身。如果虛擬機(jī)管理程序遭到入侵,不僅該虛擬機(jī)受到威脅,在其上運行的虛擬機(jī)以及連接到虛擬機(jī)管理程序的虛擬機(jī)磁盤文件也會受到威脅,這些虛擬機(jī)管理程序可能在其上運行、在另一個虛擬機(jī)管理程序上運行或處于靜態(tài)狀態(tài)。發(fā)生虛擬機(jī)管理程序攻擊時,需要從已知的可靠備份還原所有虛擬磁盤文件。如果無法確定漏洞利用時間,則可能需要從頭開始完全重新安裝。許多虛擬化安全解決方案為虛擬機(jī)提供了相互通信的可靠方法,但在虛擬機(jī)管理程序遭到入侵時,這些工具不提供保護(hù)。如果要在戰(zhàn)術(shù)環(huán)境中部署虛擬化,虛擬機(jī)管理程序必須是安全的,以便作戰(zhàn)人員可以信任支持任務(wù)的組件的完整性。那么,是否存在防止此類漏洞利用的技術(shù)呢?是的,感謝開源社區(qū)。
使用 sVirt 進(jìn)行安全虛擬化:sVirt 是一個安全的虛擬化開源項目,建立在 NSA 和商業(yè)軟件行業(yè)開創(chuàng)的經(jīng)過時間考驗的 SELinux 開源項目之上,該項目可追溯到 1999 年。sVirt 用于安全地將 KVM(或基于內(nèi)核的虛擬機(jī))與虛擬機(jī)管理程序隔離,以及彼此之間。在我們進(jìn)入sVirt的細(xì)節(jié)之前,讓我們快速回顧一下SELinux和KVM:
SELinux 早于基于 x86 的虛擬化,最初用于鎖定物理系統(tǒng),以防止流氓應(yīng)用程序相互傷害以及主系統(tǒng)。SELinux 是關(guān)于標(biāo)簽的。SELinux 系統(tǒng)上的每個對象都根據(jù)其功能進(jìn)行標(biāo)記。這包括進(jìn)程、用戶、文件、硬件設(shè)備、網(wǎng)絡(luò)端口和適配器等。SELinux 策略允許具有某些標(biāo)簽的對象顯式訪問具有其他標(biāo)簽的對象并拒絕其他所有內(nèi)容。例如,如果流氓 Web 服務(wù)器進(jìn)程想要讀取密碼文件,SELinux 將阻止并記錄訪問,因為 SELinux 策略沒有明確允許具有 Web 服務(wù)器標(biāo)簽的進(jìn)程訪問標(biāo)記為密碼文件的文件。SELinux 不是 Linux 的附加組件 - 它是內(nèi)置的。自 2007 年以來,SELinux 已在主流企業(yè) Linux 發(fā)行版中默認(rèn)啟用。
KVM 是一個開源項目,于 2006 年出現(xiàn),并于 2007 年在上游 Linux 內(nèi)核中被接受,如今可以在許多 Linux 發(fā)行版中找到。KVM 的獨特之處在于所有 KVM 虛擬機(jī)都是 Linux 進(jìn)程。因此,KVM 非常精簡,因為它可以利用久經(jīng)考驗的 Linux 操作系統(tǒng)來管理虛擬機(jī)、執(zhí)行硬件支持,并利用電源效率和性能方面的進(jìn)步,僅舉幾例。作為一個巨大的副作用,就像 Web 服務(wù)器進(jìn)程可以用 SELinux 策略限制一樣,前面提到的帶有 SELinux 策略的 KVM 虛擬機(jī)進(jìn)程(稱為 sVirt)也可以受到限制。
在高層次上,sVirt 的工作原理是在虛擬機(jī)周圍放置 SELinux“力場”,這限制了它們可以做的事情。 sVirt 甚至可以保護(hù)沒有 SELinux 內(nèi)置保護(hù)(如 Windows)的虛擬機(jī)來賓,如圖 1 所示。
圖1:具有 sVirt 保護(hù)的 KVM 的高級概述
當(dāng)虛擬來賓啟動時,sVirt會給KVM Linux進(jìn)程一個唯一的SELinux標(biāo)簽。相應(yīng)地,該虛擬機(jī)的虛擬磁盤文件被賦予一個匹配的標(biāo)簽。除了進(jìn)程和虛擬磁盤文件之外,系統(tǒng)上沒有其他對象具有相同的標(biāo)簽。當(dāng)?shù)诙€虛擬機(jī)啟動時,第二個虛擬機(jī)的 KVM Linux 進(jìn)程和虛擬磁盤文件會被賦予自己唯一但匹配的標(biāo)簽。這一切都如圖 2 所示。
圖2:sVirt 獨特的虛擬機(jī)進(jìn)程和磁盤文件動態(tài)標(biāo)記
如果虛擬機(jī)能夠執(zhí)行虛擬機(jī)管理程序攻擊并獲得管理員訪問權(quán)限,則內(nèi)核級別的 sVirt 將虛擬機(jī)限制為 sVirt SELinux 策略允許的內(nèi)容,即查看自己的磁盤文件(而不是其他文件),使用虛擬機(jī)嚴(yán)格允許的其他資源,而不是其他資源。
聽起來不錯,但 sVirt 真的有效嗎?實際上,是的。在2011年美國黑帽大會上,Nelson Elhage提出了一種破壞KVM的方法,但使用sVirt挫敗了他的方法。
旁注:有趣的是,sVirt創(chuàng)建的標(biāo)簽是多類別安全(MCS)標(biāo)簽。MCS(和多級安全或MLS)標(biāo)簽是直接源自NSA和其他機(jī)構(gòu)推動的安全計算工作的概念。令人著迷的是,這展示了具有分類數(shù)據(jù)要求的機(jī)構(gòu)如何幫助開源社區(qū)將其需求從利基市場轉(zhuǎn)變?yōu)橹髁鳌Mㄟ^利用 SELinux 經(jīng)過驗證的 MCS 功能,使用 sVirt 對 KVM 進(jìn)行通用標(biāo)準(zhǔn)認(rèn)證變得更加容易。
Red Hat 是 sVirt 和 KVM 項目以及 SELinux 的貢獻(xiàn)者,利用其 Red Hat Enterprise Linux 和 Red Hat Enterprise Virtualization 產(chǎn)品。
今后的工作
事情總是可以變得更好、更安全。集成到虛擬化中的另一個概念是資源控制組或 cgroups 的概念。就像 SELinux 可以限制 Linux 進(jìn)程的訪問一樣,cgroups 用于控制 Linux 進(jìn)程消耗的 CPU、網(wǎng)絡(luò)、內(nèi)存和其他資源。由于 KVM 虛擬機(jī)是 Linux 進(jìn)程,它們也可以像被 svirt 限制一樣被 cgroups 限制。這為虛擬化多租戶的資源公平性鋪平了道路。一個集成商的虛擬機(jī)不會過度消耗其公平的系統(tǒng)資源份額,這可能會對同一虛擬機(jī)監(jiān)控程序上的另一個集成商的虛擬機(jī)產(chǎn)生負(fù)面影響。從安全角度來看,cgroups 還可用于防止對一個虛擬機(jī)的拒絕服務(wù)攻擊導(dǎo)致整個虛擬機(jī)監(jiān)控程序癱瘓。
另一個正在考慮的開源努力是可信計算。隨著包含敏感數(shù)據(jù)的計算資源越來越深入戰(zhàn)場,啟動和信任數(shù)據(jù)中心中未鎖定和受保護(hù)的聯(lián)合系統(tǒng)的安全方法變得至關(guān)重要。開源社區(qū)以及政府機(jī)構(gòu)以及硬件和軟件供應(yīng)商正在積極研究可信計算技術(shù)來滿足這些需求。由于KVM是Linux進(jìn)程,因此快速采用這些新興的可信計算方法的能力變得更加簡單,而不是發(fā)明全新的東西。
審核編輯:郭婷
-
數(shù)據(jù)中心
+關(guān)注
關(guān)注
16文章
4644瀏覽量
71906 -
虛擬化
+關(guān)注
關(guān)注
1文章
365瀏覽量
29757
發(fā)布評論請先 登錄
相關(guān)推薦
評論