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