两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

一種軟件看門狗系統(tǒng)及方法

文檔序號:6537779閱讀:254來源:國知局
一種軟件看門狗系統(tǒng)及方法
【專利摘要】本發(fā)明提供了一種軟件看門狗系統(tǒng)及方法,該系統(tǒng)包括:基于內核的虛擬機KVM,以及安裝于KVM上的語義重構模塊、故障檢測模塊、策略模塊、恢復模塊;KVM上的虛擬機監(jiān)控器,用于獲取物理主機的內存信息;語義重構模塊,用于根據(jù)虛擬機監(jiān)控器獲取的物理主機的內存信息重構出客戶虛擬機上的語義信息;故障檢測模塊,用于根據(jù)語義重構模塊重構出的客戶虛擬機上的語義信息檢測客戶虛擬機的隱藏進程、關鍵用戶進程和系統(tǒng)調用的完整性,輸出檢測結果;策略模塊,用于根據(jù)檢測結果和用戶配置的恢復策略,生成恢復指令;恢復模塊,用于根據(jù)策略模塊產(chǎn)生的恢復指令進行恢復操作。本發(fā)明的系統(tǒng)及方法,能夠同時監(jiān)控多個客戶虛擬機,操作簡單,處理高效。
【專利說明】一種軟件看門狗系統(tǒng)及方法
【技術領域】
[0001]本發(fā)明涉及安全【技術領域】,尤其涉及一種軟件看門狗系統(tǒng)及方法。
【背景技術】
[0002]傳統(tǒng)的基于硬件的看門狗系統(tǒng),在系統(tǒng)進入不可恢復錯誤時,能產(chǎn)生一個不可屏蔽中斷來通知系統(tǒng)自動重啟,只有相應的復位信號才能清除它。以此來達到保證系統(tǒng)的高可用性,主要應用領域是嵌入式系統(tǒng)。傳統(tǒng)的基于硬件的看門狗系統(tǒng),只能檢測單個進程,造價較高,功能單一,不夠通用,必須提供編程接口來進行“喂狗”操作,增加了系統(tǒng)的復雜性和耦合度。

【發(fā)明內容】

[0003]本發(fā)明提供了一種軟件看門狗系統(tǒng)及方法,能夠同時監(jiān)控多個客戶虛擬機,并且能夠檢測多個進程。
[0004]第一方面,本發(fā)明提供了一種軟件看門狗系統(tǒng),該系統(tǒng)包括:
[0005]基于內核的虛擬機KVM,以及安裝于KVM上的語義重構模塊、故障檢測模塊、策略模塊、恢復模塊;
[0006]KVM上的虛擬機 監(jiān)控器,用于獲取物理主機的內存信息;
[0007]語義重構模塊,用于根據(jù)虛擬機監(jiān)控器獲取的物理主機的內存信息重構出客戶虛擬機上的語義信息;
[0008]故障檢測模塊,用于根據(jù)語義重構模塊重構出的客戶虛擬機上的語義信息檢測客戶虛擬機的隱藏進程、關鍵用戶進程和系統(tǒng)調用的完整性,輸出檢測結果;
[0009]策略模塊,用于根據(jù)故障檢測模塊的檢測結果和用戶配置的恢復策略,生成恢復指令;
[0010]恢復模塊,用于根據(jù)策略模塊產(chǎn)生的恢復指令進行恢復操作;
[0011]其中,所述物理主機包括:一個宿主虛擬機和至少一個客戶虛擬機,所述宿主虛擬機為所述KVM。
[0012]進一步地,所述恢復指令,包括:啟動某個進程,終止某個進程,啟動虛擬機,重啟虛擬機,從鏡像文件恢復虛擬機。
[0013]進一步地,所述策略模塊,還用于根據(jù)用戶輸入的進程配置信息確定關鍵用戶進程。
[0014]第二方面,本發(fā)明提供了一種基于第一方面中任一軟件看門狗系統(tǒng)的檢測方法,該方法包括:
[0015]KVM上的虛擬機監(jiān)控器獲取物理主機的內存信息;
[0016]語義重構模塊根據(jù)虛擬機監(jiān)控器獲取的物理主機的內存信息重構出客戶虛擬機上的語義?目息;
[0017]故障檢測模塊根據(jù)語義重構模塊重構出的客戶虛擬機上的語義信息檢測客戶虛擬機的隱藏進程、關鍵用戶進程和系統(tǒng)調用的完整性,輸出檢測結果;
[0018]策略模塊根據(jù)故障檢測模塊的檢測結果和用戶配置的恢復策略,生成恢復指令;
[0019]恢復模塊根據(jù)策略模塊產(chǎn)生的恢復指令進行恢復操作;
[0020]其中,所述物理主機包括:一個宿主虛擬機和至少一個客戶虛擬機,所述宿主虛擬機為所述KVM。
[0021]進一步地,所述恢復指令,包括:啟動某個進程,終止某個進程,啟動虛擬機,重啟虛擬機,從鏡像文件恢復虛擬機。
[0022]進一步地,所述方法還包括,策略模塊根據(jù)用戶輸入的進程配置信息確定關鍵用戶進程。
[0023]通過本發(fā)明實施例提供的一種軟件看門狗系統(tǒng)及方法,能夠通過一個宿主虛擬機來同時監(jiān)控多個客戶虛擬機,并且能夠檢測多個進程。
【專利附圖】

【附圖說明】
[0024]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn)有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0025]圖1是本發(fā)明實施例提供的一種軟件看門狗系統(tǒng)的結構示意圖;
[0026]圖2是本發(fā)明實施例提供的一種基于實施例1中的軟件看門狗系統(tǒng)的檢測方法的流程圖。
【具體實施方式】
[0027]為使本發(fā)明實施例的目的、技術方案和優(yōu)點更加清楚,下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例,基于本發(fā)明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動的前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
[0028]實施例1:
[0029]在一臺物理主機上可以同時安裝多個虛擬機,其中一個為宿主虛擬機,其余的為客戶虛擬機,通過宿主虛擬機能夠對客戶虛擬機進行監(jiān)控。本發(fā)明提供了一種軟件看門狗系統(tǒng),該系統(tǒng)建立在以宿主虛擬機為單位的虛擬化系統(tǒng)架構上,該系統(tǒng)架構將看門狗中的故障檢測恢復系統(tǒng)放置在被檢測的客戶虛擬機之外,該系統(tǒng)可以檢測多臺客戶虛擬機。參見圖1,該系統(tǒng)包括:
[0030]KVM (Kernel-based Virtual Machine,基于內核的虛擬機),以及安裝于KVM上的語義重構模塊101、故障檢測模塊102、策略模塊103、恢復模塊104 ;
[0031]KVM上的虛擬機監(jiān)控器105,用于獲取物理主機的內存信息;
[0032]語義重構模塊101,用于根據(jù)虛擬機監(jiān)控器105獲取的物理主機的內存信息重構出客戶虛擬機上的語義信息;
[0033]故障檢測模塊102,用于根據(jù)語義重構模塊101重構出的客戶虛擬機上的語義信息檢測客戶虛擬機的隱藏進程、關鍵用戶進程和系統(tǒng)調用的完整性,輸出檢測結果;[0034]策略模塊103,用于根據(jù)故障檢測模塊102的檢測結果和用戶配置的恢復策略,生成恢復指令;
[0035]恢復模塊104,用于根據(jù)策略模塊103產(chǎn)生的恢復指令進行恢復操作;
[0036]其中,所述物理主機包括:一個宿主虛擬機和至少一個客戶虛擬機,所述宿主虛擬機為所述KVM。
[0037]通過本發(fā)明實施例提供的一種軟件看門狗系統(tǒng),能夠通過一個宿主虛擬機來同時監(jiān)控多個客戶虛擬機,并且能夠檢測多個進程。
[0038]所述恢復指令,包括:啟動某個進程,終止某個進程,啟動虛擬機,重啟虛擬機,從鏡像文件恢復虛擬機。
[0039]所述策略模塊103,還用于根據(jù)用戶輸入的進程配置信息確定關鍵用戶進程。
[0040]其中,虛擬機監(jiān)控器負責創(chuàng)建抽象層來虛擬化一個物理主機的硬件并把它劃分成邏輯上隔離的虛擬主機。虛擬機監(jiān)控器能夠保證即使被監(jiān)控的虛擬主機被入侵,也能夠防止進一步入侵到擁有特權級的宿主虛擬機上的應用程序,因此,不可能入侵到虛擬機故障檢測和恢復程序。虛擬機監(jiān)控器為了控制其上的客戶虛擬機,對客戶虛擬機擁有完全的控制權限,包括內存,CPU寄存器和I/O操作。虛擬機監(jiān)控器擁有的高優(yōu)先級允許對客戶虛擬機的完全監(jiān)控,也讓惡意代碼很難逃過監(jiān)測。虛擬機監(jiān)控器可以監(jiān)督虛擬主機的操作,能夠干預請求,例如,特權級CPU指令,因為它介于客戶虛擬機和宿主虛擬機之間。
[0041]在被監(jiān)控虛擬機內部,檢測系統(tǒng)可以輕易獲取正在執(zhí)行的進程、磁盤上文件等操作系統(tǒng)級別的高級語義信息,而在被監(jiān)控虛擬機外部,檢測系統(tǒng)僅能獲取寄存器值、內存數(shù)據(jù)、磁盤塊數(shù)據(jù)或當前指令執(zhí)行流等低等級信息,這種語義的斷層影響了檢測功能的有效實施。為了解決語義斷層的問題,需要重構虛擬機內部的高級語義信息。本系統(tǒng)更加關注進程信息的刻畫,如以進程控制塊為模板,重構進程控制塊信息,進而獲取進程名、進程號以及內存地址空間等。本系統(tǒng)在虛擬機外部構建進程控制塊鏈表,并通過交叉視圖的方式比較外部重構進程列表和內部匯報進程列表的差異,以此確定是否存在隱藏進程。然而直接操作內核對象類攻擊可以將待隱藏進程控制塊從進程隊列中摘鏈,因而該方法可能會出現(xiàn)漏檢現(xiàn)象。本系統(tǒng)提供了相應的隱藏進程的處理機制,可以在最大程度上保證系統(tǒng)的自動恢復能力,從而提高安全性和自動化。
[0042]利用虛擬機自省機制,將檢測工具與被監(jiān)控系統(tǒng)隔離在不同的虛擬機中,通過語義重構,在虛擬機外部的檢測軟件發(fā)現(xiàn)虛擬機中的惡意軟件,然后根據(jù)不同的恢復策略進行虛擬機的恢復,來確保在虛擬機發(fā)生故障的情況下,軟件看門狗可以自動進行恢復,保證系統(tǒng)的正常運行,同時該系統(tǒng)只要在宿主虛擬機上進行配置就可以,在客戶虛擬機上不需要安裝任何組件,提高整個系統(tǒng)的安全性和可靠性。
[0043]本發(fā)明利用虛擬機監(jiān)控器的隔離特性和高特權級特性,獲得客戶虛擬機的內存信息,獲得客戶虛擬機的內存信息后,然后通過客戶虛擬機系統(tǒng)的操作系統(tǒng)的內存布局和操作系統(tǒng)的常量參數(shù),來獲得客戶虛擬機的操作系統(tǒng)級別的內核數(shù)據(jù)結構信息。通過這些數(shù)據(jù)結構,可以獲得客戶虛擬機的一些信息,如進程列表,內核模塊列表等。當故障檢測模塊運行時,可以利用客戶虛擬機的進程信息,來判斷是否有隱藏進程,同時可以檢測關鍵進程是否在運行。如果關鍵進程缺失,同時發(fā)現(xiàn)隱藏進程,那么說明當前這個系統(tǒng)已經(jīng)被惡意軟件入侵。如果故障檢測模發(fā)現(xiàn)系統(tǒng)調用被修改,也說明當前系統(tǒng)中有惡意軟件。策略模塊根據(jù)故障檢測模發(fā)現(xiàn)的系統(tǒng)異常情況和用戶配置的恢復策略來進行決策,輸出恢復指令。恢復策略可以為:如果用戶進程缺失,可以簡單地啟動用戶進程,如果操作系統(tǒng)調用被破壞,可以重啟虛擬機;如果重啟之后還是有原來的問題,那么就采用從鏡像文件恢復虛擬機的方式來解決問題?;謴湍K執(zhí)行策略模塊產(chǎn)生的恢復指令,它可以啟動,停止某個進程,可以關閉,啟動虛擬機,也可以從鏡像來恢復虛擬機。
[0044]其中,恢復策略可以包括兩個過程:虛擬機級別的恢復:利用虛擬機可以動態(tài)地創(chuàng)建、撤銷以及在各個物理平臺之間進行遷移的特性,進行虛擬機級別的恢復,例如:啟動虛擬機,重啟虛擬機,從鏡像文件恢復虛擬機。進程級別的恢復:如果用戶進程遭到破壞可以進行進程級別的恢復,嘗試重啟用戶進程,例如:啟動某個進程,終止某個進程。通過以上兩個級別的恢復過程來確保在虛擬機發(fā)生故障的情況下,可以自動進行恢復,重新正常運行,保證系統(tǒng)的高可靠性和高安全性。
[0045]對于語義重構模塊,由于本系統(tǒng)的故障檢測模塊與被監(jiān)控系統(tǒng)隔離在不同的虛擬機中,因此需要解決語義鴻溝問題。通過語義重構,將原始的物理主機的內存信息重構出客戶虛擬機操作系統(tǒng)級別的語義。
[0046]對于故障檢測模塊,如果有惡意軟件殺掉了用戶程序,可以用關鍵進程運行狀態(tài)來檢測出來。如果惡意軟件在系統(tǒng)調用中掛了鉤子,系統(tǒng)調用完整性檢查可以檢查出來。如果惡意軟件將自己隱藏出來了,隱藏進程檢測部分可以檢測出這個進程。
[0047]其中,運行在客戶虛擬機上的操作系統(tǒng)可以是Linux系統(tǒng)、Windows系統(tǒng)。
[0048]實施例2:
[0049]本發(fā)明實施例提供了一種基于實施例1中的軟件看門狗系統(tǒng)的檢測方法,參見圖2,該方法包括:
[0050]步驟201 =KVM上的虛擬機監(jiān)控器獲取物理主機的內存信息;
[0051]步驟202:語義重構模塊根據(jù)虛擬機監(jiān)控器獲取的物理主機的內存信息重構出客戶虛擬機上的語義信息;
[0052]步驟203:故障檢測模塊根據(jù)語義重構模塊重構出的客戶虛擬機上的語義信息檢測客戶虛擬機的隱藏進程、關鍵用戶進程和系統(tǒng)調用的完整性,輸出檢測結果;
[0053]步驟204:策略模塊根據(jù)故障檢測模塊的檢測結果和用戶配置的恢復策略,生成恢復指令;
[0054]步驟205:恢復模塊根據(jù)策略模塊產(chǎn)生的恢復指令進行恢復操作;
[0055]其中,所述物理主機包括:一個宿主虛擬機和至少一個客戶虛擬機,所述宿主虛擬機為所述KVM。
[0056]所述恢復指令,包括:啟動某個進程,終止某個進程,啟動虛擬機,重啟虛擬機,從鏡像文件恢復虛擬機。
[0057]所述方法還包括,策略模塊根據(jù)用戶輸入的進程配置信息確定關鍵用戶進程。
[0058]需要說明的是:每個虛擬機的內核里,有一個進程描述符,存儲了操作系統(tǒng)進程的所有信息。所有進程的進程描述符都在一個循環(huán)的雙向鏈表task_list里存儲。每個單獨進程的信息,進程描述符,作為一個單獨的結構task_struct存儲在這個鏈表里。一個進程啟動的子線程也在task_list的結構里有一個項來存儲,并有與之相對應的唯一的線程ID和task_struct來對應run_list域,指向了另外一個結構runqueue, CPU需要使用這個信息。runqueue結構是一個包含所有要被CPU執(zhí)行的進程的結構。
[0059]task_struct結構中的mm域指向了進程的附加屬性:一旦一個進程被創(chuàng)建后,就被賦予了一個虛擬內存地址。地址空間和其他所有跟此進程相關的內存管理的信息都存儲在了一個叫做mm_struCt的結構里。跟此進程相關的所有虛擬內存區(qū)域的描述符都鏈接在另外的一個鏈表里,可以通過mm_struct描述符里的_ap域來訪問到這個信息。這些對于此進程可用的虛擬內存區(qū)域被保存到另外一個叫做vm_area_struct的描述符里。這就形成了一個包含進程的虛擬內存信息的鏈表,每個vm_area_struct描述符指向了它所代表的連續(xù)內存區(qū)域。這些地址被存儲在每個vm_area_struct里的vm_next域來串聯(lián)起來。vm_next域指向下一個vm_area_struct結構,因此指向了進程所擁有的下一片虛擬內存區(qū)域。
[0060]以上都是跟給定進程的虛擬內存相關的信息。然而,一個進程只能訪問到存儲在物理內存里的進程數(shù)據(jù)。關聯(lián)虛擬內存和相應的物理地址的信息存儲在頁表里。頁表信息可以通過mm_struct的pgd信息來訪問到。頁表存儲了以頁巾貞為單位的內核內存信息。這些關聯(lián)信息在Linux系統(tǒng)里是以三級的形式來存儲的。從上往下依次是:全局頁目錄,頁中間目錄,頁表項。最終就訪問到了具體的頁。在虛擬化環(huán)境里,虛擬機監(jiān)控器負責轉換虛擬機的虛擬內存地址為宿主虛擬機的物理內存地址。
[0061]基于虛擬自省的應用,需要讀取內存信息并理解他們語義,因此必須通過找到操作系統(tǒng)對應的第一個任務的符號信息來進行。一個符號指向了程序塊,可以是變量或者是函數(shù)的名稱。必須找到task_list的頭部,然后就可以獲得系統(tǒng)所有進程的信息了。這個鏈表的頭部存儲在一個叫做init_task_union的結構里,在Linux系統(tǒng)下,是跟第一個進程的task_struct相關聯(lián)的。符號和對應的虛擬地址存儲在Linux系統(tǒng)的System, map文件里。System, map文件在內核編譯之后就創(chuàng)建了,通常存儲在/boot目錄下,而且在內核的生命周期里,一直保持不變的。
[0062]在找到init_taSk_Union所在的地址之后,就可以遍歷操作系統(tǒng)里所有的進程鏈表了。這樣就可以完整地重構出客戶虛擬機的內存的信息并進一步分析得出虛擬機的狀態(tài)。本系統(tǒng)就可以把虛擬機的虛擬內存地址轉換到他們對應到的物理內存的地址了。
[0063]虛擬機監(jiān)控器負責為每個虛擬機創(chuàng)建一個虛擬的MMlXMemory Management Unit,內存管理單元)并調節(jié)虛擬機的內存訪問。虛擬機監(jiān)控器也控制了物理的MMU并以不會和其他虛擬機物理內存互相重疊的方式映射每個虛擬機的物理內存。這樣,每個虛擬機自己的地址空間就被隔離開來,不能訪問別的虛擬機的地址空間。最終,低級的事件消息,例如中斷等就自動被虛擬機監(jiān)控器捕獲。因此,在這種環(huán)境下,虛擬機監(jiān)控器可以一直監(jiān)控,控制每個虛擬機監(jiān)控器所要求的特權級的指令。本系統(tǒng)通過虛擬機監(jiān)控器獲得客戶虛擬機操作系統(tǒng)的內核數(shù)據(jù)結構信息,進一步得到進程列表等內存信息。
[0064]獲得虛擬機的內存信息后,就可以利用故障檢測模塊,檢測包括隱藏進程檢測,用戶配置的關鍵進程檢測,系統(tǒng)調用完整性檢查來發(fā)現(xiàn)惡意軟件。
[0065]故障檢測模塊檢測隱藏進程的過程如下:
[0066]Linux維護了一個進程描述符的雙向鏈表task_list。系統(tǒng)啟動時的第一個進程的init_task結構是鏈表的頭結點。同時Linux還維護了一個runqueue的鏈表,任何由CPU執(zhí)行的進程都唯一的屬于這個鏈表。[0067]語義重構模塊獲得雙向鏈表task_list和runqueue鏈表,在虛擬機內部通過ps命令得到的進程信息列表ps_list ;
[0068]故障檢測模塊判斷待檢測進程是否存在于雙向鏈表task_list、runqueue鏈表、進程信息列表ps_list中;
[0069]如果存在于上述的向鏈表task_list、runqueue鏈表、進程信息列表ps_list中,則結束,否則發(fā)現(xiàn)隱藏進程。
[0070]故障檢測模塊檢測用戶配置的關鍵用戶進程的過程如下:
[0071]用戶配置了檢測的關鍵用戶進程名為userprocess,查看userprocess是否出現(xiàn)在task_list中,如果沒有出現(xiàn),說明用戶指定的關鍵用戶進程缺失。
[0072]故障檢測模塊檢測系統(tǒng)調用完整性的過程如下:
[0073]Linux系統(tǒng)調用的各個函數(shù)的入口地址在系統(tǒng)安裝后,就是固定的。所以創(chuàng)建一份正常的系統(tǒng)調用表,作為基準。之后每次檢查時,訪問系統(tǒng)調用的各個入口地址,檢查其是否與基準一致,如果一致,說明系統(tǒng)調用沒有問題。如果不一致,說明系統(tǒng)調用被破壞,系統(tǒng)調用已經(jīng)被加了鉤子函數(shù)。
[0074]經(jīng)過故障檢測模塊之后,本系統(tǒng)就獲得了虛擬機上進程的運行狀態(tài),在本實施例中,發(fā)現(xiàn)客戶虛擬機vmOl中的用戶關鍵進程csdtest程序缺失。策略模塊根據(jù)故障檢測模塊的檢測結果和用戶配置的恢復策略,生成恢復指令。
[0075]用戶在配置恢復策略時,可以指定當檢測到用戶的關鍵進程不存在時,如何進行恢復?;謴蜁r的操作可以是啟動某個指定進程,此進程可以是一個守護進程,由它來負責運行用戶所需要的所有應用程序;恢復操作也可以是重新啟動系統(tǒng),在Windows操作系統(tǒng)中,重啟操作系統(tǒng)能夠解決一些問題;恢復操作也可以是從最原始的鏡像文件來恢復虛擬機。這種恢復是終極的解決方案,此鏡像不僅保存了虛擬機上所有文件的狀態(tài),而且也保存了操作系統(tǒng)和用戶應用程序的運行狀態(tài)。但前提條件是建立此鏡像時,整個系統(tǒng)是干凈,完整,沒有被惡意軟件破壞的。
[0076]當故障檢測模塊檢測到隱藏進程后,可以采取以下恢復策略:
[0077]重啟操作系統(tǒng),如果重啟兩次后仍不能解決故障則重啟虛擬機,如果重啟虛擬機仍不能解決故障則從鏡像文件恢復虛擬機。
[0078]當故障檢測模塊檢測到關鍵用戶進程缺失后,可以采取以下恢復策略:
[0079]啟動該關鍵用戶進程,如果沒有解決故障,則重啟虛擬機,如果重啟虛擬機后沒有解決故障,則從鏡像文件恢復虛擬機。
[0080]當故障檢測模塊檢測到系統(tǒng)調用被修改后,可以采取以下恢復策略:
[0081]從鏡像文件恢復虛擬機。
[0082]綜上所述,整個恢復機制分為兩級,一種是進程級別的恢復,另外一種是虛擬機級別的恢復。當重啟程序3次之后,發(fā)現(xiàn)問題依然存在,就會采用重啟操作系統(tǒng)的方法來解決故障。如果此時故障依舊,就可以采用恢復鏡像的方法來恢復整個虛擬機,不過恢復鏡像之后,整個客戶虛擬機的狀態(tài)就回到了之前做鏡像時的狀態(tài),最近對文件所做的操作和用戶程序運行時產(chǎn)生的數(shù)據(jù)就會丟失,因此在實際應用中,需要配合數(shù)據(jù)庫等操作來將數(shù)據(jù)保存到其他地方。
[0083]當策略模塊作出恢復操作的決策之后,就由恢復模塊去負責執(zhí)行恢復命令。[0084]通過上述描述可見,本發(fā)明實施例具有如下的有益效果:
[0085]通過本發(fā)明實施例提供的一種軟件看門狗系統(tǒng)及方法,能夠通過一個宿主虛擬機來同時監(jiān)控多個客戶虛擬機,并且能夠檢測多個進程。
[0086]通過本發(fā)明實施例提供的一種軟件看門狗系統(tǒng)及方法,根據(jù)虛擬機監(jiān)控器獲取的物理主機的內存信息進行客戶虛擬機的隱藏進程的檢測,關鍵用戶進程的檢測,系統(tǒng)調用完整性的檢測,通過策略模塊輸出的恢復指令來對客戶虛擬機進行恢復,保證了客戶虛擬機的高可靠性,能夠對客戶虛擬機進行故障檢測和恢復,用戶可以根據(jù)需要配置要檢測的進程,配置簡單、可擴展性強以及具有高可靠性。
[0087]需要說明的是,在本文中,諸如第一和第二之類的關系術語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關系或者順序。而且,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設備中還存在另外的相同因素。
[0088]本領域普通技術人員可以理解:實現(xiàn)上述方法實施例的全部或部分步驟可以通過程序指令相關的硬件來完成,前述的程序可以存儲在計算機可讀取的存儲介質中,該程序在執(zhí)行時,執(zhí)行包括上述方法實施例的步驟;而前述的存儲介質包括:R0M、RAM、磁碟或者光盤等各種可以存儲程序代碼的介質中。 [0089]最后需要說明的是:以上所述僅為本發(fā)明的較佳實施例,僅用于說明本發(fā)明的技術方案,并非用于限定本發(fā)明的保護范圍。凡在本發(fā)明的精神和原則之內所做的任何修改、等同替換、改進等,均包含在本發(fā)明的保護范圍內。
【權利要求】
1.一種軟件看門狗系統(tǒng),其特征在于,該系統(tǒng)包括: 基于內核的虛擬機KVM,以及安裝于KVM上的語義重構模塊、故障檢測模塊、策略模塊、恢復模塊; KVM上的虛擬機監(jiān)控器,用于獲取物理主機的內存信息; 語義重構模塊,用于根據(jù)虛擬機監(jiān)控器獲取的物理主機的內存信息重構出客戶虛擬機上的語義?目息; 故障檢測模塊,用于根據(jù)語義重構模塊重構出的客戶虛擬機上的語義信息檢測客戶虛擬機的隱藏進程、關鍵用戶進程和系統(tǒng)調用的完整性,輸出檢測結果; 策略模塊,用于根據(jù)故障檢測模塊的檢測結果和用戶配置的恢復策略,生成恢復指令; 恢復模塊,用于根據(jù)策略模塊產(chǎn)生的恢復指令進行恢復操作; 其中,所述物理主機包括:一個宿主虛擬機和至少一個客戶虛擬機,所述宿主虛擬機為所述KVM。
2.根據(jù)權利要求1所述的系統(tǒng),其特征在于,所述恢復指令,包括:啟動某個進程,終止某個進程,啟動虛擬機,重啟虛擬機,從鏡像文件恢復虛擬機。
3.根據(jù)權利要求1所述的系統(tǒng),其特征在于,所述策略模塊,還用于根據(jù)用戶輸入的進程配置信息確定關鍵用戶進程。
4.一種基于權利要求1至3中任一軟件看門狗系統(tǒng)的檢測方法,其特征在于,該方法包括: KVM上的虛擬機監(jiān)控器獲取物理主機的內存信息; 語義重構模塊根據(jù)虛擬機監(jiān)控器獲取的物理主機的內存信息重構出客戶虛擬機上的語義息; 故障檢測模塊根據(jù)語義重構模塊重構出的客戶虛擬機上的語義信息檢測客戶虛擬機的隱藏進程、關鍵用戶進程和系統(tǒng)調用的完整性,輸出檢測結果; 策略模塊根據(jù)故障檢測模塊的檢測結果和用戶配置的恢復策略,生成恢復指令; 恢復模塊根據(jù)策略模塊產(chǎn)生的恢復指令進行恢復操作; 其中,所述物理主機包括:一個宿主虛擬機和至少一個客戶虛擬機,所述宿主虛擬機為所述KVM。
5.根據(jù)權利要求4所述的方法,其特征在于,所述恢復指令,包括:啟動某個進程,終止某個進程,啟動虛擬機,重啟虛擬機,從鏡 像文件恢復虛擬機。
6.根據(jù)權利要求4所述的方法,其特征在于,所述方法還包括,策略模塊根據(jù)用戶輸入的進程配置信息確定關鍵用戶進程。
【文檔編號】G06F11/36GK103793288SQ201410051863
【公開日】2014年5月14日 申請日期:2014年2月14日 優(yōu)先權日:2014年2月14日
【發(fā)明者】章洋, 吳步丹, 陳生棟 申請人:北京郵電大學
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
长宁县| 化隆| 株洲县| 尖扎县| 东乡族自治县| 邵东县| 土默特左旗| 金阳县| 宜城市| 珲春市| 盈江县| 海门市| 乌苏市| 门源| 马山县| 衡水市| 阜南县| 石棉县| 扎囊县| 晴隆县| 广安市| 屏边| 鄂托克前旗| 察哈| 万盛区| 同仁县| 双江| 安龙县| 永修县| 深州市| 渭南市| 西藏| 饶阳县| 屏边| 高邑县| 墨竹工卡县| 镇巴县| 温州市| 株洲县| 仲巴县| 剑河县|