亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

基于虛擬機的內(nèi)核漏洞檢測文件保護方法及裝置與流程

文檔序號:12467719閱讀:184來源:國知局
基于虛擬機的內(nèi)核漏洞檢測文件保護方法及裝置與流程

本發(fā)明涉及計算機安全技術(shù)領(lǐng)域,具體涉及一種基于虛擬機的內(nèi)核漏洞檢測文件保護方法及裝置。



背景技術(shù):

網(wǎng)絡(luò)惡意行為是指網(wǎng)絡(luò)系統(tǒng)的硬件、軟件及其系統(tǒng)中的數(shù)據(jù)受到惡意代碼攻擊而遭到破壞、更改、泄露,致使系統(tǒng)不能連續(xù)可靠正常地運行,網(wǎng)絡(luò)服務(wù)中斷的行為。隨著信息化的普及,網(wǎng)絡(luò)新應(yīng)用的大量出現(xiàn),網(wǎng)絡(luò)惡意代碼所表現(xiàn)出的行為也層出不窮,目前最流行的網(wǎng)絡(luò)惡意行為是網(wǎng)頁掛馬、盜取帳號、端口掃描、漏洞掃描、ARP(Address Resolution Protocol,地址解析協(xié)議)欺騙、IP(Internet Protocol,因特網(wǎng)協(xié)議)劫持、DDOS(Distributed Denial of Service,分布式拒絕服務(wù))攻擊、溢出攻擊、木馬攻擊等。

漏洞是在硬件、軟件、協(xié)議的具體實現(xiàn)或系統(tǒng)安全策略上存在的缺陷,從而可以使攻擊者能夠在未授權(quán)的情況下訪問或破壞系統(tǒng)。內(nèi)核作為操作系統(tǒng)的核心,如何檢測內(nèi)核漏洞是安全防護工作的重中之重?,F(xiàn)有技術(shù)中,黑客在入侵系統(tǒng)時,往往通過提權(quán)的方式獲得系統(tǒng)的最高權(quán)限,從而取得操作系統(tǒng)的控制權(quán)。簡單來說,提權(quán)就是將一個低權(quán)限、受限制很多的用戶提升到系統(tǒng)中最高權(quán)限(如管理員權(quán)限)。權(quán)限控制是系統(tǒng)安全的基石,也是一切安全軟件的基石,一旦這道門檻被突破,任何防御措施都是無效的。因此,如何能夠有效地檢測內(nèi)核漏洞,預(yù)防黑客通過提權(quán)的方式進行系統(tǒng)攻擊成為現(xiàn)有技術(shù)亟待解決的問題。在內(nèi)核漏洞檢測過程中,如何避免惡意樣本進程訪問檢測文件,竊取檢測文件也是一個重要的問題。



技術(shù)實現(xiàn)要素:

鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的基于虛擬機的內(nèi)核漏洞檢測文件保護方法及裝置。

根據(jù)本發(fā)明的一個方面,提供了一種基于虛擬機的內(nèi)核漏洞檢測文件保護方法,所述方法在虛擬機沙箱隔離環(huán)境下運行,方法包括:

獲取各檢測子進程的相關(guān)信息,將各檢測子進程的相關(guān)信息寫入進程過濾名單中;

獲取檢測文件的存儲路徑信息,將檢測文件的存儲路徑信息寫入私有目錄名單中;

當產(chǎn)生文件訪問操作時,判斷文件訪問對象的存儲路徑信息是否記錄在私有目錄名單中;

若判斷出文件訪問對象的存儲路徑信息記錄在私有目錄名單中,則判斷當前上下背景文進程的相關(guān)信息是否記錄在所述進程過濾名單中;

若判斷出當前上下背景文進程的相關(guān)信息未記錄在所述進程過濾名單中,則拒絕文件訪問操作。

根據(jù)本發(fā)明的另一方面,提供了一種基于虛擬機的內(nèi)核漏洞檢測文件保護裝置,所述裝置在虛擬機沙箱隔離環(huán)境下運行,裝置包括:

第一寫入模塊,適于獲取各檢測子進程的相關(guān)信息,將各檢測子進程的相關(guān)信息寫入進程過濾名單中;

第二寫入模塊,適于獲取檢測文件的存儲路徑信息,將檢測文件的存儲路徑信息寫入私有目錄名單中;

第一判斷模塊,適于當產(chǎn)生文件訪問操作時,判斷文件訪問對象的存儲路徑信息是否記錄在私有目錄名單中;

第二判斷模塊,適于若所述第一判斷模塊判斷出文件訪問對象的存儲路徑信息記錄在私有目錄名單中,則判斷當前上下背景文進程的相關(guān)信息是否記錄在所述進程過濾名單中;

拒絕模塊,適于若第二判斷模塊判斷出當前上下背景文進程的相關(guān)信息未記錄在所述進程過濾名單中,則拒絕文件訪問操作。

根據(jù)本發(fā)明提供的基于虛擬機的內(nèi)核漏洞檢測文件保護方法及裝置,將各檢測子進程的相關(guān)信息寫入進程過濾名單中,將檢測文件的存儲路徑信息寫入私有目錄名單中,當產(chǎn)生文件訪問操作時,將文件訪問對象的存儲路徑信息和當前上下背景文進程的相關(guān)信息分別與進程過濾名單和私有目錄名單相匹配,判定是否拒絕文件訪問操作。利用本發(fā)明,可保護在虛擬機沙箱隔離環(huán)境下產(chǎn)生的檢測文件,防止被沙箱逃逸的惡意樣本進程訪問、篡改、加密或損毀,避免因此導(dǎo)致的檢測失敗或結(jié)果異常,維護沙箱系統(tǒng)的穩(wěn)定和性能。

上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點能夠更明顯易懂,以下特舉本發(fā)明的具體實施方式。

附圖說明

通過閱讀下文優(yōu)選實施方式的詳細描述,各種其他的優(yōu)點和益處對于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實施方式的目的,而并不認為是對本發(fā)明的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中:

圖1示出了根據(jù)本發(fā)明一個實施例的基于虛擬機的內(nèi)核漏洞檢測方法的流程圖;

圖2示出了根據(jù)本發(fā)明另一個實施例的基于虛擬機的內(nèi)核漏洞檢測方法的流程圖;

圖3示出了根據(jù)本發(fā)明另一個實施例的基于虛擬機的內(nèi)核漏洞檢測方法的流程圖;

圖4示出了根據(jù)本發(fā)明另一個實施例的基于虛擬機的內(nèi)核漏洞檢測方法的流程圖;

圖5示出了根據(jù)本發(fā)明一個實施例的基于虛擬機的內(nèi)核漏洞檢測進程保護方法的流程圖;

圖6示出了根據(jù)本發(fā)明一個實施例的基于虛擬機的內(nèi)核漏洞檢測文件保護方法的流程圖;

圖7示出了根據(jù)本發(fā)明一個實施例的基于虛擬機的內(nèi)核漏洞檢測裝置的功能框圖;

圖8示出了根據(jù)本發(fā)明另一個實施例的基于虛擬機的內(nèi)核漏洞檢測裝置的功能框圖;

圖9示出了根據(jù)本發(fā)明一個實施例的基于虛擬機的內(nèi)核漏洞檢測進程保護的功能框圖;

圖10示出了根據(jù)本發(fā)明一個實施例的基于虛擬機的內(nèi)核漏洞檢測文件保護的功能框圖。

具體實施方式

下面將參照附圖更詳細地描述本公開的示例性實施例。雖然附圖中顯示了本公開的示例性實施例,然而應(yīng)當理解,可以以各種形式實現(xiàn)本公開而不應(yīng)被這里闡述的實施例所限制。相反,提供這些實施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達給本領(lǐng)域的技術(shù)人員。

圖1示出了根據(jù)本發(fā)明一個實施例的基于虛擬機的內(nèi)核漏洞檢測方法的流程圖。本方法在服務(wù)器端虛擬機沙箱隔離環(huán)境下運行,用于針對指定的樣本文件進行動態(tài)的內(nèi)核漏洞利用檢測。如圖1所示,該方法包括如下步驟:

步驟S101,啟動通信代理進程,所述通信代理進程監(jiān)聽指定端口,等待并接收虛擬機外部主機傳輸?shù)臋z測包和樣本文件,將檢測包和樣本文件分別存儲到檢測目錄和臨時目錄下。

通信代理進程是負責與虛擬機外部主機進行數(shù)據(jù)交互、文件傳遞的進程。當服務(wù)端虛擬機操作系統(tǒng)開機時,通信代理進程隨之自啟動。通信代理進程監(jiān)聽指定端口,等待并接收虛擬機外部主機的相關(guān)進程傳輸?shù)臋z測包和樣本文件。通信代理進程對檢測包進行解壓操作,將解壓得到的文件存儲到檢測目錄下;另外,通信代理進程將樣本文件存儲到臨時目錄下。隨后,通信代理線程啟動檢測包中的調(diào)度管控進程。

步驟S102,啟動檢測包中的調(diào)度管控進程,所述調(diào)度管控進程獲取樣本文件存儲路徑,識別樣本文件類型,根據(jù)通用檢測配置文件中的配置選項選擇檢測模式和各檢測功能點,以創(chuàng)建針對所述樣本文件的目標檢測配置文件。

在調(diào)度管控進程啟動之后,調(diào)度管控進程獲取樣本文件存儲路徑,識別樣本文件類型。接著,調(diào)度管控進程讀取自身關(guān)聯(lián)的通用檢測配置文件,根據(jù)樣本文件類型選擇檢測模式和各檢測功能點,初始化自身各功能,創(chuàng)建針對樣本文件的目標檢測配置文件。隨后,調(diào)度管控進程啟動輔助檢測進程,并將樣本文件的存儲路徑(可為URL)通過參數(shù)的方式傳遞給輔助檢測進程。

步驟S103,啟動輔助檢測進程,所述輔助檢測進程利用所述目標檢測配置文件控制各檢測功能點的開關(guān)。

在輔助檢測進程啟動之后,輔助檢測進程根據(jù)目標檢測配置文件進行初始化,加載核心檢測進程的驅(qū)動程序,利用目標檢測配置文件控制各檢測功能點的開關(guān)。

步驟S104,啟動核心檢測進程,所述核心檢測進程接收輔助檢測進程發(fā)送的樣本文件的相關(guān)信息以及各檢測功能點的開關(guān)信息,執(zhí)行漏洞的檢測,根據(jù)檢測結(jié)果生成日志文件,將日志文件存儲到日志目錄下。

在輔助檢測進程加載核心檢測進程的驅(qū)動程序后,核心檢測進程啟動。核心檢測進程接收輔助檢測進程發(fā)送的樣本文件的相關(guān)信息以及各檢測功能點的開關(guān)信息,執(zhí)行初始化操作。而后,根據(jù)樣本文件的相關(guān)信息以及各檢測功能點的開關(guān)信息執(zhí)行樣本文件的檢測,根據(jù)檢測結(jié)果生成日志文件,將日志文件存儲到日志目錄下。

本實施例提供的基于虛擬機的內(nèi)核漏洞檢測方法在虛擬機沙箱隔離環(huán)境下運行,通過通信代理進程實現(xiàn)與虛擬機外部主機的數(shù)據(jù)交互和文件傳遞,借助調(diào)度管控進程和輔助檢測進程來輔助核心檢測進程實現(xiàn)樣本文件的檢測。本方法將內(nèi)核漏洞的檢測與外部隔離,為可疑樣本提供了一個封閉的檢測環(huán)境,即使可疑樣本確實存在漏洞,也不會對服務(wù)器側(cè)造成損害,提供了一種安全且高效地內(nèi)核漏洞檢測機制。

圖2示出了根據(jù)本發(fā)明另一個實施例的基于虛擬機的內(nèi)核漏洞檢測方法的流程圖。本方法描述的是基于虛擬機的內(nèi)核漏洞檢測的整體方案,具體是在服務(wù)器端虛擬機沙箱隔離環(huán)境下運行,用于針對指定的樣本文件進行動態(tài)的內(nèi)核漏洞利用檢測。如圖2所示,該方法包括如下步驟:

步驟S201,服務(wù)器端虛擬機操作系統(tǒng)開機時,通信代理進程自啟動。

通信代理進程是負責與虛擬機外部主機進行數(shù)據(jù)交互、文件傳遞的進程。當服務(wù)端虛擬機操作系統(tǒng)開機時,通信代理進程隨之自啟動。

步驟S202,通信代理進程監(jiān)聽指定端口,等待數(shù)據(jù)。

服務(wù)器端虛擬機向虛擬外部主機提供用于訪問的指定端口,通信代理進程啟動后就監(jiān)聽該指定端口,等待虛擬機外部主機發(fā)送過來的數(shù)據(jù)。

步驟S203,通信代理進程接收虛擬機外部主機傳輸?shù)臋z測包和樣本文件,將檢測包和樣本文件分別存儲到檢測目錄和臨時目錄下。

在通信代理進程接收到虛擬機外部主機通過指定端口傳輸?shù)臋z測包和樣本文件后,對其中的檢測包進行解壓操作,將解壓得到的文件存儲到檢測目錄下,該檢測目錄可以為某個隨機產(chǎn)生的目錄;另外,通信代理進程將樣本文件存儲到臨時目錄下。

步驟S204,通信代理進程啟動調(diào)度管控進程。

通信代理進程發(fā)送啟動命令,用于啟動調(diào)度管控進程。

步驟S205,通信代理進程創(chuàng)建消息通信線程,建立與調(diào)度管控進程之間的通信連接。

在調(diào)度管控進程啟動后,通信代理進程創(chuàng)建消息通信線程,可選地,通過RPC(Remote Procedure Call Protocol,遠程過程調(diào)用協(xié)議)與調(diào)度管控進程建立通信連接。這里,RPC是XMLRPCLIB庫中的機制,XML RPC是使用HTTP協(xié)議做為傳輸協(xié)議的遠程過程調(diào)用機制,使用XML文本的方式傳輸命令和數(shù)據(jù)。利用該通信連接,可將后續(xù)接收到的來自于調(diào)度管控進程的消息數(shù)據(jù)包實時轉(zhuǎn)發(fā)至虛擬機外部主機。

步驟S206,調(diào)度管控進程初始化自身功能。

在調(diào)度管控進程啟動后,調(diào)度管控進程獲取樣本文件存儲路徑,識別樣本文件類型。接著,調(diào)度管控進程讀取自身關(guān)聯(lián)的通用檢測配置文件,根據(jù)樣本文件類型選擇檢測模式和各檢測功能點,初始化自身各功能。除此之外,調(diào)度管控進程根據(jù)通用檢測配置文件中的配置選項選擇超時限制條件,其中超時限制條件具體限制了核心檢測進程執(zhí)行檢測的時長。通過配置超時限制條件,避免后續(xù)針對某個樣本文件的檢測占用過長時間,提升檢測的效率。

步驟S207,調(diào)度管控進程創(chuàng)建屏幕截取線程和/或鼠標模擬點擊線程。

可選地,調(diào)度管控進程創(chuàng)建屏幕截取線程和/或鼠標模擬點擊線程。其中屏幕截取線程的作用是對虛擬機所在的服務(wù)器的屏幕進行截圖,截取到的屏幕圖像可通過通信代理進程發(fā)送給虛擬機外部主機。鼠標模擬點擊線程的作用是隨機針對屏幕坐標模擬鼠標點擊操作,以及針對特定控件模擬鼠標點擊操作。

步驟S208,調(diào)度管控進程創(chuàng)建針對樣本文件的目標檢測配置文件,啟動輔助檢測進程,并將樣本文件的存儲路徑通過參數(shù)的方式傳遞給輔助檢測進程。

調(diào)度管控進程通過讀取通用檢測配置文件,對其中的配置選項進行選擇和配置,得到針對樣本文件的目標檢測配置文件。針對于不同類型的樣本文件,檢測模式和配置的檢測功能點有所不同,調(diào)度管控進程可為不同類型的樣本文件創(chuàng)建定制的目標檢測配置文件。而后,調(diào)度管控進程啟動輔助檢測進程,將樣本文件的存儲路徑通過命令行參數(shù)的方式傳遞給輔助檢測進程。

步驟S209,屏幕截取線程每隔預(yù)定時間截取屏幕圖像,將截取的屏幕圖像實時發(fā)送給通信代理進程。

步驟S210,鼠標模擬點擊線程隨機針對屏幕坐標模擬鼠標點擊操作,以及針對特定控件模擬鼠標點擊操作。

步驟S211,輔助檢測進程根據(jù)目標檢測配置文件進行初始化,利用目標檢測配置文件控制各檢測功能點的開關(guān)。

輔助檢測進程通過解析命令行參數(shù)和目標檢測配置文件,對自身功能進行初始化。具體地,輔助檢測進程解析得到樣本文件存儲路徑、檢測模式、各檢測功能點、以及其它一些檢測功能配置選項等基礎(chǔ)信息,計算樣本文件的MD5,控制各檢測功能點的開關(guān)。通過計算得到的樣本文件的MD5,可將后續(xù)檢測過程中產(chǎn)生的樣本數(shù)據(jù)與任務(wù)數(shù)據(jù)相關(guān)聯(lián),一個樣本文件可能對應(yīng)多個檢測任務(wù)。通過MD5還可以將樣本數(shù)據(jù)與木馬信息、VT、元查殺引擎相關(guān)聯(lián)。另外,通過MD5還可以將統(tǒng)一存儲的URL、木馬、APT類樣本進行分類展示。

步驟S212,輔助檢測進程加載核心檢測進程的驅(qū)動程序,以啟動核心檢測進程。

步驟S213,輔助檢測進程通過IO控制碼的方式發(fā)送樣本文件的相關(guān)信息以及各檢測功能點的開關(guān)信息。

輔助檢測進程通過IO控制碼的方式向核心檢測進程發(fā)送樣本文件的相關(guān)信息以及各檢測功能點的開關(guān)信息,以開啟內(nèi)核層漏洞利用行為的監(jiān)控。

步驟S214,輔助檢測進程啟動樣本進程,使樣本進程運行樣本文件。

步驟S215,核心檢測進程執(zhí)行初始化操作。

在核心檢測進程的驅(qū)動程序加載時,初始化驅(qū)動程序所需的相關(guān)數(shù)據(jù)結(jié)構(gòu)對象和變量,這些相關(guān)數(shù)據(jù)結(jié)構(gòu)對象和變量與各功能檢測點密切關(guān)聯(lián)。

步驟S216,核心檢測進程創(chuàng)建日志記錄線程。

為了便于記錄檢測過程,創(chuàng)建日志記錄線程,用于記錄檢測過程中產(chǎn)生的日志。

步驟S217,核心檢測進程接收輔助檢測進程通過IO控制碼的方式發(fā)送的樣本文件的相關(guān)信息以及各檢測功能點的開關(guān)信息。

核心檢測進程接收輔助檢測進程發(fā)送的各種IO控制碼,對其進行解析獲取樣本文件的相關(guān)信息以及各檢測功能點的開關(guān)信息。針對各檢測功能點的開關(guān)信息,控制開啟相應(yīng)檢測功能點的監(jiān)控。

步驟S218,核心檢測進程執(zhí)行漏洞檢測。

核心檢測進程可檢測的漏洞包含有關(guān)惡意網(wǎng)頁的URL以及有關(guān)各種漏洞、病毒、木馬、攻擊的樣本目標。除此之外,樣本目標還包括:0Day,NDay,暴露期0Day,位置掛馬信息,重要網(wǎng)站,位置掛馬跟進等等。其中,0Day是已經(jīng)被發(fā)現(xiàn)(有可能未被公開),而官方還沒有相關(guān)補丁的漏洞。這些漏洞被發(fā)現(xiàn)后立即被惡意利用,例如利用0Day可以修改注冊表、下載文件、運行系統(tǒng)文件。樣本目標的格式可以是文件、可執(zhí)行程序等,本發(fā)明對此不作限制。

步驟S219,日志記錄線程根據(jù)檢測結(jié)果生成日志文件,將日志文件存儲到日志目錄下。

后續(xù)鑒定引擎可讀取日志文件,在鑒定引擎里面(靜態(tài),動態(tài))將各種需要的日志信息抓取出來,對檢測結(jié)果進行分析和篩選,進行基本的規(guī)則判定。其中后臺的規(guī)則可達幾百條。所謂分析選概括來說,就是結(jié)合靜態(tài)和動態(tài)的日志數(shù)據(jù),利用規(guī)則和關(guān)聯(lián)分析,對樣本的危害級別進行鑒定(黑,白,灰)。而篩選的作用主要是過濾出命中了利用檢測行為特征的樣本,以及有些高可疑行為特征的樣本,按照不同組的需求,對數(shù)據(jù)進行分發(fā)。

步驟S220,在上述檢測過程中,實時判斷是否滿足超時限制條件,若是,則結(jié)束檢測過程,將檢測結(jié)果打包為數(shù)據(jù)包發(fā)送給通信代理進程,以供通信代理進程將數(shù)據(jù)包發(fā)送給虛擬機外部主機。

本實施例提供的基于虛擬機的內(nèi)核漏洞檢測方法在虛擬機沙箱隔離環(huán)境下運行,通過通信代理進程實現(xiàn)與虛擬機外部主機的數(shù)據(jù)交互和文件傳遞,借助調(diào)度管控進程和輔助檢測進程來輔助核心檢測進程實現(xiàn)樣本文件的檢測。本方法將內(nèi)核漏洞的檢測與外部隔離,為可疑樣本提供了一個封閉的檢測環(huán)境,即使可疑樣本確實存在漏洞,也不會對服務(wù)器側(cè)造成損害,提供了一種安全且高效地內(nèi)核漏洞檢測機制。本方法中,調(diào)度管控進程根據(jù)通用檢測配置文件中的配置選項選擇超時限制條件,通過配置超時限制條件,避免后續(xù)針對某個樣本文件的檢測占用過長時間,提升檢測的效率。調(diào)度管控進程創(chuàng)建屏幕截取線程和/或鼠標模擬點擊線程,能將服務(wù)器屏幕呈現(xiàn)的圖像傳遞給虛擬機外部主機,供虛擬機外部主機的用戶查看檢測過程的進展和具體情況,可視化效果良好。

圖3示出了根據(jù)本發(fā)明另一個實施例的基于虛擬機的內(nèi)核漏洞檢測方法的流程圖。本實施例主要是對上述核心檢測進程的工作過程進行詳細闡述,并詳細描述了核心檢測過程執(zhí)行漏洞檢測的具體內(nèi)容。但需要說明的是,本實施例的方法是實現(xiàn)漏洞檢測的獨立方案,它可以不依賴于前述實施例描述的環(huán)境和前提下實現(xiàn)。本實施例的方法在虛擬機沙箱隔離環(huán)境下運行,如圖3所示,該方法包括如下步驟:

步驟S301,加載驅(qū)動程序。

在核心檢測進程的驅(qū)動程序加載時,初始化驅(qū)動程序所需的相關(guān)數(shù)據(jù)結(jié)構(gòu)對象和變量。記錄至少一個系統(tǒng)進程的進程ID,記錄HAL例程地址表(HalDispatchTable)中存儲的至少一項關(guān)鍵函數(shù)指針值,例如HALQuerySystemInformatica等函數(shù)指針值。

步驟S302,接收用戶層進程發(fā)送的樣本文件的相關(guān)信息以及各檢測功能點的開關(guān)信息。

本實施例中,用戶層進程可以指的是上述實施例中描述的輔助檢測進程。核心檢測進程接收輔助檢測進程發(fā)送的各種IO控制碼,對其進行解析獲取樣本文件的相關(guān)信息以及各檢測功能點的開關(guān)信息。

步驟S303,根據(jù)各檢測功能點的開關(guān)信息開啟內(nèi)核層行為監(jiān)控總控開關(guān)。

步驟S304,當系統(tǒng)創(chuàng)建新進程時,將新進程添加到進程創(chuàng)建記錄名單中。

當系統(tǒng)啟動樣本進程來運行樣本文件時,樣本進程被認定為所創(chuàng)建的新進程,將樣本進程添加到進程創(chuàng)建記錄名單中。

步驟S305,對新進程的內(nèi)核層各操作行為進行檢測。

本實施例通過掛鉤技術(shù)實現(xiàn)對新進程的內(nèi)核層各操作行為的檢測。具體地,在核心檢測進程接收到輔助檢測進程發(fā)送的IO控制碼之后,對其進行解析識別出“內(nèi)核利用監(jiān)控”的標記,然后根據(jù)傳入緩沖區(qū)(Buffer)的數(shù)據(jù),選擇進入對應(yīng)的分發(fā)處理例程中。根據(jù)樣本文件的相關(guān)信息以及各檢測功能點的開關(guān)信息,掛鉤(Hook)SSDT(System Services Descriptor Table,系統(tǒng)服務(wù)描述符表)中針對各功能檢測點的指定API和NtQueryIntervalProfile。

利用鉤子,在系統(tǒng)調(diào)用指定API和NtQueryIntervalProfile之前,執(zhí)行自定義的函數(shù),實現(xiàn)對內(nèi)核層各操作行為的檢測。

步驟S306,根據(jù)檢測結(jié)果生成日志文件,將日志文件存儲到日志目錄下。

本實施例提供的基于虛擬機的內(nèi)核漏洞檢測方法在虛擬機沙箱隔離環(huán)境下運行,根據(jù)用戶層進程發(fā)送的樣本文件的相關(guān)信息以及各檢測功能點的開關(guān)信息,開啟內(nèi)核層行為監(jiān)控總控開關(guān);監(jiān)控系統(tǒng)創(chuàng)建的新進程,對新進程的內(nèi)核層各操作行為進行檢測。本方法將內(nèi)核漏洞的檢測與外部隔離,為可疑樣本提供了一個封閉的檢測環(huán)境,即使可疑樣本確實存在漏洞,也不會對服務(wù)器側(cè)造成損害,提供了一種安全且高效地內(nèi)核漏洞檢測機制。

圖4示出了根據(jù)本發(fā)明另一個實施例的基于虛擬機的內(nèi)核漏洞檢測方法的流程圖。本實施例在圖3所示的方法基礎(chǔ)上,進一步詳細闡述了核心檢測進程的工作過程,如圖4所示,該方法包括如下步驟:

步驟S401,加載驅(qū)動程序。

在核心檢測進程的驅(qū)動程序加載時,初始化驅(qū)動程序所需的相關(guān)數(shù)據(jù)結(jié)構(gòu)對象和變量。記錄至少一個系統(tǒng)進程的進程ID,記錄HAL例程地址表(HalDispatchTable)中存儲的至少一項關(guān)鍵函數(shù)指針值,例如HALQuerySystemInformatica等函數(shù)指針值。

步驟S402,創(chuàng)建日志記錄線程。

為了便于記錄檢測過程,創(chuàng)建日志記錄線程,用于記錄檢測過程中產(chǎn)生的日志。

步驟S403,接收用戶層進程通過IO控制碼發(fā)送的樣本文件的相關(guān)信息以及各檢測功能點的開關(guān)信息。

本實施例中,用戶層進程可以指的是上述實施例中描述的輔助檢測進程。核心檢測進程接收輔助檢測進程發(fā)送的各種IO控制碼,對其進行解析獲取樣本文件的相關(guān)信息以及各檢測功能點的開關(guān)信息。

具體地,核心檢測進程通過解析IO控制碼識別出“內(nèi)核利用監(jiān)控”的標記,然后根據(jù)傳入緩沖區(qū)(Buffer)的數(shù)據(jù),選擇進入對應(yīng)的分發(fā)處理例程中。

步驟S404,根據(jù)樣本文件的相關(guān)信息以及各檢測功能點的開關(guān)信息,掛鉤SSDT中針對各功能檢測點的指定API和NtQueryIntervalProfile。

本實施例通過掛鉤技術(shù)實現(xiàn)對新進程的內(nèi)核層各操作行為的檢測。根據(jù)樣本文件的相關(guān)信息以及各檢測功能點的開關(guān)信息,掛鉤SSDT中針對各功能檢測點的指定API和NtQueryIntervalProfile。所掛鉤的API具體為針對內(nèi)存、特權(quán)、注冊表、進程/線程、文件等操作的關(guān)鍵NTAPI。而且,設(shè)置進程創(chuàng)建通知例程,在系統(tǒng)有新的進程創(chuàng)建時,進入進程創(chuàng)建通知例程執(zhí)行相關(guān)操作。

步驟S405,根據(jù)各檢測功能點的開關(guān)信息開啟內(nèi)核層行為監(jiān)控總控開關(guān)。

步驟S406,當系統(tǒng)創(chuàng)建新進程時,將新進程添加到進程創(chuàng)建記錄名單中。

當系統(tǒng)創(chuàng)建新進程時,首先進入進程創(chuàng)建通知例程,在該例程中記錄所創(chuàng)建的新進程的屬性值,例如:Privileges、UserSID、OwnerSID等屬性值。然后,將新進程添加到進程創(chuàng)建記錄名單中。

步驟S407,對新進程的內(nèi)核層各操作行為進行檢測。

當新進程調(diào)用NtQueryIntervalProfile時,先判斷該新進程是否在進程創(chuàng)建記錄名單中,若否,則將該新進程添加到進程創(chuàng)建記錄名單中;當新進程調(diào)用前述指定API時,判斷該新進程是否在進程創(chuàng)建記錄名單中,若否,則將該新進程添加到進程創(chuàng)建記錄名單中。

在確保新進程添加到進程創(chuàng)建記錄名單的情況下,利用掛鉤技術(shù),對新進程的內(nèi)核層各操作行為進行檢測,具體包含以下幾種實施方式:

(1)HalDispatchTable檢測

利用掛鉤技術(shù),在調(diào)用NtQueryIntervalProfile之前,獲取HalDispatchTable中存儲的至少一項關(guān)鍵函數(shù)指針值;將所獲取的HalDispatchTable中存儲的至少一項關(guān)鍵函數(shù)指針值與加載驅(qū)動程序過程中所記錄的HalDispatchTable中存儲的至少一項關(guān)鍵函數(shù)指針值進行比對;若至少一項關(guān)鍵函數(shù)指針值比對不一致,則檢測出新進程存在提權(quán)行為。

(2)Token替換檢測

利用掛鉤技術(shù),在調(diào)用相應(yīng)的指定API之前,根據(jù)加載驅(qū)動程序過程中所記錄的至少一個系統(tǒng)進程的進程ID獲取至少一個系統(tǒng)進程的EPROCESS結(jié)構(gòu)地址,同時獲取新進程的EPROCESS結(jié)構(gòu)地址;將新進程的EPROCESS結(jié)構(gòu)地址中的Token域的指針值與至少一個系統(tǒng)進程的EPROCESS結(jié)構(gòu)地址中的Token域的指針值進行比對;若新進程的EPROCESS結(jié)構(gòu)地址中的Token域的指針值與其中一個系統(tǒng)進程的EPROCESS結(jié)構(gòu)地址中的Token域的指針值比對一致,則檢測出新進程存在提權(quán)行為。

這里,指定API可以為:創(chuàng)建進程(NtCreateUserProcess)、對其它進程內(nèi)存創(chuàng)建以及讀寫(NtAllocateVirtualMemory/NtProtectVirtualMemory/NtReadVirtualMemory/NtWriteVirtualMemory)、打開其它進程/線程(NtOpenThread/NtOpenProcess/NtSetContextThread)、注冊表讀寫、文件讀寫等等。

(3)Token屬性值檢測

利用掛鉤技術(shù),在調(diào)用相應(yīng)的指定API之前,獲取所述新進程的屬性值;將所獲取的新進程的屬性值與在進程創(chuàng)建通知例程中所記錄的新進程的屬性值進行比對;若比對不一致,則檢測出新進程存在提權(quán)行為。

在具體比對時,將獲取的新進程的Privileges、TokenUser、和/或TokenOwner與在進程創(chuàng)建通知例程中所記錄的新進程的Privileges、TokenUser、和/或TokenOwner進行比對,若其中有一項比對不一致,則檢測出新進程存在提權(quán)行為。

這里,指定API指的是與Token相關(guān)的函數(shù)。

(4)Token屬性值置空檢測

利用掛鉤技術(shù),在調(diào)用相應(yīng)的指定API之前,查詢新進程的EPROCESS結(jié)構(gòu)地址中的Token域內(nèi)的ACL是否被置空;若是,則檢測出新進程存在提權(quán)行為。

(5)內(nèi)核ROP(Return Oriented Programming,基于代碼復(fù)用技術(shù)的新型攻擊)檢測

目前常見的內(nèi)核ROP用于關(guān)閉SMEP(Supervisor Mode Execution Protection,監(jiān)督模式執(zhí)行保護)或修改CR4寄存器,本方法利用掛鉤技術(shù),在調(diào)用棧對CR4寄存器進行操作之前,查看調(diào)用棧是否為允許調(diào)用CR4寄存器修改指令的調(diào)用棧,或者,檢測調(diào)用棧是否調(diào)用禁用SMEP的指令;若是,則檢測出新進程存在提權(quán)行為。

(6)Bitmap利用檢測

對于利用Bitmap來將有限制的內(nèi)核地址寫操作轉(zhuǎn)化為內(nèi)核任意地址讀寫操作的行為,對這種行為進行檢測,若存在,則檢測出所述新進程存在提權(quán)行為。

步驟S408,根據(jù)檢測結(jié)果生成日志文件,將日志文件存儲到日志目錄下。

按照預(yù)設(shè)格式打點生成日志,將日志插入到日志緩沖清單中。在日志記錄線程中,持續(xù)不斷地檢查日志緩沖清單是否有新的日志插入,若有,則將新的日志追加寫入到配置選項中指定路徑的日志文件中,并釋放日志緩沖清單中該新的日志的節(jié)點。

本方案打點檢出日志生成形式為緩存方式打點。所檢出的日志被暫存于日志緩沖清單中。日志記錄線程輪詢該日志緩沖清單并依照FIFO(先進先出)的方式依次處理各日志節(jié)點,將日志內(nèi)容追加寫入日志文件中,在檢測完成后由外部相關(guān)調(diào)度模塊進程獲取并處理該日志文件。

本方案的打點數(shù)據(jù)包含:環(huán)境和文件基本信息,檢出功能點觸發(fā)數(shù)據(jù)等。環(huán)境和文件基本信息以流水日志等形式輸出,檢出功能點觸發(fā)數(shù)據(jù)以行為日志的形式輸出。其中環(huán)境和文件基本信息包含:樣本進程文件MD5,樣本文件路徑,以及主要系統(tǒng)模塊名稱和文件版本等。對于HalDispatchTable檢測,檢出功能點觸發(fā)數(shù)據(jù)包含:進程ID、線程ID、被篡改函數(shù)的名稱、篡改后的指針值、檢出時所在Hooked API(NtQueryIntervalProfile)等;對于Token替換檢測,檢出功能點觸發(fā)數(shù)據(jù)包含:進程ID、線程ID、Token地址、命中系統(tǒng)進程名、檢出時所在Hooked API等。對于Token屬性值檢測,檢出功能點觸發(fā)數(shù)據(jù)包含:進程ID、線程ID、Privileges掩碼描述序列、UserSID、OwnerSID、檢出時所在Hooked API等。其它檢測方式的檢出功能點觸發(fā)數(shù)據(jù)與之類似,在此不再贅述。

本實施例提供的基于虛擬機的內(nèi)核漏洞檢測方法在虛擬機沙箱隔離環(huán)境下運行,根據(jù)用戶層進程發(fā)送的樣本文件的相關(guān)信息以及各檢測功能點的開關(guān)信息,開啟內(nèi)核層行為監(jiān)控總控開關(guān);監(jiān)控系統(tǒng)創(chuàng)建的新進程,對新進程的內(nèi)核層各操作行為進行檢測。本方法將內(nèi)核漏洞的檢測與外部隔離,為可疑樣本提供了一個封閉的檢測環(huán)境,即使可疑樣本確實存在漏洞,也不會對服務(wù)器側(cè)造成損害,提供了一種安全且高效地內(nèi)核漏洞檢測機制。本方法通過掛鉤技術(shù),針對用戶層進程提供的各檢測功能點對應(yīng)的API設(shè)置鉤子函數(shù),在調(diào)用API之前,執(zhí)行檢測操作,能及時有效地發(fā)現(xiàn)提權(quán)和利用等問題,提升了內(nèi)核漏洞檢測的效率。

圖5示出了根據(jù)本發(fā)明一個實施例的基于虛擬機的內(nèi)核漏洞檢測進程保護方法的流程圖。本實施例提供的方法主要是用于保護在虛擬機沙箱隔離環(huán)境下運行的檢測進程的地址空間,防止被沙箱逃逸的惡意樣本進程訪問、釋放或泄露,避免機密信息失竊。如圖5所示,該方法包括如下步驟:

步驟S501,獲取各檢測子進程的相關(guān)信息,將各檢測子進程的相關(guān)信息寫入進程過濾名單中。

在輔助檢測進程加載核心檢測進程的驅(qū)動程序之后,讀取目標檢測配置文件中的相關(guān)字段,解析得到一個或多個檢測子進程的進程名,根據(jù)進程名獲取各檢測子進程的進程ID,通過IO控制碼將各檢測子進程的進程ID發(fā)送給核心檢測進程。

核心檢測進程接收輔助檢測進程(用戶層進程)通過IO控制碼發(fā)送的各檢測子進程的進程ID。具體地,核心檢測進程在接收到標記為“進程ID過濾”的IO控制碼后,從輸入緩沖區(qū)中獲取當次傳遞的進程ID,根據(jù)進程ID獲取檢測子進程的相關(guān)信息。本方法中,相關(guān)信息可具體為EPROCESS結(jié)構(gòu)地址。核心檢測進程獲取各檢測子進程的EPROCESS結(jié)構(gòu)地址之后,將各檢測子進程的EPROCESS結(jié)構(gòu)地址寫入進程過濾名單中。

步驟S502,利用掛鉤技術(shù),在調(diào)用指定API之前,獲取當前上下背景文進程的相關(guān)信息和操作目標進程的相關(guān)信息。

本方法對關(guān)于進程、線程、內(nèi)存地址空間操作的指定API進行掛鉤,在Hook指定API后,在自定義函數(shù)中實現(xiàn)步驟S502-步驟S504。在步驟S502中,獲取當前上下背景文進程的EPROCESS結(jié)構(gòu)地址和操作目標進程的EPROCESS結(jié)構(gòu)地址。

步驟S503,判斷操作目標進程的相關(guān)信息是否記錄在進程過濾名單中,且當前上下背景文進程的相關(guān)信息是否未記錄在進程過濾名單中,若是,則執(zhí)行步驟S504;若否,則執(zhí)行步驟S505。

可選地,判斷操作目標進程的EPROCESS結(jié)構(gòu)地址是否記錄在進程過濾名單中,且當前上下背景文進程的EPROCESS結(jié)構(gòu)地址是否未記錄在進程過濾名單中。

步驟S504,終止調(diào)用指定API。

若判斷出操作目標進程的EPROCESS結(jié)構(gòu)地址記錄在進程過濾名單中,且當前上下背景文進程的EPROCESS結(jié)構(gòu)地址未記錄在進程過濾名單中,則表明存在其它進程試圖訪問某個檢測子進程,則需要進行阻止。例如,返回拒絕訪問的狀態(tài)碼,終止調(diào)用指定API。

步驟S505,繼續(xù)調(diào)用指定API,向調(diào)用者返回指定API的返回值。

若判斷出操作目標進程的EPROCESS結(jié)構(gòu)地址未記錄在進程過濾名單中,或者,當前上下背景文進程的EPROCESS結(jié)構(gòu)地址記錄在進程過濾名單中,則繼續(xù)調(diào)用指定API,向調(diào)用者返回指定API的返回值。

根據(jù)本實施例提供的基于虛擬機的內(nèi)核漏洞檢測進程保護方法,將各檢測子進程的相關(guān)信息寫入進程過濾名單中,在調(diào)用指定API之前,利用掛鉤獲取當前上下背景文進程的相關(guān)信息和操作目標進程的相關(guān)信息,通過將當前上下背景文進程的相關(guān)信息和操作目標進程的相關(guān)信息與進程過濾名單相匹配,判定是否終止調(diào)用指定API。利用本方法,可保護在虛擬機沙箱隔離環(huán)境下運行的檢測進程的地址空間,防止被沙箱逃逸的惡意樣本進程訪問,避免機密信息失竊,提升在虛擬機沙箱隔離環(huán)境下內(nèi)核漏洞檢測的安全性。

圖6示出了根據(jù)本發(fā)明一個實施例的基于虛擬機的內(nèi)核漏洞檢測文件保護方法的流程圖。本實施例提供的方法主要是用于保護檢測過程中所產(chǎn)生的檢測文件,如日志文件等,防止被沙箱逃逸的惡意樣本進程訪問、篡改、加密或損毀,避免因此導(dǎo)致的檢測失敗或結(jié)果異常,維護沙箱系統(tǒng)的穩(wěn)定和性能。如圖6所示,該方法包括如下步驟:

步驟S601,獲取各檢測子進程的相關(guān)信息,將各檢測子進程的相關(guān)信息寫入進程過濾名單中。

在輔助檢測進程加載核心檢測進程的驅(qū)動程序之后,讀取目標檢測配置文件中的相關(guān)字段,解析得到一個或多個檢測子進程的進程名,根據(jù)進程名獲取各檢測子進程的進程ID,通過IO控制碼將各檢測子進程的進程ID發(fā)送給核心檢測進程。

核心檢測進程接收輔助檢測進程(用戶層進程)通過IO控制碼發(fā)送的各檢測子進程的進程ID。具體地,核心檢測進程在接收到標記為“進程ID過濾”的IO控制碼后,從輸入緩沖區(qū)中獲取當次傳遞的進程ID,根據(jù)進程ID獲取檢測子進程的相關(guān)信息。本方法中,相關(guān)信息可具體為EPROCESS結(jié)構(gòu)地址。核心檢測進程獲取各檢測子進程的EPROCESS結(jié)構(gòu)地址之后,將各檢測子進程的EPROCESS結(jié)構(gòu)地址寫入進程過濾名單中。

步驟S602,獲取檢測文件的存儲路徑信息,將檢測文件的存儲路徑信息寫入私有目錄名單中。

在輔助檢測進程加載核心檢測進程的驅(qū)動程序之后,讀取目標檢測配置文件中的相關(guān)字段,解析得到一個或多個檢測文件的存儲路徑,通過IO控制碼將各檢測文件的存儲路徑發(fā)送給核心檢測進程。

核心檢測進程接收輔助檢測進程(用戶層進程)通過IO控制碼發(fā)送的各檢測文件的存儲路徑。具體地,核心檢測進程在接收到標記為“私有目錄”的IO控制碼后,從輸入緩沖區(qū)中獲取當次傳遞的檢測文件的存儲路徑,根據(jù)檢測文件的存儲路徑構(gòu)造出字符串對象作為檢測文件的存儲路徑信息,將檢測文件的存儲路徑信息寫入私有目錄名單中。

步驟S603,當產(chǎn)生文件訪問操作時,判斷文件訪問對象的存儲路徑信息是否記錄在私有目錄名單中。

本實施例實現(xiàn)檢測文件保護主要是在IRP分發(fā)函數(shù)的函數(shù)體中實現(xiàn)。例如,在READ,WRITE,CREATE,SET_INFORMATION,DIRECTORY_CONTROL等分發(fā)函數(shù)的自實現(xiàn)函數(shù)體中,實現(xiàn)判斷文件訪問對象的存儲路徑信息是否記錄在私有目錄名單中,若是,則執(zhí)行步驟S604;若否,執(zhí)行步驟S606。

步驟S604,判斷當前上下背景文進程的相關(guān)信息是否記錄在所述進程過濾名單中。

若判斷出文件訪問對象的存儲路徑信息記錄在私有目錄名單中,則進一步判斷當前上下背景文進程的相關(guān)信息是否記錄在進程過濾名單中,具體地,判斷當前上下背景文進程的EPROCESS結(jié)構(gòu)地址是否記錄在進程過濾名單中,若是,則執(zhí)行步驟S606;若否,則執(zhí)行步驟S605。

步驟S605,若判斷出當前上下背景文進程的相關(guān)信息未記錄在進程過濾名單中,則拒絕文件訪問操作。

若文件訪問對象的存儲路徑信息記錄在私有目錄名單,而當前上下背景文進程的相關(guān)信息未記錄在進程過濾名單中,表明有其它進程試圖訪問檢測文件,則IPR不再向下分發(fā),拒絕文件訪問操作。

步驟S606,若判斷出文件訪問對象的存儲路徑信息未記錄在私有目錄名單中,或者,判斷出當前上下背景文進程的相關(guān)信息記錄在所述進程過濾名單中,則繼續(xù)響應(yīng)文件訪問操作。

若文件訪問對象的存儲路徑信息未記錄在私有目錄名單,表明訪問的不是需要保護的檢測文件,則IPR繼續(xù)向下分發(fā),響應(yīng)文件訪問操作。若文件訪問對象的存儲路徑信息記錄在私有目錄名單,且當前上下背景文進程的相關(guān)信息記錄在進程過濾名單中,表明是檢測子進程試圖訪問檢測文件,則IPR繼續(xù)向下分發(fā),響應(yīng)文件訪問操作。

根據(jù)本實施例提供的基于虛擬機的內(nèi)核漏洞檢測文件保護方法,將各檢測子進程的相關(guān)信息寫入進程過濾名單中,將檢測文件的存儲路徑信息寫入私有目錄名單中,當產(chǎn)生文件訪問操作時,將文件訪問對象的存儲路徑信息和當前上下背景文進程的相關(guān)信息分別與進程過濾名單和私有目錄名單相匹配,判定是否拒絕文件訪問操作。利用本方法,可保護在虛擬機沙箱隔離環(huán)境下產(chǎn)生的檢測文件,防止被沙箱逃逸的惡意樣本進程訪問、篡改、加密或損毀,避免因此導(dǎo)致的檢測失敗或結(jié)果異常,維護沙箱系統(tǒng)的穩(wěn)定和性能。

圖7示出了根據(jù)本發(fā)明一個實施例的基于虛擬機的內(nèi)核漏洞檢測裝置的功能框圖。本裝置具體是在服務(wù)器端虛擬機沙箱隔離環(huán)境下運行,用于針對指定的樣本文件進行動態(tài)的內(nèi)核漏洞利用檢測。如圖7所示,該裝置包括:通信代理模塊701,調(diào)度管控模塊702,輔助檢測模塊703,核心檢測模塊704。

通信代理模塊701,適于啟動通信代理進程,使通信代理進程監(jiān)聽指定端口,等待并接收虛擬機外部主機傳輸?shù)臋z測包和樣本文件,將檢測包和樣本文件分別存儲到檢測目錄和臨時目錄下。通信代理進程是負責與虛擬機外部主機進行數(shù)據(jù)交互、文件傳遞的進程。當服務(wù)端虛擬機操作系統(tǒng)開機時,通信代理進程隨之自啟動。通信代理進程監(jiān)聽指定端口,等待并接收虛擬機外部主機的相關(guān)進程傳輸?shù)臋z測包和樣本文件。通信代理進程對檢測包進行解壓操作,將解壓得到的文件存儲到檢測目錄下;另外,通信代理進程將樣本文件存儲到臨時目錄下。隨后,通信代理線程啟動檢測包中的調(diào)度管控進程。

調(diào)度管控模塊702,適于啟動檢測包中的調(diào)度管控進程,使調(diào)度管控進程獲取樣本文件存儲路徑,識別樣本文件類型,根據(jù)通用檢測配置文件中的配置選項選擇檢測模式和各檢測功能點,以創(chuàng)建針對所述樣本文件的目標檢測配置文件。在調(diào)度管控進程啟動之后,調(diào)度管控進程獲取樣本文件存儲路徑,識別樣本文件類型。接著,調(diào)度管控進程讀取自身關(guān)聯(lián)的通用檢測配置文件,根據(jù)樣本文件類型選擇檢測模式和各檢測功能點,初始化自身各功能,創(chuàng)建針對樣本文件的目標檢測配置文件。隨后,調(diào)度管控進程啟動輔助檢測進程,并將樣本文件的存儲路徑(可為URL)通過參數(shù)的方式傳遞給輔助檢測進程。

輔助檢測模塊703,適于啟動輔助檢測進程,使輔助檢測進程利用目標檢測配置文件控制各檢測功能點的開關(guān)。在輔助檢測進程啟動之后,輔助檢測進程根據(jù)目標檢測配置文件進行初始化,加載核心檢測進程的驅(qū)動程序,利用目標檢測配置文件控制各檢測功能點的開關(guān)。

核心檢測模塊704,適于啟動核心檢測進程,使核心檢測進程接收輔助檢測進程發(fā)送的樣本文件的相關(guān)信息以及各檢測功能點的開關(guān)信息,執(zhí)行漏洞檢測,根據(jù)檢測結(jié)果生成日志文件,將日志文件存儲到日志目錄下。在輔助檢測進程加載核心檢測進程的驅(qū)動程序后,核心檢測進程啟動。核心檢測進程接收輔助檢測進程發(fā)送的樣本文件的相關(guān)信息以及各檢測功能點的開關(guān)信息,執(zhí)行初始化操作。而后,根據(jù)樣本文件的相關(guān)信息以及各檢測功能點的開關(guān)信息執(zhí)行樣本文件的檢測,根據(jù)檢測結(jié)果生成日志文件,將日志文件存儲到日志目錄下。

通信代理模塊701進一步適于:使通信代理進程創(chuàng)建消息通信線程,建立與所述調(diào)度管控進程之間的通信連接。在調(diào)度管控進程啟動后,通信代理進程創(chuàng)建消息通信線程,可選地,通過RPC與調(diào)度管控進程建立通信連接。利用該通信連接,可將后續(xù)接收到的來自于調(diào)度管控進程的消息數(shù)據(jù)包實時轉(zhuǎn)發(fā)至虛擬機外部主機。

調(diào)度管控模塊702進一步適于:使調(diào)度管控進程創(chuàng)建屏幕截取線程,每隔預(yù)定時間截取屏幕圖像;利用調(diào)度管控進程與通信代理進程之間建立的通信連接,將截取的屏幕圖像實時發(fā)送給所述通信代理進程。

通信代理模塊701進一步適于:使通信代理進程將所述截取的屏幕圖像發(fā)送給虛擬機外部主機。

調(diào)度管控模塊702進一步適于:使調(diào)度管控進程創(chuàng)建鼠標模擬點擊線程,隨機針對屏幕坐標模擬鼠標點擊操作,以及針對特定控件模擬鼠標點擊操作。

調(diào)度管控模塊702進一步適于:使調(diào)度管控進程根據(jù)通用檢測配置文件中的配置選項選擇超時限制條件;在執(zhí)行樣本文件的檢測過程中,判斷是否滿足超時限制條件,若是,則結(jié)束檢測過程,將檢測結(jié)果打包為數(shù)據(jù)包發(fā)送給所述通信代理進程,以供所述通信代理進程將所述數(shù)據(jù)包發(fā)送給虛擬機外部主機。

核心檢測模塊704進一步適于:使核心檢測進程接收所述輔助檢測進程通過IO控制碼的方式發(fā)送的樣本文件的相關(guān)信息以及各檢測功能點的開關(guān)信息。

本實施例提供的基于虛擬機的內(nèi)核漏洞檢測裝置在虛擬機沙箱隔離環(huán)境下運行,通過通信代理進程實現(xiàn)與虛擬機外部主機的數(shù)據(jù)交互和文件傳遞,借助調(diào)度管控進程和輔助檢測進程來輔助核心檢測進程實現(xiàn)樣本文件的檢測。本裝置將內(nèi)核漏洞的檢測與外部隔離,為可疑樣本提供了一個封閉的檢測環(huán)境,即使可疑樣本確實存在漏洞,也不會對服務(wù)器側(cè)造成損害,提供了一種安全且高效地內(nèi)核漏洞檢測機制。本裝置中,調(diào)度管控進程根據(jù)通用檢測配置文件中的配置選項選擇超時限制條件,通過配置超時限制條件,避免后續(xù)針對某個樣本文件的檢測占用過長時間,提升檢測的效率。調(diào)度管控進程創(chuàng)建屏幕截取線程和/或鼠標模擬點擊線程,能將服務(wù)器屏幕呈現(xiàn)的圖像傳遞給虛擬機外部主機,供虛擬機外部主機的用戶查看檢測過程的進展和具體情況,可視化效果良好。

圖8示出了根據(jù)本發(fā)明另一個實施例的基于虛擬機的內(nèi)核漏洞檢測裝置的功能框圖。該裝置在虛擬機沙箱隔離環(huán)境下運行,如圖8所示,該裝置包括:加載模塊801,接收模塊802,啟動模塊803,添加模塊804,檢測模塊805,日志存儲模塊806。

加載模塊801,適于加載驅(qū)動程序。加載模塊801在加載驅(qū)動程序時,初始化驅(qū)動程序所需的相關(guān)數(shù)據(jù)結(jié)構(gòu)對象和變量。記錄至少一個系統(tǒng)進程的進程ID,記錄HAL例程地址表(HalDispatchTable)中存儲的至少一項關(guān)鍵函數(shù)指針值,例如HALQuerySystemInformatica等函數(shù)指針值。

接收模塊802,適于接收用戶層進程發(fā)送的樣本文件的相關(guān)信息以及各檢測功能點的開關(guān)信息。本實施例中,用戶層進程可以指的是上述實施例中描述的輔助檢測進程。接收模塊802接收輔助檢測進程發(fā)送的各種IO控制碼,對其進行解析獲取樣本文件的相關(guān)信息以及各檢測功能點的開關(guān)信息。具體地,通過解析IO控制碼識別出“內(nèi)核利用監(jiān)控”的標記,然后根據(jù)傳入緩沖區(qū)(Buffer)的數(shù)據(jù),選擇進入對應(yīng)的分發(fā)處理例程中。

啟動模塊803,適于根據(jù)各檢測功能點的開關(guān)信息開啟內(nèi)核層行為監(jiān)控總控開關(guān)。

添加模塊804,適于當系統(tǒng)創(chuàng)建新進程時,將新進程添加到進程創(chuàng)建記錄名單中。

檢測模塊805,適于對所述新進程的內(nèi)核層各操作行為進行檢測。

日志存儲模塊806,適于根據(jù)檢測結(jié)果生成日志文件,將日志文件存儲到日志目錄下。

進一步的,該裝置還包括:掛鉤配置模塊807,適于根據(jù)樣本文件的相關(guān)信息以及各檢測功能點的開關(guān)信息,掛鉤SSDT中針對各功能檢測點的指定API和NtQueryIntervalProfile。本裝置通過掛鉤技術(shù)實現(xiàn)對新進程的內(nèi)核層各操作行為的檢測。根據(jù)樣本文件的相關(guān)信息以及各檢測功能點的開關(guān)信息,掛鉤SSDT中針對各功能檢測點的指定API和NtQueryIntervalProfile。所掛鉤的API具體為針對內(nèi)存、特權(quán)、注冊表、進程/線程、文件等操作的關(guān)鍵NTAPI。

進一步的,該裝置還包括:例程設(shè)置模塊808,適于設(shè)置進程創(chuàng)建通知例程;在所述進程創(chuàng)建通知例程中記錄所創(chuàng)建的新進程的屬性值。當系統(tǒng)創(chuàng)建新進程時,例程設(shè)置模塊808在進程創(chuàng)建通知例程中記錄所創(chuàng)建的新進程的屬性值,例如:Privileges、UserSID、OwnerSID等屬性值。

上述檢測模塊805進一步適于:利用掛鉤技術(shù),在調(diào)用NtQueryIntervalProfile之前,獲取HAL例程地址表中存儲的至少一項關(guān)鍵函數(shù)指針值;將所獲取的HAL例程地址表中存儲的至少一項關(guān)鍵函數(shù)指針值與加載驅(qū)動程序過程中所記錄的HAL例程地址表中存儲的至少一項關(guān)鍵函數(shù)指針值進行比對;若所述至少一項關(guān)鍵函數(shù)指針值比對不一致,則檢測出所述新進程存在提權(quán)行為。

上述檢測模塊805進一步適于:利用掛鉤技術(shù),在調(diào)用相應(yīng)的指定API之前,根據(jù)加載驅(qū)動程序過程中所記錄的至少一個系統(tǒng)進程的進程ID獲取至少一個系統(tǒng)進程的EPROCESS結(jié)構(gòu)地址,同時獲取所述新進程的EPROCESS結(jié)構(gòu)地址;將所述新進程的EPROCESS結(jié)構(gòu)地址中的Token域的指針值與至少一個系統(tǒng)進程的EPROCESS結(jié)構(gòu)地址中的Token域的指針值進行比對;若所述新進程的EPROCESS結(jié)構(gòu)地址中的Token域的指針值與其中一個系統(tǒng)進程的EPROCESS結(jié)構(gòu)地址中的Token域的指針值比對一致,則檢測出所述新進程存在提權(quán)行為。

上述檢測模塊805進一步適于:利用掛鉤技術(shù),在調(diào)用相應(yīng)的指定API之前,獲取所述新進程的屬性值;將所獲取的所述新進程的屬性值與在所述進程創(chuàng)建通知例程中所記錄的新進程的屬性值進行比對;若比對不一致,則檢測出所述新進程存在提權(quán)行為。

上述檢測模塊805進一步適于:將所述獲取的新進程的Privileges、TokenUser、和/或TokenOwner與在所述進程創(chuàng)建通知例程中所記錄的新進程的Privileges、UserSID、和/或OwnerSID進行比對。

上述檢測模塊805進一步適于:利用掛鉤技術(shù),在調(diào)用相應(yīng)的指定API之前,查詢所述新進程的EPROCESS結(jié)構(gòu)地址中的Token域內(nèi)的ACL是否被置空;若是,則檢測出所述新進程存在提權(quán)行為。

上述檢測模塊805進一步適于:利用掛鉤技術(shù),在調(diào)用棧對CR4寄存器進行操作之前,查看所述調(diào)用棧是否為允許調(diào)用CR4寄存器修改指令的調(diào)用棧,或者,檢測所述調(diào)用棧是否調(diào)用禁用SMEP的指令;若是,則檢測出所述新進程存在提權(quán)行為。

上述檢測模塊805進一步適于:檢測是否存在將有限制的內(nèi)核地址寫操作轉(zhuǎn)化為內(nèi)核任意地址讀寫操作的行為,若是,則檢測出所述新進程存在提權(quán)行為。

本實施例提供的基于虛擬機的內(nèi)核漏洞檢測裝置在虛擬機沙箱隔離環(huán)境下運行,根據(jù)用戶層進程發(fā)送的樣本文件的相關(guān)信息以及各檢測功能點的開關(guān)信息,開啟內(nèi)核層行為監(jiān)控總控開關(guān);監(jiān)控系統(tǒng)創(chuàng)建的新進程,對新進程的內(nèi)核層各操作行為進行檢測。本裝置將內(nèi)核漏洞的檢測與外部隔離,為可疑樣本提供了一個封閉的檢測環(huán)境,即使可疑樣本確實存在漏洞,也不會對服務(wù)器側(cè)造成損害,提供了一種安全且高效地內(nèi)核漏洞檢測機制。本裝置通過掛鉤技術(shù),針對用戶層進程提供的各檢測功能點對應(yīng)的API設(shè)置鉤子函數(shù),在調(diào)用API之前,執(zhí)行檢測操作,能及時有效地發(fā)現(xiàn)提權(quán)和利用等問題,提升了內(nèi)核漏洞檢測的效率。

圖9示出了根據(jù)本發(fā)明一個實施例的基于虛擬機的內(nèi)核漏洞檢測進程保護的功能框圖。本實施例提供的裝置主要是用于保護在虛擬機沙箱隔離環(huán)境下運行的檢測進程的地址空間,防止被沙箱逃逸的惡意樣本進程訪問、釋放或泄露,避免機密信息失竊。如圖9所示,該裝置包括:寫入模塊901,掛鉤處理模塊902,判斷模塊903,終止模塊904??蛇x地,還包括:接收模塊905和調(diào)用模塊906。

接收模塊905,適于接收用戶層進程發(fā)送的各檢測子進程的進程ID。

在輔助檢測進程加載核心檢測進程的驅(qū)動程序之后,讀取目標檢測配置文件中的相關(guān)字段,解析得到一個或多個檢測子進程的進程名,根據(jù)進程名獲取各檢測子進程的進程ID,通過IO控制碼將各檢測子進程的進程ID發(fā)送給核心檢測進程。

核心檢測進程內(nèi)部的接收模塊905接收輔助檢測進程(用戶層進程)通過IO控制碼發(fā)送的各檢測子進程的進程ID。具體地,接收模塊905在接收到標記為“進程ID過濾”的IO控制碼后,從輸入緩沖區(qū)中獲取當次傳遞的進程ID。

寫入模塊901,適于獲取各檢測子進程的相關(guān)信息,將各檢測子進程的相關(guān)信息寫入進程過濾名單中。

寫入模塊901根據(jù)進程ID獲取檢測子進程的相關(guān)信息。其中,相關(guān)信息可具體為EPROCESS結(jié)構(gòu)地址。寫入模塊901獲取各檢測子進程的EPROCESS結(jié)構(gòu)地址之后,將各檢測子進程的EPROCESS結(jié)構(gòu)地址寫入進程過濾名單中。

掛鉤處理模塊902,適于利用掛鉤技術(shù),在調(diào)用指定API之前,獲取當前上下背景文進程的相關(guān)信息和操作目標進程的相關(guān)信息。

掛鉤處理模塊902對關(guān)于進程、線程、內(nèi)存地址空間操作的指定API進行掛鉤,在Hook指定API后,在自定義函數(shù)中實現(xiàn)判斷模塊903和終止模塊904的功能。掛鉤處理模塊902首先獲取當前上下背景文進程的EPROCESS結(jié)構(gòu)地址和操作目標進程的EPROCESS結(jié)構(gòu)地址。

判斷模塊903,適于判斷所述操作目標進程的相關(guān)信息是否記錄在所述進程過濾名單中,且所述當前上下背景文進程的相關(guān)信息是否未記錄在所述進程過濾名單中。具體地,判斷模塊903判斷操作目標進程的EPROCESS結(jié)構(gòu)地址是否記錄在進程過濾名單中,且當前上下背景文進程的EPROCESS結(jié)構(gòu)地址是否未記錄在進程過濾名單中。

終止模塊904,適于若判斷模塊903判斷出操作目標進程的相關(guān)信息記錄在進程過濾名單中,且當前上下背景文進程的相關(guān)信息未記錄在進程過濾名單中,終止調(diào)用指定API。

調(diào)用模塊906,適于若判斷模塊903判斷出操作目標進程的相關(guān)信息未記錄在所述進程過濾名單中,或者,當前上下背景文進程的相關(guān)信息記錄在進程過濾名單中,則繼續(xù)調(diào)用指定API,向調(diào)用者返回所述指定API的返回值。

根據(jù)本實施例提供的基于虛擬機的內(nèi)核漏洞檢測進程保護裝置,將各檢測子進程的相關(guān)信息寫入進程過濾名單中,在調(diào)用指定API之前,利用掛鉤獲取當前上下背景文進程的相關(guān)信息和操作目標進程的相關(guān)信息,通過將當前上下背景文進程的相關(guān)信息和操作目標進程的相關(guān)信息與進程過濾名單相匹配,判定是否終止調(diào)用指定API。利用本裝置,可保護在虛擬機沙箱隔離環(huán)境下運行的檢測進程的地址空間,防止被沙箱逃逸的惡意樣本進程訪問,避免機密信息失竊,提升在虛擬機沙箱隔離環(huán)境下內(nèi)核漏洞檢測的安全性。

圖10示出了根據(jù)本發(fā)明一個實施例的基于虛擬機的內(nèi)核漏洞檢測文件保護的功能框圖。本實施例提供的裝置主要是用于保護檢測過程中所產(chǎn)生的檢測文件,如日志文件等,防止被沙箱逃逸的惡意樣本進程訪問、篡改、加密或損毀,避免因此導(dǎo)致的檢測失敗或結(jié)果異常,維護沙箱系統(tǒng)的穩(wěn)定和性能。如圖10所示,該裝置包括:第一寫入模塊1001,第二寫入模塊1002,第一判斷模塊1003,第二判斷模塊1004,拒絕模塊1005;可選地,該裝置還包括:接收模塊1006和響應(yīng)模塊1007。

接收模塊1006,適于接收用戶層進程發(fā)送的檢測文件的存儲路徑。

在輔助檢測進程加載核心檢測進程的驅(qū)動程序之后,讀取目標檢測配置文件中的相關(guān)字段,解析得到一個或多個檢測子進程的進程名以及一個或多個檢測文件的存儲路徑,根據(jù)進程名獲取各檢測子進程的進程ID,通過IO控制碼將各檢測子進程的進程ID和各檢測文件的存儲路徑發(fā)送給核心檢測進程。

核心檢測進程內(nèi)部的接收模塊1006接收輔助檢測進程(用戶層進程)通過IO控制碼發(fā)送的各檢測子進程的進程ID和各檢測文件的存儲路徑。具體地,核心檢測進程在接收到標記為“進程ID過濾”的IO控制碼后,從輸入緩沖區(qū)中獲取當次傳遞的進程ID;核心檢測進程在接收到標記為“私有目錄”的IO控制碼后,從輸入緩沖區(qū)中獲取當次傳遞的檢測文件的存儲路徑。

第一寫入模塊1001,適于獲取各檢測子進程的相關(guān)信息,將各檢測子進程的相關(guān)信息寫入進程過濾名單中。

第一寫入模塊1001根據(jù)進程ID獲取檢測子進程的相關(guān)信息。本方法中,相關(guān)信息可具體為EPROCESS結(jié)構(gòu)地址。第一寫入模塊1001獲取各檢測子進程的EPROCESS結(jié)構(gòu)地址之后,將各檢測子進程的EPROCESS結(jié)構(gòu)地址寫入進程過濾名單中。

第二寫入模塊1002,適于獲取檢測文件的存儲路徑信息,將檢測文件的存儲路徑信息寫入私有目錄名單中。

第二寫入模塊1002根據(jù)檢測文件的存儲路徑構(gòu)造出字符串對象作為檢測文件的存儲路徑信息,將檢測文件的存儲路徑信息寫入私有目錄名單中。

第一判斷模塊1003,適于當產(chǎn)生文件訪問操作時,判斷文件訪問對象的存儲路徑信息是否記錄在私有目錄名單中。

本實施例實現(xiàn)檢測文件保護主要是在IRP分發(fā)函數(shù)的函數(shù)體中實現(xiàn)。例如,在READ,WRITE,CREATE,SET_INFORMATION,DIRECTORY_CONTROL等分發(fā)函數(shù)的自實現(xiàn)函數(shù)體中,實現(xiàn)判斷文件訪問對象的存儲路徑信息是否記錄在私有目錄名單中。

第二判斷模塊1004,若第一判斷模塊1003判斷出文件訪問對象的存儲路徑信息記錄在私有目錄名單中,則判斷當前上下背景文進程的相關(guān)信息是否記錄在所述進程過濾名單中。

若判斷出文件訪問對象的存儲路徑信息記錄在私有目錄名單中,則第二判斷模塊1004進一步判斷當前上下背景文進程的相關(guān)信息是否記錄在進程過濾名單中,具體地,判斷當前上下背景文進程的EPROCESS結(jié)構(gòu)地址是否記錄在進程過濾名單中。

拒絕模塊1005,適于若第二判斷模塊1004判斷出當前上下背景文進程的相關(guān)信息未記錄在進程過濾名單中,則拒絕文件訪問操作。

若文件訪問對象的存儲路徑信息記錄在私有目錄名單,而當前上下背景文進程的相關(guān)信息未記錄在進程過濾名單中,表明有其它進程試圖訪問檢測文件,則IPR不再向下分發(fā),拒絕文件訪問操作。

響應(yīng)模塊1007,適于若第一判斷模塊1003判斷出文件訪問對象的存儲路徑信息未記錄在私有目錄名單中,或者,第二判斷模塊1004判斷出當前上下背景文進程的相關(guān)信息記錄在進程過濾名單中,則繼續(xù)響應(yīng)文件訪問操作。

若文件訪問對象的存儲路徑信息未記錄在私有目錄名單,表明訪問的不是需要保護的檢測文件,則IPR繼續(xù)向下分發(fā),響應(yīng)文件訪問操作。若文件訪問對象的存儲路徑信息記錄在私有目錄名單,且當前上下背景文進程的相關(guān)信息記錄在進程過濾名單中,表明是檢測子進程試圖訪問檢測文件,則IPR繼續(xù)向下分發(fā),響應(yīng)文件訪問操作。

根據(jù)本實施例提供的基于虛擬機的內(nèi)核漏洞檢測文件保護裝置,將各檢測子進程的相關(guān)信息寫入進程過濾名單中,將檢測文件的存儲路徑信息寫入私有目錄名單中,當產(chǎn)生文件訪問操作時,將文件訪問對象的存儲路徑信息和當前上下背景文進程的相關(guān)信息分別與進程過濾名單和私有目錄名單相匹配,判定是否拒絕文件訪問操作。利用本裝置,可保護在虛擬機沙箱隔離環(huán)境下產(chǎn)生的檢測文件,防止被沙箱逃逸的惡意樣本進程訪問、篡改、加密或損毀,避免因此導(dǎo)致的檢測失敗或結(jié)果異常,維護沙箱系統(tǒng)的穩(wěn)定和性能。

本發(fā)明可以應(yīng)用于網(wǎng)絡(luò)安全、終端安全、云安全、應(yīng)用安全、安全管理和安全服務(wù)等多個領(lǐng)域。產(chǎn)品包括高中低端下一代防火墻、入侵防御系統(tǒng)、DDoS攻擊防御系統(tǒng)、虛擬綜合業(yè)務(wù)網(wǎng)關(guān)、沙箱、大數(shù)據(jù)安全分析系統(tǒng)等產(chǎn)品,以及相應(yīng)的針對傳統(tǒng)威脅及未知威脅的解決方案。

在此提供的算法和顯示不與任何特定計算機、虛擬系統(tǒng)或者其它設(shè)備固有相關(guān)。各種通用系統(tǒng)也可以與基于在此的示教一起使用。根據(jù)上面的描述,構(gòu)造這類系統(tǒng)所要求的結(jié)構(gòu)是顯而易見的。此外,本發(fā)明也不針對任何特定編程語言。應(yīng)當明白,可以利用各種編程語言實現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對特定語言所做的描述是為了披露本發(fā)明的最佳實施方式。

在此處所提供的說明書中,說明了大量具體細節(jié)。然而,能夠理解,本發(fā)明的實施例可以在沒有這些具體細節(jié)的情況下實踐。在一些實例中,并未詳細示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對本說明書的理解。

類似地,應(yīng)當理解,為了精簡本公開并幫助理解各個發(fā)明方面中的一個或多個,在上面對本發(fā)明的示例性實施例的描述中,本發(fā)明的各個特征有時被一起分組到單個實施例、圖、或者對其的描述中。然而,并不應(yīng)將該公開的方法解釋成反映如下意圖:即所要求保護的本發(fā)明要求比在每個權(quán)利要求中所明確記載的特征更多的特征。更確切地說,如下面的權(quán)利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個實施例的所有特征。因此,遵循具體實施方式的權(quán)利要求書由此明確地并入該具體實施方式,其中每個權(quán)利要求本身都作為本發(fā)明的單獨實施例。

本領(lǐng)域那些技術(shù)人員可以理解,可以對實施例中的設(shè)備中的模塊進行自適應(yīng)性地改變并且把它們設(shè)置在與該實施例不同的一個或多個設(shè)備中??梢园褜嵤├械哪K或單元或組件組合成一個模塊或單元或組件,以及此外可以把它們分成多個子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設(shè)備的所有過程或單元進行組合。除非另外明確陳述,本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的每個特征可以由提供相同、等同或相似目的的替代特征來代替。

此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實施例包括其它實施例中所包括的某些特征而不是其它特征,但是不同實施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實施例。例如,在下面的權(quán)利要求書中,所要求保護的實施例的任意之一都可以以任意的組合方式來使用。

本發(fā)明的各個部件實施例可以以硬件實現(xiàn),或者以在一個或者多個處理器上運行的軟件模塊實現(xiàn),或者以它們的組合實現(xiàn)。本領(lǐng)域的技術(shù)人員應(yīng)當理解,可以在實踐中使用微處理器或者數(shù)字信號處理器(DSP)來實現(xiàn)根據(jù)本發(fā)明實施例的基于虛擬機的內(nèi)核漏洞檢測裝置中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設(shè)備或者裝置程序(例如,計算機程序和計算機程序產(chǎn)品)。這樣的實現(xiàn)本發(fā)明的程序可以存儲在計算機可讀介質(zhì)上,或者可以具有一個或者多個信號的形式。這樣的信號可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號上提供,或者以任何其他形式提供。

應(yīng)該注意的是上述實施例對本發(fā)明進行說明而不是對本發(fā)明進行限制,并且本領(lǐng)域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計出替換實施例。在權(quán)利要求中,不應(yīng)將位于括號之間的任何參考符號構(gòu)造成對權(quán)利要求的限制。單詞“包含”不排除存在未列在權(quán)利要求中的元件或步驟。位于元件之前的單詞“一”或“一個”不排除存在多個這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當編程的計算機來實現(xiàn)。在列舉了若干裝置的單元權(quán)利要求中,這些裝置中的若干個可以是通過同一個硬件項來具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序??蓪⑦@些單詞解釋為名稱。

當前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1