王佳
(山西金融職業(yè)學(xué)院,山西 太原 030008)
虛擬機(jī)的安全分析與管理
王佳
(山西金融職業(yè)學(xué)院,山西 太原 030008)
使用虛擬化技術(shù),可以讓多臺(tái)虛擬機(jī)在一臺(tái)實(shí)際的計(jì)算機(jī)系統(tǒng)上運(yùn)行,近幾年以來(lái),虛擬化技術(shù)被很多的單位和企業(yè)開(kāi)始采用。虛擬機(jī)的安全性越來(lái)越被人們所重視,虛擬機(jī)的安全威脅包括虛擬機(jī)之間的通信、宿主機(jī)與虛擬機(jī)之間的相互影響、虛擬機(jī)與虛擬機(jī)之間的相互影響、虛擬機(jī)的逃逸技術(shù)、拒絕服務(wù)等。論文通過(guò)硬件和軟件方面的安全防范方法來(lái)加強(qiáng)虛擬機(jī)的安全。
虛擬機(jī);安全;宿主機(jī)
虛擬機(jī)(Virtual Machine)指具有完整硬件系統(tǒng)功能,通過(guò)軟件模擬,運(yùn)行在一個(gè)完全隔離環(huán)境中的完整計(jì)算機(jī)系統(tǒng)。通過(guò)虛擬機(jī)軟件,我們可以在一臺(tái)物理計(jì)算機(jī)上模擬出一臺(tái)或多臺(tái)虛擬的計(jì)算機(jī),我們可以安裝操作系統(tǒng)、安裝應(yīng)用程序、訪問(wèn)網(wǎng)絡(luò)資源等等,這些虛擬機(jī)完全就像真正的計(jì)算機(jī)那樣進(jìn)行工作。對(duì)于在虛擬機(jī)中運(yùn)行的應(yīng)用程序來(lái)說(shuō),它就是一臺(tái)真正的計(jì)算機(jī),而對(duì)于我們來(lái)說(shuō),它只是運(yùn)行在你物理計(jì)算機(jī)上的一個(gè)應(yīng)用程序。
(一)虛擬機(jī)之間的通信
虛擬機(jī)一般實(shí)現(xiàn)四個(gè)功能:多個(gè)組織共享一個(gè)物理機(jī);在一臺(tái)計(jì)算機(jī)上,有高保密要求和低保密要求的應(yīng)用;合并一些服務(wù)到少數(shù)物理機(jī)上提供一個(gè)通用硬件平臺(tái);承載多個(gè)操作系統(tǒng)。前三種情況都有隔離的需要,第一種情況下,其他組織是無(wú)法訪問(wèn)它們的;第二和第三種情況下,這些虛擬機(jī)不應(yīng)該被不相關(guān)的人訪問(wèn),第四種情況,虛擬化的目標(biāo)一般是為了實(shí)現(xiàn)系統(tǒng)之間的交互。相對(duì)于物理機(jī),虛擬機(jī)的安全問(wèn)題是比較獨(dú)特的。例如,允許數(shù)據(jù)在虛擬機(jī)和主機(jī)之間傳輸?shù)募糍N板技術(shù),這個(gè)功能很容易被惡意程序利用,方便它們?cè)谙到y(tǒng)之間傳輸。又如,某虛擬技術(shù)在操作系統(tǒng)內(nèi)核中提供了虛擬層的按鍵和屏幕記錄,甚至虛擬機(jī)內(nèi)的加密連接可以被監(jiān)控起來(lái)。如果虛擬機(jī)沒(méi)有進(jìn)行有效的隔離,它可以無(wú)障礙地進(jìn)入宿主機(jī),這在側(cè)重運(yùn)行的應(yīng)用設(shè)計(jì)里比較常見(jiàn),所以也存在較大的安全隱患,應(yīng)該使用彼此一個(gè)適當(dāng)?shù)姆椒ㄟM(jìn)行隔離。
(二)宿主機(jī)與虛擬機(jī)之間的相互影響
宿主機(jī)對(duì)于虛擬機(jī)來(lái)說(shuō),是一個(gè)控制者,宿主機(jī)負(fù)責(zé)對(duì)虛擬機(jī)的檢測(cè)、改變、通信,對(duì)宿主機(jī)的安全要更嚴(yán)格管理。根據(jù)不同的虛擬機(jī)技術(shù),宿主機(jī)可在這幾個(gè)方面影響虛擬機(jī):?jiǎn)?dòng)、停止、暫停、重啟虛擬機(jī);監(jiān)控和配置虛擬機(jī)資源,包括CPU、內(nèi)存、磁盤(pán)、虛擬機(jī)的網(wǎng)絡(luò);調(diào)整CPU數(shù)量、內(nèi)存大小、磁盤(pán)數(shù)量、虛擬網(wǎng)絡(luò)的接口數(shù)量;監(jiān)控虛擬機(jī)內(nèi)運(yùn)行的應(yīng)用程序;查看、復(fù)制、修改數(shù)據(jù)在虛擬機(jī)的磁盤(pán)存儲(chǔ)。由于所有的網(wǎng)絡(luò)數(shù)據(jù)都會(huì)通過(guò)宿主機(jī)發(fā)往虛擬機(jī),那么宿主機(jī)就能夠監(jiān)控所有虛擬機(jī)的網(wǎng)絡(luò)數(shù)據(jù)。
(三)虛擬機(jī)與虛擬機(jī)之間的相互影響
虛擬機(jī)技術(shù)的主要特點(diǎn)是隔離,如果我們從一臺(tái)虛擬機(jī)去控制另一臺(tái)虛擬機(jī),安全漏洞就會(huì)出現(xiàn)。CPU技術(shù)可以通過(guò)強(qiáng)制執(zhí)行管理程序來(lái)保護(hù)內(nèi)存,內(nèi)存的管理程序應(yīng)該是獨(dú)立的,在正確的規(guī)則里,應(yīng)該禁止從正在使用的內(nèi)存看到另外一個(gè)虛擬機(jī)。也就是說(shuō),即使一臺(tái)虛擬機(jī)上有內(nèi)存沒(méi)有被使用,另一臺(tái)虛擬機(jī)也不能去使用這些閑置的內(nèi)存。對(duì)于網(wǎng)絡(luò)流量來(lái)說(shuō),每個(gè)虛擬機(jī)的連接都應(yīng)該有專(zhuān)用的通道,虛擬機(jī)之間不能嗅探對(duì)方的數(shù)據(jù)包。但是,如果虛擬機(jī)平臺(tái)使用了“虛擬hub”或者“虛擬交換”來(lái)連接所有虛擬機(jī),那么虛擬機(jī)就可以進(jìn)行嗅探,或者使用ARP中毒來(lái)重新定向數(shù)據(jù)包。
(四)虛擬機(jī)的逃逸技術(shù)
一個(gè)程序運(yùn)行在虛擬機(jī)里,它應(yīng)該無(wú)法影響其他虛擬機(jī)。但是,受技術(shù)的限制和虛擬化軟件的一些bug,它們之間是相互影響的。虛擬機(jī)讓我們能夠分享主機(jī)的資源并提供隔離。在某些情況下,運(yùn)行在虛擬機(jī)里的程序,會(huì)繞過(guò)底層,并利用宿主機(jī),我們把這種技術(shù)叫做虛擬機(jī)逃逸技術(shù),它會(huì)使整個(gè)安全模型完全崩潰。也就是說(shuō),如果在虛擬機(jī)上測(cè)試惡意軟件、病毒,它們就會(huì)通過(guò)虛擬機(jī)進(jìn)入系統(tǒng)。
(五)拒絕服務(wù)
虛擬機(jī)會(huì)強(qiáng)制占用一些虛擬機(jī)和宿主機(jī)共享的資源,從而使得其他虛擬機(jī)拒絕服務(wù),因此我們需要限制虛擬機(jī)的可用資源。虛擬化技術(shù)可以把資源單獨(dú)分配給一個(gè)虛擬機(jī),通過(guò)正確的配置,可以防止虛擬機(jī)無(wú)節(jié)制地濫用資源,從而避免拒絕服務(wù)攻擊。
(一)硬件環(huán)境的問(wèn)題
虛擬機(jī)運(yùn)行時(shí),要求在物理機(jī)上需要有足夠的處理能力、內(nèi)存、硬盤(pán)容量和帶寬,因此需要一些額外的處理能力和內(nèi)存。受資源的限制,有時(shí)候會(huì)分配超出處理能力的資源給虛擬機(jī),比如有三個(gè)虛擬機(jī),每個(gè)虛擬機(jī)申請(qǐng)峰值不超過(guò)500MHz的處理器時(shí)間,但是物理機(jī)實(shí)際上只是1GHz的CPU,由于它們滿負(fù)載的時(shí)間不一致,因此可充分利用CPU資源。但這種方法也可能會(huì)導(dǎo)致拒絕服務(wù),我們無(wú)法保證所有虛擬機(jī)不會(huì)在同一時(shí)間達(dá)到峰值,而且虛擬機(jī)資源共享機(jī)制比較簡(jiǎn)單,CPU、內(nèi)存、磁盤(pán)、帶寬都有可能出現(xiàn)資源不夠用的問(wèn)題。
(二)管理啟動(dòng)時(shí)的磁盤(pán)帶寬
虛擬機(jī)在啟動(dòng)時(shí)會(huì)比較占用磁盤(pán)帶寬,會(huì)同時(shí)加載一些庫(kù)、守護(hù)進(jìn)程及其他文件,即使有多個(gè)虛擬機(jī),在正常運(yùn)行期間,磁盤(pán)一般都能夠提供足夠的帶寬。我們也可以用以下兩種方法來(lái)解決:一是錯(cuò)開(kāi)開(kāi)機(jī)時(shí)間,首先啟動(dòng)最關(guān)鍵的虛擬機(jī),另外一個(gè)虛擬機(jī)五分鐘或者更長(zhǎng)時(shí)間后再啟動(dòng);二是給每個(gè)虛擬機(jī)一個(gè)專(zhuān)用物理磁盤(pán)。
(三)對(duì)虛擬機(jī)的訪問(wèn)加以限制
由于虛擬機(jī)很容易受到來(lái)自主機(jī)的攻擊,所以要對(duì)主機(jī)的安全提供細(xì)致的安全措施很有必要,主機(jī)的所處的環(huán)境不同,形成的風(fēng)險(xiǎn)也不一樣。
(1)考慮到主機(jī)的物理環(huán)境安全,對(duì)進(jìn)入機(jī)房的身份卡驗(yàn)證,對(duì)進(jìn)行機(jī)器加鎖。
(2)設(shè)置在BIOS里只允許從主硬盤(pán)引導(dǎo),禁止從其他設(shè)備引導(dǎo),并且及時(shí)地對(duì)BIOS進(jìn)行密碼設(shè)置,防止被別人修改信息。
(3)對(duì)所有的外部接口進(jìn)行控制。
(2)安裝完系統(tǒng)后,及時(shí)地拆除光驅(qū)、軟驅(qū)。
(一)給虛擬機(jī)層的端口加上防火墻
虛擬機(jī)除了可以使用主機(jī)上開(kāi)放的端口,也會(huì)通過(guò)主機(jī)的IP開(kāi)放一些端口,由于這些端口可以允許其他人通過(guò)遠(yuǎn)程連接到虛擬機(jī)層,配置或查看虛擬機(jī)、磁盤(pán),也可能執(zhí)行其他的任務(wù)。因此,我們需要一個(gè)宿主機(jī)的防火墻,對(duì)這些端口的訪問(wèn)加以嚴(yán)格的控制,只允許授權(quán)者對(duì)這些端口進(jìn)行訪問(wèn)。
(二)加密通信技術(shù)的使用
盡可能地使用通信加密手段,用HTTPS、TLS、SSH,或者加密VPN來(lái)管理。除了加密機(jī)制以外,還應(yīng)有身份鑒別和認(rèn)證,以防止偽造源IP攻擊、連接劫持、中間人攻擊等。
(三)虛擬機(jī)的身份驗(yàn)證
虛擬機(jī)和宿主機(jī)一樣也需要配置驗(yàn)證方式。比如密碼的加密、登錄次數(shù)的鎖定或延時(shí)等。
(一)部分服務(wù)的功能可以禁用
在虛擬機(jī)中,有些功能的關(guān)閉不會(huì)影響到虛擬機(jī)運(yùn)行,例如磁盤(pán)碎片整理、屏幕保護(hù)程序、病毒和惡意軟件的掃描、文件完整性的檢查、系統(tǒng)更新等。對(duì)于單一操作系統(tǒng)的虛擬機(jī)來(lái)說(shuō),這些不需要的服務(wù)在啟用,它們占用了資源,可以關(guān)閉。
(二)加強(qiáng)文件共享的管理
在很多虛擬機(jī)軟件的支持下,主機(jī)和虛擬機(jī)之間可以進(jìn)行文件的共享,這樣使用起來(lái)比較方便,也帶來(lái)了安全方面的問(wèn)題。由于可以實(shí)現(xiàn)共享,虛擬機(jī)就有機(jī)會(huì)對(duì)共享的文件進(jìn)行操作。即使在沒(méi)有共享目錄的時(shí)候,激活的文件也可能到虛擬機(jī)的環(huán)境以外,因此,除了特別需要共享外,一般情況下把文件共享功能關(guān)閉。
(三)同步時(shí)間
在虛擬機(jī)中,它們的時(shí)間默認(rèn)都是依賴于主機(jī)的時(shí)鐘,而計(jì)算機(jī)的時(shí)間經(jīng)常會(huì)不準(zhǔn)確。因?yàn)闀r(shí)鐘的不準(zhǔn)確性,導(dǎo)致任務(wù)的滯后或提前的問(wèn)題會(huì)發(fā)生。比如,我們規(guī)定周一到周二兩天,其中的某些服務(wù)關(guān)閉,但是因?yàn)闀r(shí)間的不準(zhǔn)確,可能會(huì)造成業(yè)務(wù)中斷。由于時(shí)間的不確定性,我們無(wú)法從日志上得出事件的真實(shí)性。解決這個(gè)問(wèn)題的辦法是,在離網(wǎng)絡(luò)比較近的地方配置同步時(shí)間服務(wù)器。
(四)把不經(jīng)常使用的設(shè)備切斷
由于虛擬技術(shù)允許虛擬機(jī)可以間接或直接地控制物理設(shè)備,比如光驅(qū)、軟驅(qū)、打印機(jī)、USB接口等。在啟動(dòng)虛擬機(jī)的時(shí)候,會(huì)對(duì)這些硬件設(shè)備進(jìn)行檢測(cè),在多個(gè)虛擬機(jī)同時(shí)啟動(dòng)的時(shí)候,第一個(gè)啟動(dòng)的虛擬機(jī)優(yōu)先使用這些設(shè)備,而其他虛擬機(jī)的檢測(cè)會(huì)被鎖定,這會(huì)造成不必要的啟動(dòng)延遲。另外,如果在驅(qū)動(dòng)器里有惡意代碼,虛擬機(jī)可能會(huì)自動(dòng)裝入并執(zhí)行,類(lèi)似于自動(dòng)運(yùn)行的功能。建議只在需要的時(shí)候才允許連接所有可控制的物理設(shè)備。
[1]管建超.基于VM ware的虛擬機(jī)安全設(shè)計(jì)與實(shí)現(xiàn)[J].電力信息化,2010,(6).
[2]程川.一種基于Xen的信任虛擬機(jī)安全訪問(wèn)設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)與數(shù)字工程,2010,(3).
[3]蔣萬(wàn)春,湯立,陳震.虛擬化安全問(wèn)題探析[J].信息網(wǎng)絡(luò)安全,2010,(8).
[4]黃良良,韓軍,汪倫偉.基于Xen硬件虛擬機(jī)的安全通信機(jī)制研究[J].計(jì)算機(jī)安全,2010,(3).
TN
A
1673-0046(2011)11-0179-02
太原城市職業(yè)技術(shù)學(xué)院學(xué)報(bào)2011年11期