專利名稱:一種針對(duì)虛擬化支撐環(huán)境的入侵檢測(cè)與恢復(fù)系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)系統(tǒng)安全領(lǐng)域,特別涉及一種針對(duì)虛擬化支撐環(huán)境的入侵檢測(cè)與恢復(fù)系統(tǒng)。
背景技術(shù):
安全威脅從計(jì)算機(jī)誕生開始就從未減少,在虛擬化業(yè)務(wù)飛速發(fā)展的今天,用戶數(shù)據(jù)和業(yè)務(wù)開始越來越多的遷移到虛擬機(jī)中,運(yùn)行在虛擬化環(huán)境中的數(shù)據(jù)安全不再僅僅取決于相關(guān)的應(yīng)用和直接支撐應(yīng)用的操作系統(tǒng),來自宿主物理主機(jī)的惡意入侵以及針對(duì)虛擬化環(huán)境(包括Hypervisor及其外圍組件和管理工具)安全漏洞的攻擊,使虛擬化環(huán)境下的系統(tǒng)與用戶數(shù)據(jù)的正在經(jīng)受越來越嚴(yán)峻的考驗(yàn)。虛擬化實(shí)現(xiàn)的方式多種多樣,包括同質(zhì)的或異質(zhì)的、基于純軟件的或基于硬件輔 助的、基于容器的或基于操作系統(tǒng)的等等,但本質(zhì)上是類似的,即由物理機(jī)上的宿主操作系統(tǒng)提供虛擬機(jī)監(jiān)控器,負(fù)責(zé)模擬、管理和調(diào)度所有虛擬機(jī)所需的資源和運(yùn)行環(huán)境,虛擬機(jī)中的數(shù)據(jù)通過一定的文件格式以磁盤映像的形式保存在物理機(jī)存儲(chǔ)介質(zhì)中,直接運(yùn)行在物理硬件上的宿主機(jī)操作系統(tǒng)是可以監(jiān)控和獲取所有虛擬機(jī)資源的,因此虛擬化平臺(tái)及其上運(yùn)行的客戶操作系統(tǒng)安全的前提是物理主機(jī)支撐環(huán)境的安全。在實(shí)現(xiàn)監(jiān)控系統(tǒng)完整性的實(shí)現(xiàn)過程中,主要會(huì)遇到的問題包括如何確保入侵檢測(cè)機(jī)制自身的完整與安全,其實(shí)質(zhì)是信任鏈的度量根問題,在可信計(jì)算框架中,這個(gè)信任鏈的根由可信計(jì)算機(jī)硬件提供,而多數(shù)場(chǎng)合的實(shí)際需求是需要面向大量通用服務(wù)器。安裝部署完成后,系統(tǒng)仍有可能面臨補(bǔ)丁、升級(jí)等操作,從而改變系統(tǒng)的數(shù)字簽名校驗(yàn)結(jié)果,如何識(shí)別正常的升級(jí)過程和惡意入侵的系統(tǒng)修改,是保證系統(tǒng)正常運(yùn)營(yíng)的重要條件。
發(fā)明內(nèi)容
針對(duì)現(xiàn)有技術(shù)中存在的不足,本發(fā)明的目的在于提供一種能夠保證虛擬化物理主機(jī)環(huán)境的完整性,并且提供入侵檢測(cè)和系統(tǒng)關(guān)鍵組件恢復(fù)機(jī)制的針對(duì)虛擬化支撐環(huán)境的入侵檢測(cè)與恢復(fù)系統(tǒng)。本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的一種針對(duì)虛擬化支撐環(huán)境的入侵檢測(cè)與恢復(fù)系統(tǒng),包括物理主宿主機(jī)和物理上可獨(dú)立于物理主宿主機(jī)的Live⑶;Live⑶上保存有加密私鑰和獨(dú)立引導(dǎo)程序,并且Live⑶上還備份有物理主宿主機(jī)的重要系統(tǒng)組件;加密私鑰用于對(duì)物理主宿主機(jī)系統(tǒng)進(jìn)行數(shù)字簽名,獨(dú)立引導(dǎo)程序用于校驗(yàn)物理主宿主機(jī)物理存儲(chǔ)引導(dǎo)區(qū),Live⑶上備份的物理主宿主機(jī)的重要系統(tǒng)組件用于對(duì)校驗(yàn)失敗的數(shù)據(jù)進(jìn)行恢復(fù)。上述針對(duì)虛擬化支撐環(huán)境的入侵檢測(cè)與恢復(fù)系統(tǒng),物理主宿主機(jī)系統(tǒng)安裝完成后,安裝程序調(diào)用LiveCD通過加密私鑰對(duì)物理主宿主機(jī)系統(tǒng)進(jìn)行數(shù)字簽名,并建立校驗(yàn)機(jī)制;再由LiveCD上的獨(dú)立引導(dǎo)程序進(jìn)行物理主宿主機(jī)物理存儲(chǔ)引導(dǎo)區(qū)的校驗(yàn),然后將控制權(quán)交給硬盤引導(dǎo)程序引導(dǎo),逐級(jí)校驗(yàn)所有關(guān)鍵組件和虛擬化支撐環(huán)境,最后完成所有物理主宿主機(jī)系統(tǒng)服務(wù)的正常啟動(dòng);當(dāng)校驗(yàn)過程中發(fā)現(xiàn)數(shù)字簽名不相符時(shí),物理主宿主機(jī)系統(tǒng)拒絕繼續(xù)運(yùn)行,并提示使用LiveCD進(jìn)行恢復(fù),恢復(fù)時(shí)通過互動(dòng)式啟發(fā)機(jī)制完成系統(tǒng)的恢復(fù)或更新確認(rèn),并重新進(jìn)行數(shù)字簽名,最后由獨(dú)立引導(dǎo)程序重新引導(dǎo)。上述針對(duì)虛擬化支撐環(huán)境的入侵檢測(cè)與恢復(fù)系統(tǒng),數(shù)字簽名使用DSA和RSA算法進(jìn)行數(shù)字簽名和校驗(yàn),使用加密私鑰進(jìn)行簽名,使用公鑰進(jìn)行校驗(yàn),加密私鑰僅保存在Live⑶上,公鑰同時(shí)保存在Live⑶和物理主宿主機(jī)系統(tǒng)物理存儲(chǔ)上,安裝結(jié)束和恢復(fù)完成后,使用Live⑶上的加密私鑰對(duì)物理主宿主機(jī)系統(tǒng)進(jìn)行數(shù)字簽名。上述針對(duì)虛擬化支撐環(huán)境的入侵檢測(cè)與恢復(fù)系統(tǒng),進(jìn)行數(shù)字簽名的物理主宿主機(jī)系統(tǒng)的關(guān)鍵組件包括硬盤引導(dǎo)程序、內(nèi)核及底層動(dòng)態(tài)庫(kù)、內(nèi)核模塊、核心服務(wù)與系統(tǒng)管理程序以及虛擬化支撐環(huán)境。上述針對(duì)虛擬化支撐環(huán)境的入侵檢測(cè)與恢復(fù)系統(tǒng),對(duì)物理主宿主機(jī)系統(tǒng)進(jìn)行數(shù)字簽名后從LiveCD引導(dǎo),LiveCD中的引導(dǎo)程序首先檢測(cè)硬盤弓I導(dǎo)程序的完整性,當(dāng)確認(rèn)硬盤 引導(dǎo)程序的數(shù)字簽名無誤時(shí),會(huì)將引導(dǎo)權(quán)交給硬盤引導(dǎo)程序,由硬盤引導(dǎo)程序?qū)Σ僮飨到y(tǒng)內(nèi)核進(jìn)行進(jìn)一步校驗(yàn),并適時(shí)將引導(dǎo)權(quán)交給操作系統(tǒng)內(nèi)核;校驗(yàn)是以串行方式鏈?zhǔn)竭M(jìn)行的,由操作系統(tǒng)內(nèi)核對(duì)需要加載的內(nèi)核模塊、啟動(dòng)腳本、文件系統(tǒng)完整性校驗(yàn)程序及其數(shù)據(jù)庫(kù)進(jìn)行簽名校驗(yàn),接著由啟動(dòng)腳本對(duì)重要的系統(tǒng)動(dòng)態(tài)庫(kù)、核心服務(wù)和系統(tǒng)管理程序進(jìn)行校驗(yàn),最后對(duì)虛擬化支撐環(huán)境進(jìn)行校驗(yàn),整個(gè)過程沒有任何檢驗(yàn)失敗后,啟動(dòng)虛擬化支撐服務(wù),加入虛擬化硬件資源池集群;如果過程中發(fā)生了校驗(yàn)失敗,會(huì)繼續(xù)進(jìn)行余下的校驗(yàn),直到所有校驗(yàn)完成,并記錄所有校驗(yàn)失敗的文件位置信息,之后拒絕繼續(xù)啟動(dòng),并提示用戶重啟,并使用Live⑶進(jìn)行系統(tǒng)恢復(fù)。上述針對(duì)虛擬化支撐環(huán)境的入侵檢測(cè)與恢復(fù)系統(tǒng),當(dāng)校驗(yàn)過程失敗后,直接由LiveCD引導(dǎo)啟動(dòng),并對(duì)校驗(yàn)失敗的數(shù)據(jù)進(jìn)行恢復(fù),這一恢復(fù)的來源就是LiveCD中的重要系統(tǒng)組件備份;重要系統(tǒng)組件備份包括硬盤引導(dǎo)程序、內(nèi)核、底層動(dòng)態(tài)庫(kù)、核心服務(wù)和管理工具和重要配置文件;在使用公鑰進(jìn)行簽名校驗(yàn)時(shí),如果驗(yàn)證失敗,在LiveCD中會(huì)進(jìn)行更新確認(rèn),將所有系統(tǒng)改變的信息提交給管理員,管理員可以對(duì)每一處改動(dòng)進(jìn)行確認(rèn),默認(rèn)情況下會(huì)覆蓋所有系統(tǒng)改動(dòng),如果管理員確認(rèn)更新,那么不會(huì)使用備份覆蓋硬盤上的內(nèi)容;最終會(huì)對(duì)所有確認(rèn)的改動(dòng)以及恢復(fù)的內(nèi)容重新進(jìn)行簽名認(rèn)證,確保下次啟動(dòng)時(shí)可以成功校驗(yàn)所有系統(tǒng)文件。本發(fā)明的有益效果是通過單獨(dú)的Live⑶的形式為每個(gè)物理主宿主機(jī)提供可信的根引導(dǎo)和不同的簽名私鑰。并由光盤根引導(dǎo)校驗(yàn)磁盤引導(dǎo)(grub),再由磁盤引導(dǎo)校驗(yàn)操作系統(tǒng)內(nèi)核,由操作系統(tǒng)內(nèi)核校驗(yàn)內(nèi)核模塊和系統(tǒng)完整性保障機(jī)制,最終校驗(yàn)關(guān)鍵動(dòng)態(tài)庫(kù)和虛擬化組件。從而形成完整的信任鏈,保證宿主操作系統(tǒng)自身和虛擬化環(huán)境的完整性。引入了啟發(fā)式交互過程,將系統(tǒng)所有變更的具體位置和變化提供給系統(tǒng)管理員,如果是系統(tǒng)正常升級(jí),那么系統(tǒng)管理員會(huì)了解升級(jí)內(nèi)容和變更文件,如果是管理員未知的變更,那么缺省認(rèn)為是入侵后文件被篡改的結(jié)果,會(huì)使用LiveCD中的備份覆蓋被更改內(nèi)容。最后,需要使用光盤中的私鑰重新生成數(shù)字簽名,使當(dāng)前系統(tǒng)中所有更新的內(nèi)容被校驗(yàn)機(jī)制確認(rèn)。
本發(fā)明針對(duì)在虛擬計(jì)算環(huán)境中物理主機(jī)環(huán)境面臨的攻擊與入侵,提供分析與報(bào)警,并恢復(fù)被篡改系統(tǒng)文件的機(jī)制。通過對(duì)各組件進(jìn)行數(shù)字簽名、逐級(jí)校驗(yàn)建立完整系統(tǒng)信任鏈、以及將簽名私鑰與物理主機(jī)環(huán)境隔離的方式,保證系統(tǒng)完整可靠。面向通用服務(wù)器,保護(hù)虛擬化環(huán)境下的物理主機(jī)的完整性,使系統(tǒng)關(guān)鍵組件被入侵篡改后能及時(shí)發(fā)現(xiàn),并得以恢復(fù),從而保證虛擬化平臺(tái)自身安全可信。
圖I為本發(fā)明針對(duì)虛擬化支撐環(huán)境的入侵檢測(cè)與恢復(fù)系統(tǒng)的模型。 圖中重要系統(tǒng)組件具體指內(nèi)核、內(nèi)核模塊、底層動(dòng)態(tài)庫(kù)、系統(tǒng)啟動(dòng)腳本、系統(tǒng)基本服務(wù)、系統(tǒng)管理工具、虛擬化組件和服務(wù)。重要底層組件具體指/bin/sbin/ /usr/sbin/usr/bin/usr/local/bin//usr/local/sbin/opt/lib/ /lib64/usr/lib/ /usr/lib64/usr/local/Iib64/usr/local/lib這些目錄下的內(nèi)容。虛擬化組件是指Qemu系列軟件包安裝內(nèi)容、kvm系列軟件包安裝內(nèi)容、Iibvirt系列軟件包安裝內(nèi)容。
具體實(shí)施例方式如圖I所示,本實(shí)施例一種針對(duì)虛擬化支撐環(huán)境的入侵檢測(cè)與恢復(fù)系統(tǒng),包括物理主宿主機(jī)和物理上可獨(dú)立于物理主宿主機(jī)的Live⑶;Live⑶上保存有加密私鑰和獨(dú)立引導(dǎo)程序,并且Live⑶上還備份有物理主宿主機(jī)的重要系統(tǒng)組件;加密私鑰用于對(duì)物理主宿主機(jī)系統(tǒng)進(jìn)行數(shù)字簽名,獨(dú)立引導(dǎo)程序用于校驗(yàn)物理主宿主機(jī)物理存儲(chǔ)引導(dǎo)區(qū),Live⑶上備份的物理主宿主機(jī)的重要系統(tǒng)組件用于對(duì)校驗(yàn)失敗的數(shù)據(jù)進(jìn)行恢復(fù)。物理主宿主機(jī)系統(tǒng)安裝完成后,安裝程序調(diào)用LiveCD通過加密私鑰對(duì)物理主宿主機(jī)系統(tǒng)進(jìn)行數(shù)字簽名,并建立校驗(yàn)機(jī)制;再由Live⑶上的獨(dú)立引導(dǎo)程序進(jìn)行物理主宿主機(jī)物理存儲(chǔ)引導(dǎo)區(qū)的校驗(yàn),然后將控制權(quán)交給硬盤引導(dǎo)程序引導(dǎo),逐級(jí)校驗(yàn)所有關(guān)鍵組件和虛擬化支撐環(huán)境,最后完成所有物理主宿主機(jī)系統(tǒng)服務(wù)的正常啟動(dòng);當(dāng)校驗(yàn)過程中發(fā)現(xiàn)數(shù)字簽名不相符時(shí),物理主宿主機(jī)系統(tǒng)拒絕繼續(xù)運(yùn)行,并提示使用LiveCD進(jìn)行恢復(fù),恢復(fù)時(shí)通過互動(dòng)式啟發(fā)機(jī)制完成系統(tǒng)的恢復(fù)或更新確認(rèn),并重新進(jìn)行數(shù)字簽名,最后由獨(dú)立引導(dǎo)程序重新引導(dǎo)。數(shù)字簽名使用DSA和RSA算法進(jìn)行數(shù)字簽名和校驗(yàn),使用加密私鑰進(jìn)行簽名,使用公鑰進(jìn)行校驗(yàn),加密私鑰僅保存在LiveCD上,公鑰同時(shí)保存在LiveCD和物理主宿主機(jī)系統(tǒng)物理存儲(chǔ)上,安裝結(jié)束和恢復(fù)完成后,使用LiveCD上的加密私鑰對(duì)物理主宿主機(jī)系統(tǒng)進(jìn)行數(shù)字簽名。這部分工作是在物理主宿主機(jī)操作系統(tǒng)基本安裝結(jié)束后立即進(jìn)行的,從而保證在系統(tǒng)部署完成之后,第一次運(yùn)行之前,就已經(jīng)具備入侵檢測(cè)功能。而引導(dǎo)過程中則會(huì)使用公鑰對(duì)系統(tǒng)的數(shù)字簽名進(jìn)行校驗(yàn)。進(jìn)行數(shù)字簽名的物理主宿主機(jī)系統(tǒng)的關(guān)鍵組件包括硬盤引導(dǎo)程序、內(nèi)核及底層動(dòng)態(tài)庫(kù)、內(nèi)核模塊、核心服務(wù)與系統(tǒng)管理程序以及虛擬化支撐環(huán)境。在一個(gè)開機(jī)運(yùn)行后自動(dòng)提供虛擬化服務(wù)的物理主宿主機(jī)中,這些組件構(gòu)成了最小的完整可信環(huán)境,既可以充分保證虛擬化環(huán)境的安全,又不至于需要在啟動(dòng)過程中校驗(yàn)整個(gè)文件系統(tǒng)而占用過多的系統(tǒng)資源和啟動(dòng)時(shí)間,從而在啟動(dòng)效率和安全性上取得了很好的平衡。弓I導(dǎo)程序通常是指在物理服務(wù)器BIOS加電自檢代碼完成后首先調(diào)用的代碼,根據(jù)介質(zhì)的不同,引導(dǎo)程序會(huì)存在于光盤、硬盤或U盤等其它存儲(chǔ)介質(zhì)上。在我們的入侵檢測(cè)框架中,安全的做法是從光盤引導(dǎo),由于安全LiveCD不可寫,因此可以確保根引導(dǎo)的完整和可信。對(duì)物理主宿主機(jī)系統(tǒng)進(jìn)行數(shù)字簽名后從Live⑶引導(dǎo),Live⑶中的引導(dǎo)程序首先檢測(cè)硬盤引導(dǎo)程序的完整性,當(dāng)確認(rèn)硬盤引導(dǎo)程序的數(shù)字簽名無誤時(shí),會(huì)將引導(dǎo)權(quán)交給硬盤引導(dǎo)程序,由硬盤引導(dǎo)程序?qū)Σ僮飨到y(tǒng)內(nèi)核進(jìn)行進(jìn)一步校驗(yàn),并適時(shí)將引導(dǎo)權(quán)交給操作系統(tǒng)內(nèi)核;校驗(yàn)是以串行方式鏈?zhǔn)竭M(jìn)行的,由操作系統(tǒng)內(nèi)核對(duì)需要加載的內(nèi)核模塊、啟動(dòng)腳本、文件系統(tǒng)完整性校驗(yàn)程序及其數(shù)據(jù)庫(kù)進(jìn)行簽名校驗(yàn),接著由啟動(dòng)腳本對(duì)重要的系統(tǒng)動(dòng)態(tài)庫(kù)、核心服務(wù)和系統(tǒng)管理程序進(jìn)行校驗(yàn),最后對(duì)虛擬化支撐環(huán)境(包括虛擬化相關(guān)服務(wù)、動(dòng)態(tài)庫(kù)、配置文件和管理工具)進(jìn)行校驗(yàn),整個(gè)過程沒有任何檢驗(yàn)失敗后,啟動(dòng)虛擬化支撐服務(wù),加入虛擬化硬件資源池集群;如果過程中發(fā)生了校驗(yàn)失敗,會(huì)繼續(xù)進(jìn)行余下的校驗(yàn),直到所有校驗(yàn)完成,并記錄所有校驗(yàn)失敗的文件位置信息,之后拒絕繼續(xù)啟動(dòng),并提示用戶重啟,并使用Live⑶進(jìn)行系統(tǒng)恢復(fù)。當(dāng)校驗(yàn)過程失敗后,直接由LiveCD引導(dǎo)啟動(dòng),并對(duì)校驗(yàn)失敗的數(shù)據(jù)進(jìn)行恢復(fù),這一恢復(fù)的來源就是LiveCD中的重要系統(tǒng)組件備份;重要系統(tǒng)組件備份包括硬盤引導(dǎo)程序、 內(nèi)核、底層動(dòng)態(tài)庫(kù)、核心服務(wù)和管理工具和重要配置文件。在使用公鑰進(jìn)行簽名校驗(yàn)時(shí),如果驗(yàn)證失敗,可能有兩種原因,一是系統(tǒng)遭受攻擊,重要二進(jìn)制或配置文件被篡改,二是系統(tǒng)管理員進(jìn)行了系統(tǒng)升級(jí),而校驗(yàn)數(shù)據(jù)庫(kù)并未同步。因此,在LiveCD中會(huì)進(jìn)行更新確認(rèn),將所有系統(tǒng)改變的信息提交給管理員,管理員可以對(duì)每一處改動(dòng)進(jìn)行確認(rèn),默認(rèn)情況下會(huì)覆蓋所有系統(tǒng)改動(dòng),如果管理員確認(rèn)更新,那么不會(huì)使用備份覆蓋硬盤上的內(nèi)容;最終會(huì)對(duì)所有確認(rèn)的改動(dòng)以及恢復(fù)的內(nèi)容重新進(jìn)行簽名認(rèn)證,確保下次啟動(dòng)時(shí)可以成功校驗(yàn)所有系統(tǒng)文件。內(nèi)核模塊的簽名校驗(yàn)不僅在啟動(dòng)過程中,在平時(shí)運(yùn)行時(shí)也會(huì)同樣生效。啟用內(nèi)核模塊簽名機(jī)制后,插入內(nèi)核的所有模塊都要進(jìn)行數(shù)字簽名。如果簽名和內(nèi)核中的公鑰不匹配,則內(nèi)核拒絕接受這個(gè)模塊。公鑰和私鑰在內(nèi)核編譯時(shí)隨機(jī)產(chǎn)生,使用DSA算法,密鑰長(zhǎng)度默認(rèn)512位,但在內(nèi)核編譯時(shí)可以改變這個(gè)長(zhǎng)度數(shù)值。使用enforcemodulesig內(nèi)核啟動(dòng)選項(xiàng)啟用這個(gè)機(jī)制。如果不加這個(gè)參數(shù),則默認(rèn)不啟用。模塊簽名檢查目標(biāo)有I.防止意外損壞的模塊造成系統(tǒng)危害;2.防止惡意修改的模塊造成系統(tǒng)危害;3.允許系統(tǒng)管理員執(zhí)行政策,僅僅已知的和批準(zhǔn)的內(nèi)核模塊能夠加載到系統(tǒng)。當(dāng)通過grub命令行(grub本身使用在安裝程序中輸入的密碼進(jìn)行加密,在沒有g(shù)rub密碼的情況下,無法通過修改grub參數(shù)取消模塊簽名機(jī)制),傳遞”enforcemodulesig=I”參數(shù),內(nèi)核進(jìn)入Enforce模式,否則處入permissive模式,當(dāng)公鑰損壞或者不存在,系統(tǒng)內(nèi)核無法啟動(dòng)。當(dāng)啟用模塊簽名后給kernel傳遞的參數(shù)還應(yīng)包括公鑰文件的目錄路徑。目前公鑰存放在/boot目錄下(與完整性檢測(cè)模塊公鑰相同)。公鑰文件內(nèi)容以base64編碼方式存放。當(dāng)公鑰文件指定路徑不對(duì)時(shí),grub啟動(dòng)檢測(cè)時(shí)會(huì)失敗,并無法引導(dǎo)內(nèi)核。之所以把公鑰存放在文件中,而不固化內(nèi)核中,是為了保證公鑰靈活性,使得每套產(chǎn)品安裝介質(zhì)可以使用不同的公私鑰對(duì)內(nèi)核進(jìn)行簽名和校驗(yàn)。
系統(tǒng)關(guān)鍵二進(jìn)制組件與配置文件的完整性借助于Aide來實(shí)現(xiàn),Aide軟件提供軟件完整性檢測(cè)功能,雖然RPM包管理軟件在一定程度上也具備類似功能,但是它只比較通過RPM命令安裝文件,具有一定局限性。Aide軟件校驗(yàn)范圍包括文件權(quán)限、索引節(jié)點(diǎn)、所屬用戶和用戶組、文件大小、文件塊數(shù),最后修改時(shí)間、創(chuàng)建時(shí)間、最后訪問時(shí)間、鏈接數(shù)、校驗(yàn)碼(rmdl60, tiger)或散列碼(MD5, shal, sha256, sha512)、擴(kuò)展屬性(acl selinuxxattrs)的變化。Aide雖然不能阻止對(duì)系統(tǒng)入侵,但是能夠檢測(cè)系統(tǒng)已經(jīng)發(fā)生變化,它不能保護(hù)Aide自身二進(jìn)制文件,配置文件或者數(shù)據(jù)庫(kù)文件不被篡改。Aide自身及其數(shù)據(jù)庫(kù)的完整性依靠SELinux系統(tǒng)強(qiáng)制訪問控制策略來提供保護(hù)。我們還增加三種系統(tǒng)檢測(cè)方式用于彌補(bǔ)Aide的局限性,具體如下I.主機(jī)開機(jī)時(shí)檢測(cè)當(dāng)宿主操作系統(tǒng)啟動(dòng)時(shí),運(yùn)行完整性檢測(cè)功能,如果發(fā)現(xiàn)系統(tǒng)出現(xiàn)異常,暫停系統(tǒng) 啟動(dòng),并發(fā)出報(bào)警信息。2.系統(tǒng)運(yùn)行中定期檢測(cè)當(dāng)系統(tǒng)運(yùn)行過程,為了進(jìn)一步保證所有系統(tǒng)文件不被動(dòng)態(tài)修改,會(huì)定期監(jiān)測(cè)系統(tǒng)運(yùn)行中數(shù)據(jù)的完整性3.安全盤檢測(cè)與恢復(fù)當(dāng)系統(tǒng)強(qiáng)制訪問控制和Aide檢測(cè)功能同時(shí)失效后,可以通過Live⑶提供全面檢測(cè)和恢復(fù)功能,當(dāng)檢測(cè)主機(jī)系統(tǒng)出現(xiàn)損壞時(shí),進(jìn)行對(duì)破壞文件進(jìn)行修復(fù)(包括Aide自身相關(guān)文件)。通過上述額外的系統(tǒng)完整性檢測(cè),提供了對(duì)于內(nèi)核與系統(tǒng)關(guān)鍵組件的校驗(yàn)與恢復(fù),克服了內(nèi)核模塊簽名與Aide的不足與缺陷,進(jìn)一步保證了系統(tǒng)grub, kernel,binary的完整性。系統(tǒng)校驗(yàn)文件和目錄主要包括下面3部分I ./boot 目錄因?yàn)?boot目錄下存放著主機(jī)系統(tǒng)內(nèi)核,主機(jī)系統(tǒng)引導(dǎo)裝入程序等重要文件,所以要進(jìn)行對(duì)其校驗(yàn)。2./etc/init. d/啟動(dòng)腳本當(dāng)grub啟動(dòng)之后,運(yùn)行主機(jī)系統(tǒng)內(nèi)核,然后init啟動(dòng)腳本。而這些目錄下存放了init自動(dòng)啟動(dòng)腳本會(huì)調(diào)用的許多重要系統(tǒng)服務(wù),例如虛擬化管理程序,虛擬機(jī)恢復(fù)程序。所以需要校驗(yàn)其完整性。3./bin/sbin/ /usr/sbin/usr/bin/usr/local/bin/ /usr/local/sbin/opt /lib/ /lib64/usr/lib/ /usr/lib64/usr/local/lib64/usr/local/lib選擇這些目錄原因是這些目錄包含系統(tǒng)所有應(yīng)用程序以及其調(diào)用的庫(kù)。/bin/sbin/下包含系統(tǒng)關(guān)鍵命令和可執(zhí)行文件;/usr/sbin/usr/bin下包含發(fā)行商發(fā)布執(zhí)行文件;/usr/local/bin/ /usr/local/sbin下包含用戶本身安裝二進(jìn)制文件;/opt下包含第三方廠商安裝二進(jìn)制文件。上述實(shí)施例僅僅是為清楚地說明本發(fā)明創(chuàng)造所作的舉例,而并非對(duì)本發(fā)明創(chuàng)造具體實(shí)施方式
的限定。對(duì)于所屬領(lǐng)域的普通技術(shù)人員來說,在上述說明的基礎(chǔ)上還可以做出其它不同形式的變化或變動(dòng)。這里無需也無法對(duì)所有的實(shí)施方式予以窮舉。而由此所引申 出的顯而易見的變化或變動(dòng)仍處于本發(fā)明創(chuàng)造權(quán)利要求的保護(hù)范圍之中。
權(quán)利要求
1.一種針對(duì)虛擬化支撐環(huán)境的入侵檢測(cè)與恢復(fù)系統(tǒng),其特征在于,包括物理主宿主機(jī)和物理上可獨(dú)立于物理主宿主機(jī)的Live⑶;Live⑶上保存有加密私鑰和獨(dú)立引導(dǎo)程序,并且Live⑶上還備份有物理主宿主機(jī)的重要系統(tǒng)組件;加密私鑰用于對(duì)物理主宿主機(jī)系統(tǒng)進(jìn)行數(shù)字簽名,獨(dú)立引導(dǎo)程序用于校驗(yàn)物理主宿主機(jī)物理存儲(chǔ)引導(dǎo)區(qū),Live⑶上備份的物理主宿主機(jī)的重要系統(tǒng)組件用于對(duì)校驗(yàn)失敗的數(shù)據(jù)進(jìn)行恢復(fù)。
2.根據(jù)權(quán)利要求I所述的針對(duì)虛擬化支撐環(huán)境的入侵檢測(cè)與恢復(fù)系統(tǒng),其特征在于,物理主宿主機(jī)系統(tǒng)安裝完成后,安裝程序調(diào)用Live⑶通過加密私鑰對(duì)物理主宿主機(jī)系統(tǒng)進(jìn)行數(shù)字簽名,并建立校驗(yàn)機(jī)制;再由Live⑶上的獨(dú)立引導(dǎo)程序進(jìn)行物理主宿主機(jī)物理存儲(chǔ)引導(dǎo)區(qū)的校驗(yàn),然后將控制權(quán)交給硬盤引導(dǎo)程序引導(dǎo),逐級(jí)校驗(yàn)所有關(guān)鍵組件和虛擬化支撐環(huán)境,最后完成所有物理主宿主機(jī)系統(tǒng)服務(wù)的正常啟動(dòng);當(dāng)校驗(yàn)過程中發(fā)現(xiàn)數(shù)字簽名不相符時(shí),物理主宿主機(jī)系統(tǒng)拒絕繼續(xù)運(yùn)行,并提示使用LiveCD進(jìn)行恢復(fù),恢復(fù)時(shí)通過互動(dòng)式啟發(fā)機(jī)制完成系統(tǒng)的恢復(fù)或更新確認(rèn),并重新進(jìn)行數(shù)字簽名,最后由獨(dú)立引導(dǎo)程序重新引導(dǎo)。
3.根據(jù)權(quán)利要求2所述的針對(duì)虛擬化支撐環(huán)境的入侵檢測(cè)與恢復(fù)系統(tǒng),其特征在于,數(shù)字簽名使用DSA和RSA算法進(jìn)行數(shù)字簽名和校驗(yàn),使用加密私鑰進(jìn)行簽名,使用公鑰進(jìn)行校驗(yàn),加密私鑰僅保存在Live⑶上,公鑰同時(shí)保存在Live⑶和物理主宿主機(jī)系統(tǒng)物理存儲(chǔ)上,安裝結(jié)束和恢復(fù)完成后,使用LiveCD上的加密私鑰對(duì)物理主宿主機(jī)系統(tǒng)進(jìn)行數(shù)字簽名。
4.根據(jù)權(quán)利要求3所述的針對(duì)虛擬化支撐環(huán)境的入侵檢測(cè)與恢復(fù)系統(tǒng),其特征在于,進(jìn)行數(shù)字簽名的物理主宿主機(jī)系統(tǒng)的關(guān)鍵組件包括硬盤引導(dǎo)程序、內(nèi)核及底層動(dòng)態(tài)庫(kù)、內(nèi)核模塊、核心服務(wù)與系統(tǒng)管理程序以及虛擬化支撐環(huán)境。
5.根據(jù)權(quán)利要求3所述的針對(duì)虛擬化支撐環(huán)境的入侵檢測(cè)與恢復(fù)系統(tǒng),其特征在于,對(duì)物理主宿主機(jī)系統(tǒng)進(jìn)行數(shù)字簽名后從LiveCD引導(dǎo),LiveCD中的引導(dǎo)程序首先檢測(cè)硬盤引導(dǎo)程序的完整性,當(dāng)確認(rèn)硬盤引導(dǎo)程序的數(shù)字簽名無誤時(shí),會(huì)將引導(dǎo)權(quán)交給硬盤引導(dǎo)程序,由硬盤引導(dǎo)程序?qū)Σ僮飨到y(tǒng)內(nèi)核進(jìn)行進(jìn)一步校驗(yàn),并適時(shí)將引導(dǎo)權(quán)交給操作系統(tǒng)內(nèi)核;校驗(yàn)是以串行方式鏈?zhǔn)竭M(jìn)行的,由操作系統(tǒng)內(nèi)核對(duì)需要加載的內(nèi)核模塊、啟動(dòng)腳本、文件系統(tǒng)完整性校驗(yàn)程序及其數(shù)據(jù)庫(kù)進(jìn)行簽名校驗(yàn),接著由啟動(dòng)腳本對(duì)重要的系統(tǒng)動(dòng)態(tài)庫(kù)、核心服務(wù)和系統(tǒng)管理程序進(jìn)行校驗(yàn),最后對(duì)虛擬化支撐環(huán)境進(jìn)行校驗(yàn),整個(gè)過程沒有任何檢驗(yàn)失敗后,啟動(dòng)虛擬化支撐服務(wù),加入虛擬化硬件資源池集群;如果過程中發(fā)生了校驗(yàn)失敗,會(huì)繼續(xù)進(jìn)行余下的校驗(yàn),直到所有校驗(yàn)完成,并記錄所有校驗(yàn)失敗的文件位置信息,之后拒絕繼續(xù)啟動(dòng),并提示用戶重啟,并使用LiveCD進(jìn)行系統(tǒng)恢復(fù)。
6.根據(jù)權(quán)利要求5所述的針對(duì)虛擬化支撐環(huán)境的入侵檢測(cè)與恢復(fù)系統(tǒng),其特征在于,當(dāng)校驗(yàn)過程失敗后,直接由LiveCD引導(dǎo)啟動(dòng),并對(duì)校驗(yàn)失敗的數(shù)據(jù)進(jìn)行恢復(fù),這一恢復(fù)的來源就是LiveCD中的重要系統(tǒng)組件備份;重要系統(tǒng)組件備份包括硬盤引導(dǎo)程序、內(nèi)核、底層動(dòng)態(tài)庫(kù)、核心服務(wù)和管理工具和重要配置文件;在使用公鑰進(jìn)行簽名校驗(yàn)時(shí),如果驗(yàn)證失敗,在LiveCD中會(huì)進(jìn)行更新確認(rèn),將所有系統(tǒng)改變的信息提交給管理員,管理員可以對(duì)每一處改動(dòng)進(jìn)行確認(rèn),默認(rèn)情況下會(huì)覆蓋所有系統(tǒng)改動(dòng),如果管理員確認(rèn)更新,那么不會(huì)使用備份覆蓋硬盤上的內(nèi)容;最終會(huì)對(duì)所有確認(rèn)的改動(dòng)以及恢復(fù)的內(nèi)容重新進(jìn)行簽名認(rèn)證,確保下次啟動(dòng)時(shí)可以成功校驗(yàn)所有系統(tǒng)文件。
全文摘要
本發(fā)明公開一種針對(duì)虛擬化支撐環(huán)境的入侵檢測(cè)與恢復(fù)系統(tǒng),包括物理主宿主機(jī)和物理上可獨(dú)立于物理主宿主機(jī)的LiveCD;LiveCD上保存有加密私鑰和獨(dú)立引導(dǎo)程序,并且LiveCD上還備份有物理主宿主機(jī)的重要系統(tǒng)組件;加密私鑰用于對(duì)物理主宿主機(jī)系統(tǒng)進(jìn)行數(shù)字簽名,獨(dú)立引導(dǎo)程序用于校驗(yàn)物理主宿主機(jī)物理存儲(chǔ)引導(dǎo)區(qū),LiveCD上備份的物理主宿主機(jī)的重要系統(tǒng)組件用于對(duì)校驗(yàn)失敗的數(shù)據(jù)進(jìn)行恢復(fù)。本發(fā)明能夠保證虛擬化物理主機(jī)環(huán)境的完整性,并且提供入侵檢測(cè)和系統(tǒng)關(guān)鍵組件恢復(fù)機(jī)制。
文檔編號(hào)H04L9/30GK102880828SQ201210330419
公開日2013年1月16日 申請(qǐng)日期2012年9月7日 優(yōu)先權(quán)日2012年9月7日
發(fā)明者吳永成, 孟健, 趙小強(qiáng), 李賀, 張亞峰 申請(qǐng)人:普華基礎(chǔ)軟件股份有限公司