0day漏洞的識別方法以及裝置制造方法
【專利摘要】本發(fā)明公開了一種0day漏洞的識別方法以及裝置,涉及信息安全領域,主要目的在于快速、精確地檢測出0day漏洞,從而能夠保護計算機系統(tǒng)的安全。本發(fā)明的主要技術方案為:將待檢測文件過漏洞基礎數(shù)據(jù)庫,查看是否能夠得到漏洞編號;所述漏洞基礎數(shù)據(jù)庫為已知漏洞數(shù)據(jù)庫,數(shù)據(jù)庫中每條漏洞信息包括漏洞所在文件的文件類型、漏洞編號以及漏洞檢測邏輯,所述漏洞編號和漏洞檢測邏輯均唯一并且一一對應;若沒有得到漏洞編號,則根據(jù)所述待檢測文件的類型確定所述待檢測文件是否為惡意文件;若確定所述待檢測文件為惡意文件,則確定所述待檢測文件中的漏洞為0day漏洞。本發(fā)明主要應用于識別0day漏洞的過程中。
【專利說明】Oday漏洞的識別方法以及裝置
【技術領域】
[0001]本發(fā)明涉及一種信息安全領域,特別是涉及一種Oday漏洞的識別方法以及裝置。
【背景技術】
[0002]隨著社會信息化的不斷發(fā)展,網(wǎng)絡安全漏洞也在不斷增加。當發(fā)現(xiàn)存在漏洞時,需要及時通過相關補丁對該漏洞進行修復。該類已經(jīng)發(fā)現(xiàn)并且已經(jīng)發(fā)布修復補丁的漏洞稱為已知漏洞;而已經(jīng)發(fā)現(xiàn)但是還沒有給出相關補丁對該漏洞進行修復的漏洞稱為Oday漏洞。由于沒有及時對Oday漏洞進行修復,攻擊者可通過Oday漏洞獲得計算機系統(tǒng)的額外權限,使攻擊者能夠在未授權的情況下訪問或者破壞系統(tǒng),從而危害計算機系統(tǒng)的安全。
[0003]目前Oday漏洞的檢測方法基本上依靠人的經(jīng)驗進行判斷,該種判斷方式不能快速、精確地檢測出Oday漏洞,同時人工匹配的方式增加了對Oday漏洞的誤判率,從而使計算機系統(tǒng)的安全受到威脅。
【發(fā)明內(nèi)容】
[0004]有鑒于此,本發(fā)明實施例提供一種Oday漏洞的識別方法以及裝置,主要目的在于快速、精確地檢測出Oday漏洞,從而能夠保護計算機系統(tǒng)的安全。
[0005]依據(jù)本發(fā)明一個方面,提供了一種O day漏洞的識別方法,包括:
[0006]將待檢測文件過漏洞基礎數(shù)據(jù)庫,查看是否能夠得到漏洞編號;所述漏洞基礎數(shù)據(jù)庫為已知漏洞數(shù)據(jù)庫,數(shù)據(jù)庫中每條漏洞信息包括漏洞所在文件的文件類型、漏洞編號以及漏洞檢測邏輯,所述漏洞編號和漏洞檢測邏輯均唯一并且一一對應;
[0007]若沒有得到漏洞編號,則根據(jù)所述待檢測文件的類型確定所述待檢測文件是否為惡意文件;
[0008]若確定所述待檢測文件為惡意文件,則確定所述待檢測文件中的漏洞為O day漏洞。
[0009]根據(jù)本發(fā)明的另一個方面,提供了一種Oday漏洞的識別裝置,包括:
[0010]查看單元,用于將待檢測文件過漏洞基礎數(shù)據(jù)庫,查看是否能夠得到漏洞編號;所述漏洞基礎數(shù)據(jù)庫為已知漏洞數(shù)據(jù)庫,數(shù)據(jù)庫中每條漏洞信息包括漏洞所在文件的文件類型、漏洞編號以及漏洞檢測邏輯,所述漏洞編號和漏洞檢測邏輯均唯一并且一一對應;
[0011]第一確定單元,用于當查看單元沒有得到漏洞編號時,根據(jù)所述待檢測文件的類型確定所述待檢測文件是否為惡意文件;
[0012]第二確定單元,用于當?shù)谝淮_定單元確定所述待檢測文件為惡意文件時,確定所述待檢測文件中的漏洞為O day漏洞。
[0013]借由上述技術方案,本發(fā)明提供的一種Oday漏洞的識別方法以及裝置,在識別Oday漏洞時是基于漏洞基礎數(shù)據(jù)庫進行,該漏洞基礎數(shù)據(jù)庫為已知漏洞數(shù)據(jù)庫,該已知漏洞數(shù)據(jù)庫中存儲有現(xiàn)有的所有已知漏洞,并且漏洞數(shù)據(jù)庫中的每一條漏洞信息都對應漏洞唯一的檢測邏輯,將待檢測文件通過漏洞數(shù)據(jù)庫中的漏洞檢測邏輯進行檢測,若能夠得到檢測出漏洞,那么該檢測出的漏洞一定是已知漏洞,若沒有檢測到漏洞,但是后來又分析出漏洞,則該后分析出的漏洞必定是Oday漏洞,整個過程按照規(guī)則流程自動執(zhí)行,與現(xiàn)有技術中人工檢測Oday漏洞的方式相比快速準確。
[0014]上述說明僅是本發(fā)明技術方案的概述,為了能夠更清楚了解本發(fā)明的技術手段,而可依照說明書的內(nèi)容予以實施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點能夠更明顯易懂,以下特舉本發(fā)明的【具體實施方式】。
【專利附圖】
【附圖說明】
[0015]通過閱讀下文優(yōu)選實施方式的詳細描述,各種其他的優(yōu)點和益處對于本領域普通技術人員將變得清楚明了。附圖僅用于示出優(yōu)選實施方式的目的,而并不認為是對本發(fā)明的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中:
[0016]圖1示出了本發(fā)明實施例提供的一種Oday漏洞的識別方法的流程圖;
[0017]圖2示出了本發(fā)明實施例提供的一種將待檢測文件過漏洞基礎數(shù)據(jù)庫的流程圖;
[0018]圖3示出了本發(fā)明實施例提供的一種文件的類型為html文件時的惡意文件的識別方法流程圖;
[0019]圖4示出了本發(fā)明實施例提供的一種文件的類型為文檔文件時的惡意文件的識別方法流程圖;
[0020]圖5示出了本發(fā)明實施例提供的一種漏洞基礎數(shù)據(jù)庫的建立方法的流程圖;
[0021]圖6示出了本發(fā)明實施例提供的一種Oday漏洞的識別裝置的組成框圖;
[0022]圖7示出了本發(fā)明實施例提供的另一種Oday漏洞的識別裝置的組成框圖;
[0023]圖8示出了本發(fā)明實施例提供的另一種Oday漏洞的識別裝置的組成框圖;
[0024]圖9示出了本發(fā)明實施例提供的另一種Oday漏洞的識別裝置的組成框圖;
[0025]圖10示出了本發(fā)明實施例提供的另一種Oday漏洞的識別裝置的組成框圖。
【具體實施方式】
[0026]下面將參照附圖更詳細地描述本公開的示例性實施例。雖然附圖中顯示了本公開的示例性實施例,然而應當理解,可以以各種形式實現(xiàn)本公開而不應被這里闡述的實施例所限制。相反,提供這些實施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達給本領域的技術人員。
[0027]本發(fā)明實施例提供的一種Oday漏洞的識別方法,如圖1所示,該方法包括:
[0028]101、將待檢測文件過漏洞基礎數(shù)據(jù)庫,查看是否能夠得到漏洞編號;所述漏洞基礎數(shù)據(jù)庫為已知漏洞數(shù)據(jù)庫,數(shù)據(jù)庫中每條漏洞信息包括漏洞所在文件的文件類型、漏洞編號以及漏洞檢測邏輯,所述漏洞編號和漏洞檢測邏輯均唯一并且一一對應。
[0029]其中,所述漏洞基礎數(shù)據(jù)庫根據(jù)經(jīng)驗設定,該漏洞基礎數(shù)據(jù)庫中記錄了所有已知漏洞的信息,漏洞編號為在建立漏洞基礎數(shù)據(jù)庫時設置的編號,其唯一的標識了一個漏洞;漏洞檢測邏輯為檢測并觸發(fā)漏洞威脅的方法。
[0030]當待檢測文件與漏洞基礎數(shù)據(jù)庫中的漏洞進行匹配時,首先獲取待檢測文件的類型,通過獲取其對應的漏洞檢測邏輯對待檢測的文件進行檢測,當待檢測文件觸發(fā)漏洞基礎數(shù)據(jù)庫中的漏洞時,根據(jù)漏洞檢測邏輯獲取漏洞編號,從而說明待檢測文件的漏洞類型為已知漏洞類型;當待檢測文件不能觸發(fā)漏洞基礎數(shù)據(jù)庫中的漏洞時,該待檢測文件可能是正常文件,也有可能是帶有漏洞的文件,具體的還需對待檢測文件作進一步的檢測。
[0031]102、若沒有得到漏洞編號,則根據(jù)所述待檢測文件的類型確定所述待檢測文件是否為惡意文件。
[0032]一種類型的文件中往往存在多種漏洞,但是一種漏洞往往僅存在一種類型的文件中,文件類型的不同,其分析是否存在漏洞的方法不一樣,因此,當待檢測文件不能觸發(fā)漏洞基礎數(shù)據(jù)庫中的漏洞時,可根據(jù)所述待檢測文件的類型確定所述待檢測文件是否為惡意文件。
[0033]103、若確定所述待檢測文件為惡意文件,則確定所述待檢測文件中的漏洞為Oday漏洞。
[0034]本發(fā)明實施例中,在識別Oday漏洞時是基于漏洞基礎數(shù)據(jù)庫進行,該漏洞基礎數(shù)據(jù)庫為已知漏洞數(shù)據(jù)庫,該已知漏洞數(shù)據(jù)庫中存儲有現(xiàn)有的所有已知漏洞,并且漏洞數(shù)據(jù)庫中的每一條漏洞信息都對應漏洞唯一的檢測邏輯,將待檢測文件通過漏洞數(shù)據(jù)庫中的漏洞檢測邏輯進行檢測,若能夠得到檢測出漏洞,那么該檢測出的漏洞一定是已知漏洞,若沒有檢測到漏洞,但是后來又分析出漏洞,則該后分析出的漏洞必定是Oday漏洞,整個過程按照規(guī)則流程自動執(zhí)行,與現(xiàn)有技術中人工檢測Oday漏洞的方式相比快速準確。
[0035]進一步的,在執(zhí)行101將待檢測文件過漏洞基礎數(shù)據(jù)庫時,本發(fā)明實施例可以采用但不局限于以下的方法實現(xiàn),該方法如圖2所示,包括:
[0036]201、獲取所述待檢測文件的類型。
[0037]本發(fā)明實施例中,在將已經(jīng)發(fā)現(xiàn)的漏洞進行標識存儲時,往往會將漏洞存在的文件類型以及漏洞一起標識并存儲,已便于后續(xù)漏洞的查詢。因此,在檢測文件中是否存在漏洞時,要先獲取待檢測文件的類型,基于文件的類型再去獲取其他的相關信息。
[0038]在獲取待檢測文件的類型時,可以采用但不局限于根據(jù)待檢測文件名的后綴信息獲取待檢測文件的類型。除此之外,還可以采用通過文件類型識別工具通過文件特征碼來識別待檢測文件的類型。當然,還可以采用任何一種能夠獲取待檢測文件類型的方法,具體的本發(fā)明實施例在具體實施例對此不進行限定,可以根據(jù)用戶的需求設置。
[0039]202、根據(jù)所述待檢測文件的類型遍歷漏洞基礎數(shù)據(jù)庫獲取該類型文件對應的漏洞檢測邏輯。
[0040]在對待檢測文件進行檢測時,首先獲取待檢測文件的類型,根據(jù)所述待檢測文件的類型遍歷漏洞基礎數(shù)據(jù)庫獲取該類型文件對應的漏洞檢測邏輯。其中,漏洞基礎數(shù)據(jù)庫中包含有不同類型的文件,一種類型的文件中又包含有不同類型的漏洞信息,每條漏洞信息都是唯一確定的。例如,當所獲取待檢測文件的文件類型為html類型時,遍歷漏洞基礎數(shù)據(jù)庫,獲取文件類型為html的所有漏洞信息,并獲取所有漏洞信息中的漏洞檢測邏輯。
[0041]203、根據(jù)獲取的所述漏洞檢測邏輯對所述待檢測文件進行檢測。
[0042]漏洞檢測邏輯為檢測并觸發(fā)漏洞威脅的方法,每一種類型的漏洞都有一個唯一能夠觸發(fā)其威脅的方法。根據(jù)該檢測邏輯去檢測文件,確定其是否存在觸發(fā)漏洞的威脅,若能觸發(fā),則根據(jù)漏洞檢測邏輯確定該漏洞檢測邏輯對應的漏洞編號,從而識別出待檢測文件的漏洞類型。
[0043]進一步的,在將待檢測文件過漏洞基礎數(shù)據(jù)庫后,沒有觸發(fā)對應的漏洞,代表已知的漏洞在該待檢測文件中不存在,但是該檢測文件是為正常文件還是帶有漏洞的文件還不能確定,需要根據(jù)所述待檢測文件的類型確定所述待檢測文件是否為惡意文件。正如前面所述的,不同的文件確定文件是否為惡意文件的方法不一樣,本發(fā)明實施例將對此進行具體的描述。
[0044]當獲取所述待檢測文件的類型為html文件時,本發(fā)明實施例提供一種惡意文件的識別方法,如圖3所示,該方法包括:
[0045]301、檢測所述html文件中是否存在惡意特征,若存在惡意特征,則執(zhí)行302 ;若不存在惡意特征,則執(zhí)彳了 303。
[0046]在檢測html文件是否為惡意文件時,首先要檢測所述html文件中是否存在惡意特征,所述惡意特征可以包括但不局限于棧溢出、異常。除此之外,所述惡意特征還可以包括堆噴射。當然,還可以包括任何一種惡意特征的種類,具體的本發(fā)明實施例對此不進行限制。
[0047]302、確定所述html文件為惡意文件。
[0048]確定html文件為惡意文件,即確定該文件的存在漏洞。該存在的漏洞在漏洞數(shù)據(jù)庫中沒有存在,則該待檢測文件中存在的漏洞必定為Oday漏洞。
[0049]303、確定所述html文件為正常文件。
[0050]當獲取所述待檢測文件的類型為文檔文件時,本發(fā)明實施例提供一種惡意文件的識別方法,如圖4所示,該方法包括:
[0051]401、構(gòu)建指令虛擬機。
[0052]本發(fā)明實施例,將所述文檔文件經(jīng)漏洞基礎數(shù)據(jù)庫的過濾,若未返回漏洞基礎數(shù)據(jù)庫中已有漏洞編號的漏洞,則還需通過對該文檔文件進行訓練檢測,以確定其是否存在惡意行為。對該文檔文件進行訓練檢測通過建立指令虛擬機,并則指令虛擬機上運行該待檢測實現(xiàn)的。指令虛擬機的構(gòu)建可以通過但不局限于以下的方法實現(xiàn),該方法包括:
[0053]I)、設置用于按字節(jié)讀取文檔文件的指令讀取模塊;
[0054]2)、設置用于對指令讀取模塊讀取的文檔文件進行解釋的解釋模塊;
[0055]3)、構(gòu)建指令運行的模擬環(huán)境,所述模擬環(huán)境包括指令運行的線程、進程、棧、堆、系數(shù)數(shù)據(jù)和內(nèi)置系統(tǒng)API模擬;所述內(nèi)置系統(tǒng)API模擬包括文件、進程、注冊表、網(wǎng)絡API。
[0056]402、在所述指令虛擬機中按字節(jié)運行該文檔文件,記錄該文檔文件運行的行為。
[0057]為了確保檢測文檔文件中的惡意指令沒有遺漏,在將文檔文件在指令虛擬機上運行時,采用按照字節(jié)將文檔文件讀入指令虛擬機進行指令的運行。例如,文檔的指令從O到100條,第一次讀取的時候從O開始讀取,對讀取的內(nèi)容進行識別;第二次從I開始讀取——,確保任一種指令的組合都能夠被運行。
[0058]403、將記錄的行為與預定義的惡意行為規(guī)則庫中的行為進行匹配,若匹配到對應的行為,執(zhí)行404 ;若沒有匹配到對應的行為,執(zhí)行405。
[0059]所述惡意行為規(guī)則庫根據(jù)經(jīng)驗設定,所述惡意行為規(guī)則中包括:下載文件、訪問線程環(huán)境塊以及進程環(huán)境塊、試圖加載動態(tài)庫、試圖獲取系統(tǒng)函數(shù)地址。所述惡意行為規(guī)則庫在實際應用中可能不僅僅只包括上述惡意行為,也可能包括現(xiàn)有技術中的任一種惡意行為,具體的本發(fā)明實施例對此不進行限制。
[0060]404、確定所述待檢測文件為惡意文件。
[0061]所述確定文檔文件為惡意文件,即確定該文件的存在漏洞。該存在的漏洞在漏洞數(shù)據(jù)庫中沒有存在,則該待檢測文件中存在的漏洞必定為Oday漏洞。
[0062]405、確定所述待檢測文件為正常文件。
[0063]本發(fā)明實施例提供的檢測Oday漏洞的方法,通過構(gòu)建指令虛擬機,將文檔文件在指令虛擬機中按字節(jié)運行,并與預定義的惡意行為規(guī)則庫中的行為進行匹配。與現(xiàn)有技術中通過在內(nèi)存中強行搜索一段惡意特征碼,若內(nèi)存中存在此惡意特征碼,則為Oday漏洞相比,本發(fā)明實施例通過自動與惡意行為規(guī)則庫進行匹配,實現(xiàn)快速、自動、精確地識別出Oday漏洞。
[0064]綜上所述,本發(fā)明實施例的實施首先需要建立漏洞基礎數(shù)據(jù)庫。本發(fā)明實施例提供一種漏洞基礎數(shù)據(jù)庫的建立方法,如圖5所示,包括:
[0065]501、獲取已識別的漏洞以及該漏洞的屬性信息,所述屬性信息包括漏洞編號、漏洞存在的文件類型以及漏洞檢測邏輯。
[0066]其中,在獲取已識別的漏洞時,可以是根據(jù)預定算法自動獲取漏洞,也可以是系統(tǒng)維護者在工作的過程中經(jīng)驗積累獲取,具體的本發(fā)明實施例對此不進行限制。
[0067]502、將每個已識別漏洞的屬性信息以一條記錄的形式存儲在數(shù)據(jù)庫中建立漏洞基礎數(shù)據(jù)庫。
[0068]本發(fā)明實施例,通過不斷的向漏洞基礎數(shù)據(jù)庫中存儲已識別的漏洞,使得漏洞基礎庫中的漏洞信息處于不斷更新中,在與待檢測文件進行匹配時,能夠快速、準確、全面的識別該漏洞的類型。
[0069]其中,將每個已識別漏洞的屬性信息以一條記錄的形式存儲在數(shù)據(jù)庫中建立漏洞基礎數(shù)據(jù)庫,可以通過但不局限于以下的方式實現(xiàn)。例如可以采用手動的方式將已識別到的漏洞信息分別對漏洞編號、漏洞存在的文件類型以及漏洞檢測邏輯進行存儲。也可以采用自動方式將每個已識別漏洞的屬性信息以一條記錄的形式存儲在數(shù)據(jù)庫中建立漏洞基礎數(shù)據(jù)庫。具體的本發(fā)明實施例不進行限制。本發(fā)明實施例優(yōu)選采用自動存儲的方式,該方式的優(yōu)點在于能夠準確、快速、無遺漏的將每個已識別漏洞的屬性信息以一條記錄的形式存儲在數(shù)據(jù)庫中建立漏洞基礎數(shù)據(jù)庫。
[0070]進一步的,當待檢測文件觸發(fā)漏洞基礎數(shù)據(jù)庫中的漏洞時,根據(jù)漏洞檢測邏輯唯一的確定待檢測文件中的漏洞。由于本發(fā)明提供的漏洞編號和漏洞檢測邏輯均唯一并且一一對應,因此能夠精確檢測出待檢測文件的漏洞類型,因而能夠快速的選擇對應的修復方式,保護計算機系統(tǒng)的安全。
[0071]基于上述方法實施例,本發(fā)明實施例提供一種Oday漏洞的識別裝置,如圖6所示,該裝置包括:
[0072]查看單元61,用于將待檢測文件過漏洞基礎數(shù)據(jù)庫,查看是否能夠得到漏洞編號;所述漏洞基礎數(shù)據(jù)庫為已知漏洞數(shù)據(jù)庫,數(shù)據(jù)庫中每條漏洞信息包括漏洞所在文件的文件類型、漏洞編號以及漏洞檢測邏輯,所述漏洞編號和漏洞檢測邏輯均唯一并且一一對應;
[0073]第一確定單元62,用于當查看單元61沒有得到漏洞編號時,根據(jù)所述待檢測文件的類型確定所述待檢測文件是否為惡意文件;
[0074]第二確定單元63,用于當?shù)谝淮_定單元62確定所述待檢測文件為惡意文件時,確定所述待檢測文件中的漏洞為O day漏洞。
[0075]進一步的,所述查看單元61將待檢測文件過漏洞基礎數(shù)據(jù)庫用于:
[0076]獲取所述待檢測文件的類型;根據(jù)所述待檢測文件的類型遍歷漏洞基礎數(shù)據(jù)庫獲取該類型文件對應的漏洞檢測邏輯;根據(jù)獲取的所述漏洞檢測邏輯對所述待檢測文件進行檢測。
[0077]進一步的,如圖7所示,當所述待檢測文件為html文件時,所述第一確定單元62,包括:
[0078]檢測模塊621,用于檢測所述html文件中是否存在惡意特征;
[0079]第一確定模塊622,用于當檢測模塊621檢測到所述html文件中存在惡意特征時,確定所述html文件為惡意文件;
[0080]所述第一確定模塊622還用于,當檢測模塊621檢測到所述html文件中不存在惡意特征時,確定所述html文件為正常文件。
[0081]進一步的,如圖8所示,當所述待檢測文件為文檔文件時,所述第一確定單元62,還包括:
[0082]構(gòu)建模塊623,用于構(gòu)建指令虛擬機;所述構(gòu)建模塊623構(gòu)建指令虛擬機具體為:設置用于按字節(jié)讀取文檔文件的指令讀取模塊;設置用于對指令讀取模塊讀取的文檔文件進行解釋的解釋模塊;構(gòu)建指令運行的模擬環(huán)境,所述模擬環(huán)境包括指令運行的線程、進程、棧、堆、系數(shù)數(shù)據(jù)和內(nèi)置系統(tǒng)API模擬;所述內(nèi)置系統(tǒng)API模擬包括文件、進程、注冊表、網(wǎng)絡API。
[0083]運行模塊624,用于在所述指令虛擬機中按字節(jié)運行該文檔文件;
[0084]記錄模塊625,用于記錄該文檔文件運行的行為;
[0085]匹配模塊626,用于將記錄的行為與預定義的惡意行為規(guī)則庫中的行為進行匹配;
[0086]第二確定模塊627,用于當匹配模塊626匹配到對應的行為時,確定所述待檢測文件為惡意文件;
[0087]所述第二確定模塊627還用于,當匹配模塊626沒有匹配到對應的行為時,確定所述待檢測文件為正常文件。
[0088]進一步的,如圖9所示,所述Oday漏洞的識別裝置,還包括:
[0089]獲取單元64,用于在將待檢測文件過漏洞基礎數(shù)據(jù)庫之前,獲取已識別的漏洞以及該漏洞的屬性信息,所述屬性信息包括漏洞編號、漏洞存在的文件類型以及漏洞檢測邏輯;
[0090]數(shù)據(jù)庫建立單元65,用于將每個已識別漏洞的屬性信息以一條記錄的形式存儲在數(shù)據(jù)庫中建立漏洞基礎數(shù)據(jù)庫。
[0091]進一步的,如圖10所示,所述Oday漏洞的識別裝置,還包括:
[0092]第三確定單元66,用于當所述查看單元61得到漏洞編號時,唯一的確定待檢測文件中的漏洞。
[0093]本發(fā)明實施例在識別Oday漏洞時是基于漏洞基礎數(shù)據(jù)庫進行,該漏洞基礎數(shù)據(jù)庫為已知漏洞數(shù)據(jù)庫,該已知漏洞數(shù)據(jù)庫中存儲有現(xiàn)有的所有已知漏洞,并且漏洞數(shù)據(jù)庫中的每一條漏洞信息都對應漏洞唯一的檢測邏輯,將待檢測文件通過漏洞數(shù)據(jù)庫中的漏洞檢測邏輯進行檢測,若能夠得到檢測出漏洞,那么該檢測出的漏洞一定是已知漏洞,若沒有檢測到漏洞,但是后來又分析出漏洞,則該后分析出的漏洞必定是Oday漏洞,整個過程按照規(guī)則流程自動執(zhí)行,與現(xiàn)有技術中人工檢測Oday漏洞的方式相比快速準確。
[0094]此外,本發(fā)明實施例提供的檢測Oday漏洞的方法,通過構(gòu)建指令虛擬機,將文檔文件在指令虛擬機中按字節(jié)運行,并與預定義的惡意行為規(guī)則庫中的行為進行匹配。與現(xiàn)有技術中通過在內(nèi)存中強行搜索一段惡意特征碼,若內(nèi)存中存在此惡意特征碼,則為Oday漏洞相比,本發(fā)明實施例通過自動與惡意行為規(guī)則庫進行匹配,實現(xiàn)快速、自動、精確地識別出Oday漏洞。
[0095]本發(fā)明實施例采用自動方式將每個已識別漏洞的屬性信息以一條記錄的形式存儲在數(shù)據(jù)庫中建立漏洞基礎數(shù)據(jù)庫,該方式的優(yōu)點在于能夠準確、快速、無遺漏的將每個已識別漏洞的屬性信息以一條記錄的形式存儲在數(shù)據(jù)庫中建立漏洞基礎數(shù)據(jù)庫。
[0096]進一步的,本發(fā)明提供的漏洞編號和漏洞檢測邏輯均唯一并且一一對應,因此能夠精確檢測出待檢測文件的漏洞類型,因而能夠快速的選擇對應的修復方式,保護計算機系統(tǒng)的安全。
[0097]本發(fā)明的實施例還公開了:
[0098]B11、根據(jù)權利要求B8所述的裝置,其特征在于,當所述待檢測文件為文檔文件時,所述第一確定單元包括:
[0099]構(gòu)建模塊,用于構(gòu)建指令虛擬機;
[0100]運行模塊,用于在所述指令虛擬機中按字節(jié)運行該文檔文件;
[0101]記錄模塊,用于記錄該文檔文件運行的行為;
[0102]匹配模塊,用于將記錄的行為與預定義的惡意行為規(guī)則庫中的行為進行匹配;
[0103]第二確定模塊,用于當匹配模塊匹配到對應的行為時,確定所述待檢測文件為惡意文件;
[0104]所述第二確定模塊還用于,當匹配模塊沒有匹配到對應的行為時,確定所述待檢測文件為正常文件。
[0105]B12、根據(jù)權利要求Bll所述的裝置,其特征在于,所述構(gòu)建模塊用于:
[0106]設置用于按字節(jié)讀取文檔文件的指令讀取模塊;
[0107]設置用于對指令讀取模塊讀取的文檔文件進行解釋的解釋模塊;
[0108]構(gòu)建指令運行的模擬環(huán)境,所述模擬環(huán)境包括指令運行的線程、進程、棧、堆、系數(shù)數(shù)據(jù)和內(nèi)置系統(tǒng)API模擬;所述內(nèi)置系統(tǒng)API模擬包括文件、進程、注冊表、網(wǎng)絡API。
[0109]B13、根據(jù)權利要求B8-B12中任一項所述的裝置,其特征在于,還包括:
[0110]獲取單元,用于在將待檢測文件過漏洞基礎數(shù)據(jù)庫之前,獲取已識別的漏洞以及該漏洞的屬性信息,所述屬性信息包括漏洞編號、漏洞存在的文件類型以及漏洞檢測邏輯;
[0111]數(shù)據(jù)庫建立單元,用于將每個已識別漏洞的屬性信息以一條記錄的形式存儲在數(shù)據(jù)庫中建立漏洞基礎數(shù)據(jù)庫。
[0112]B14、根據(jù)權利要求B8所述的裝置,其特征在于,還包括:
[0113]第三確定單元,用于當所述查看單元得到漏洞編號時,唯一的確定待檢測文件中的漏洞。
[0114]在上述實施例中,對各個實施例的描述都各有側(cè)重,某個實施例中沒有詳述的部分,可以參見其他實施例的相關描述。
[0115]可以理解的是,上述方法及裝置中的相關特征可以相互參考。另外,上述實施例中的“第一”、“第二”等是用于區(qū)分各實施例,而并不代表各實施例的優(yōu)劣。
[0116]所屬領域的技術人員可以清楚地了解到,為描述的方便和簡潔,上述描述的系統(tǒng),裝置和單元的具體工作過程,可以參考前述方法實施例中的對應過程,在此不再贅述。
[0117]在此提供的算法和顯示不與任何特定計算機、虛擬系統(tǒng)或者其它設備固有相關。各種通用系統(tǒng)也可以與基于在此的示教一起使用。根據(jù)上面的描述,構(gòu)造這類系統(tǒng)所要求的結(jié)構(gòu)是顯而易見的。此外,本發(fā)明也不針對任何特定編程語言。應當明白,可以利用各種編程語言實現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對特定語言所做的描述是為了披露本發(fā)明的最佳實施方式。
[0118]在此處所提供的說明書中,說明了大量具體細節(jié)。然而,能夠理解,本發(fā)明的實施例可以在沒有這些具體細節(jié)的情況下實踐。在一些實例中,并未詳細示出公知的方法、結(jié)構(gòu)和技術,以便不模糊對本說明書的理解。
[0119]類似地,應當理解,為了精簡本公開并幫助理解各個發(fā)明方面中的一個或多個,在上面對本發(fā)明的示例性實施例的描述中,本發(fā)明的各個特征有時被一起分組到單個實施例、圖、或者對其的描述中。然而,并不應將該公開的方法解釋成反映如下意圖:即所要求保護的本發(fā)明要求比在每個權利要求中所明確記載的特征更多的特征。更確切地說,如下面的權利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個實施例的所有特征。因此,遵循【具體實施方式】的權利要求書由此明確地并入該【具體實施方式】,其中每個權利要求本身都作為本發(fā)明的單獨實施例。
[0120]本領域那些技術人員可以理解,可以對實施例中的設備中的模塊進行自適應性地改變并且把它們設置在與該實施例不同的一個或多個設備中??梢园褜嵤├械哪K或單元或組件組合成一個模塊或單元或組件,以及此外可以把它們分成多個子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對本說明書(包括伴隨的權利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設備的所有過程或單元進行組合。除非另外明確陳述,本說明書(包括伴隨的權利要求、摘要和附圖)中公開的每個特征可以由提供相同、等同或相似目的的替代特征來代替。
[0121]此外,本領域的技術人員能夠理解,盡管在此所述的一些實施例包括其它實施例中所包括的某些特征而不是其它特征,但是不同實施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實施例。例如,在下面的權利要求書中,所要求保護的實施例的任意之一都可以以任意的組合方式來使用。
[0122]本發(fā)明的各個部件實施例可以以硬件實現(xiàn),或者以在一個或者多個處理器上運行的軟件模塊實現(xiàn),或者以它們的組合實現(xiàn)。本領域的技術人員應當理解,可以在實踐中使用微處理器或者數(shù)字信號處理器(DSP)來實現(xiàn)根據(jù)本發(fā)明實施例的Oday漏洞的識別方法以及裝置中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設備或者裝置程序(例如,計算機程序和計算機程序產(chǎn)品)。這樣的實現(xiàn)本發(fā)明的程序可以存儲在計算機可讀介質(zhì)上,或者可以具有一個或者多個信號的形式。這樣的信號可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號上提供,或者以任何其他形式提供。
[0123]應該注意的是上述實施例對本發(fā)明進行說明而不是對本發(fā)明進行限制,并且本領域技術人員在不脫離所附權利要求的范圍的情況下可設計出替換實施例。在權利要求中,不應將位于括號之間的任何參考符號構(gòu)造成對權利要求的限制。單詞“包含”不排除存在未列在權利要求中的元件或步驟。位于元件之前的單詞“一”或“一個”不排除存在多個這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當編程的計算機來實現(xiàn)。在列舉了若干裝置的單元權利要求中,這些裝置中的若干個可以是通過同一個硬件項來具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序??蓪⑦@些單詞解釋為名稱。
【權利要求】
1.一種Oday漏洞的識別方法,其特征在于,包括: 將待檢測文件過漏洞基礎數(shù)據(jù)庫,查看是否能夠得到漏洞編號;所述漏洞基礎數(shù)據(jù)庫為已知漏洞數(shù)據(jù)庫,數(shù)據(jù)庫中每條漏洞信息包括漏洞所在文件的文件類型、漏洞編號以及漏洞檢測邏輯,所述漏洞編號和漏洞檢測邏輯均唯一并且一一對應; 若沒有得到漏洞編號,則根據(jù)所述待檢測文件的類型確定所述待檢測文件是否為惡意文件; 若確定所述待檢測文件為惡意文件,則確定所述待檢測文件中的漏洞為Oday漏洞。
2.根據(jù)權利要求1所述的方法,其特征在于,將待檢測文件過漏洞基礎數(shù)據(jù)庫包括: 獲取所述待檢測文件的類型; 根據(jù)所述待檢測文件的類型遍歷漏洞基礎數(shù)據(jù)庫獲取該類型文件對應的漏洞檢測邏輯; 根據(jù)獲取的所述漏洞檢測邏輯對所述待檢測文件進行檢測。
3.根據(jù)權利要求1所述的方法,其特征在于,當所述待檢測文件為html文件時,根據(jù)所述待檢測文件的類型確定所述待檢測文件是否為惡意文件包括: 檢測所述html文件中是否存在惡意特征; 若存在惡意特征,則確定所述html文件為惡意文件; 若不存在惡意特征,則確定所述html文件為正常文件。
4.根據(jù)權利要求1所述的方法,其特征在于,當所述待檢測文件為文檔文件時,根據(jù)所述待檢測文件的類型確定所述待檢測文件是否為惡意文件包括: 構(gòu)建指令虛擬機; 在所述指令虛擬機中按字節(jié)運行該文檔文件,記錄該文檔文件運行的行為; 將記錄的行為與預定義的惡意行為規(guī)則庫中的行為進行匹配; 若匹配到對應的行為,則確定所述待檢測文件為惡意文件; 若沒有匹配到對應的行為,則確定所述待檢測文件為正常文件。
5.根據(jù)權利要求4所述的方法,其特征在于,所述構(gòu)建指令虛擬機包括: 設置用于按字節(jié)讀取文檔文件的指令讀取模塊; 設置用于對指令讀取模塊讀取的文檔文件進行解釋的解釋模塊; 構(gòu)建指令運行的模擬環(huán)境,所述模擬環(huán)境包括指令運行的線程、進程、棧、堆、系數(shù)數(shù)據(jù)和內(nèi)置系統(tǒng)API模擬;所述內(nèi)置系統(tǒng)API模擬包括文件、進程、注冊表、網(wǎng)絡API。
6.根據(jù)權利要求1-5中任一項所述的方法,其特征在于,在將待檢測文件過漏洞基礎數(shù)據(jù)庫之前還包括: 獲取已識別的漏洞以及該漏洞的屬性信息,所述屬性信息包括漏洞編號、漏洞存在的文件類型以及漏洞檢測邏輯; 將每個已識別漏洞的屬性信息以一條記錄的形式存儲在數(shù)據(jù)庫中建立漏洞基礎數(shù)據(jù)庫。
7.根據(jù)權利要求1所述的方法,其特征在于,還包括: 若得到漏洞編號,則唯一的確定待檢測文件中的漏洞。
8.—種Oday漏洞的識別裝置,其特征在于,包括: 查看單元,用于將待檢測文件過漏洞基礎數(shù)據(jù)庫,查看是否能夠得到漏洞編號;所述漏洞基礎數(shù)據(jù)庫為已知漏洞數(shù)據(jù)庫,數(shù)據(jù)庫中每條漏洞信息包括漏洞所在文件的文件類型、漏洞編號以及漏洞檢測邏輯,所述漏洞編號和漏洞檢測邏輯均唯一并且一一對應; 第一確定單元,用于當查看單元沒有得到漏洞編號時,根據(jù)所述待檢測文件的類型確定所述待檢測文件是否為惡意文件; 第二確定單元,用于當?shù)谝淮_定單元確定所述待檢測文件為惡意文件時,確定所述待檢測文件中的漏洞為Oday漏洞。
9.根據(jù)權利要求8所述的裝置,其特征在于,所述查看單元將待檢測文件過漏洞基礎數(shù)據(jù)庫包括: 獲取所述待檢測文件的類型; 根據(jù)所述待檢測文件的類型遍歷漏洞基礎數(shù)據(jù)庫獲取該類型文件對應的漏洞檢測邏輯; 根據(jù)獲取的所述漏洞檢測邏輯對所述待檢測文件進行檢測。
10.根據(jù)權利要求8所述的裝置,其特征在于,當所述待檢測文件為html文件時,所述第一確定單元包括: 檢測模塊,用于檢測所述html文件中是否存在惡意特征; 第一確定模塊,用于當檢測模塊檢測到所述html文件中存在惡意特征時,確定所述html文件為惡意文件; 所述第一確定模塊還用于,當檢測模塊檢測到所述html文件中不存在惡意特征時,確定所述html文件為正常文件。
【文檔編號】G06F21/57GK104239801SQ201410510459
【公開日】2014年12月24日 申請日期:2014年9月28日 優(yōu)先權日:2014年9月28日
【發(fā)明者】唐海, 陳卓, 邢超, 楊康 申請人:北京奇虎科技有限公司, 奇智軟件(北京)有限公司