一種程序漏洞檢測(cè)方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及信息安全技術(shù)領(lǐng)域,尤其涉及一種程序漏洞檢測(cè)方法及裝置。
【背景技術(shù)】
[0002]目前,信息技術(shù)的飛速發(fā)展給人們帶來(lái)便利,但同時(shí),其中存在的大量漏洞也使得當(dāng)前安全形勢(shì)日益嚴(yán)峻,由此,各種漏洞檢測(cè)技術(shù)應(yīng)運(yùn)而生。模糊測(cè)試(Fuzz testing)就是其中的一種軟件漏洞挖掘技術(shù),其在進(jìn)行軟件漏洞挖掘時(shí),通過(guò)對(duì)軟件的輸入文件做隨機(jī)插入,如依次對(duì)每個(gè)字節(jié)做0?OxFF變換,生成測(cè)試數(shù)據(jù),由該軟件加載該測(cè)試數(shù)據(jù),并通過(guò)監(jiān)控該軟件是否崩潰或者出現(xiàn)異常來(lái)檢測(cè)是否存在潛在漏洞。然而,通過(guò)對(duì)每個(gè)字節(jié)做0?OxFF變換,這就使得生成的測(cè)試數(shù)據(jù)規(guī)模較大,導(dǎo)致漏洞檢測(cè)效率較低。
【發(fā)明內(nèi)容】
[0003]本發(fā)明實(shí)施例所要解決的技術(shù)問(wèn)題在于,提供一種程序漏洞檢測(cè)方法及裝置,用于解決由于生成的測(cè)試數(shù)據(jù)規(guī)模大而導(dǎo)致的漏洞檢測(cè)效率低的問(wèn)題。
[0004]為了解決上述技術(shù)問(wèn)題,本發(fā)明實(shí)施例提供了一種程序漏洞檢測(cè)方法,包括:
[0005]對(duì)目標(biāo)程序的輸入文件的結(jié)構(gòu)進(jìn)行解析,得到包括所述輸入文件的至少一個(gè)字段信息的字段信息集合;
[0006]從所述字段信息集合的字段信息中查找出用于標(biāo)識(shí)長(zhǎng)度的目標(biāo)字段信息;
[0007]將所述目標(biāo)字段信息指示的長(zhǎng)度值替換為預(yù)先配置的目標(biāo)測(cè)試值,并根據(jù)所述目標(biāo)測(cè)試值對(duì)所述目標(biāo)程序進(jìn)行漏洞檢測(cè)。
[0008]可選的,所述根據(jù)所述目標(biāo)測(cè)試值對(duì)所述目標(biāo)程序進(jìn)行漏洞檢測(cè),包括:
[0009]根據(jù)所述目標(biāo)測(cè)試值對(duì)所述輸入文件中的字段進(jìn)行更改,得到所述目標(biāo)測(cè)試值對(duì)應(yīng)的測(cè)試數(shù)據(jù);
[0010]在所述目標(biāo)程序中運(yùn)行所述測(cè)試數(shù)據(jù),以對(duì)所述目標(biāo)程序進(jìn)行漏洞檢測(cè)。
[0011 ] 可選的,所述方法還包括:
[0012]預(yù)先獲取不同文件的文件格式,并為每一種文件格式配置與該文件格式對(duì)應(yīng)的測(cè)試值;
[0013]所述將所述目標(biāo)字段信息指示的長(zhǎng)度值替換為預(yù)先配置的目標(biāo)測(cè)試值,包括:
[0014]確定所述輸入文件對(duì)應(yīng)的目標(biāo)文件格式,并查找出與所述目標(biāo)文件格式對(duì)應(yīng)的測(cè)試值;
[0015]將查找出的所述測(cè)試值作為目標(biāo)測(cè)試值,并將所述目標(biāo)字段信息指示的長(zhǎng)度值替換為所述目標(biāo)測(cè)試值。
[0016]可選的,在所述將所述目標(biāo)字段信息指示的長(zhǎng)度值替換為預(yù)先配置的目標(biāo)測(cè)試值,并根據(jù)所述目標(biāo)測(cè)試值對(duì)所述目標(biāo)程序進(jìn)行漏洞檢測(cè)之后,所述方法還包括:
[0017]獲取所述漏洞檢測(cè)的檢測(cè)過(guò)程中所述目標(biāo)程序產(chǎn)生的異常信息,并確定出所述異常信息對(duì)應(yīng)的測(cè)試值;
[0018]根據(jù)所述異常信息對(duì)應(yīng)的測(cè)試值,對(duì)配置的與所述目標(biāo)文件格式對(duì)應(yīng)的測(cè)試值進(jìn)行更新。
[0019]可選的,所述目標(biāo)測(cè)試值為預(yù)先配置的邊界值。
[0020]相應(yīng)地,本發(fā)明實(shí)施例還提供了一種程序漏洞檢測(cè)裝置,包括:
[0021]解析模塊,用于對(duì)目標(biāo)程序的輸入文件的結(jié)構(gòu)進(jìn)行解析,得到包括所述輸入文件的至少一個(gè)字段信息的字段信息集合;
[0022]查找模塊,用于從所述字段信息集合的字段信息中查找出用于標(biāo)識(shí)長(zhǎng)度的目標(biāo)字段?目息;
[0023]替換模塊,用于將所述查找模塊查找出的所述目標(biāo)字段信息指示的長(zhǎng)度值替換為預(yù)先配置的目標(biāo)測(cè)試值;
[0024]檢測(cè)模塊,用于根據(jù)所述目標(biāo)測(cè)試值對(duì)所述目標(biāo)程序進(jìn)行漏洞檢測(cè)。
[0025]可選的,所述檢測(cè)模塊包括:
[0026]數(shù)據(jù)生成單元,用于根據(jù)所述目標(biāo)測(cè)試值對(duì)所述輸入文件中的字段進(jìn)行更改,得到所述目標(biāo)測(cè)試值對(duì)應(yīng)的測(cè)試數(shù)據(jù);
[0027]處理單元,用于在所述目標(biāo)程序中運(yùn)行所述數(shù)據(jù)生成單元生成的所述測(cè)試數(shù)據(jù),以對(duì)所述目標(biāo)程序進(jìn)行漏洞檢測(cè)。
[0028]可選的,所述裝置還包括:
[0029]預(yù)置模塊,用于預(yù)先獲取不同文件的文件格式,并為每一種文件格式配置與該文件格式對(duì)應(yīng)的測(cè)試值;
[0030]所述替換模塊具體用于:
[0031]確定所述輸入文件對(duì)應(yīng)的目標(biāo)文件格式,并查找出與所述目標(biāo)文件格式對(duì)應(yīng)的測(cè)試值;
[0032]將查找出的所述測(cè)試值作為目標(biāo)測(cè)試值,并將所述目標(biāo)字段信息指示的長(zhǎng)度值替換為所述目標(biāo)測(cè)試值。
[0033]可選的,所述裝置還包括:
[0034]信息獲取模塊,用于獲取所述漏洞檢測(cè)的檢測(cè)過(guò)程中所述目標(biāo)程序產(chǎn)生的異常信息,并確定出所述異常信息對(duì)應(yīng)的測(cè)試值;
[0035]更新模塊,用于根據(jù)所述信息獲取模塊獲取的所述異常信息對(duì)應(yīng)的測(cè)試值,對(duì)配置的與所述目標(biāo)文件格式對(duì)應(yīng)的測(cè)試值進(jìn)行更新。
[0036]可選的,所述目標(biāo)測(cè)試值為預(yù)先配置的邊界值。
[0037]實(shí)施本發(fā)明實(shí)施例,具有如下有益效果:
[0038]在本發(fā)明實(shí)施例中,可通過(guò)對(duì)目標(biāo)程序的輸入文件的結(jié)構(gòu)進(jìn)行解析,得到該輸入文件的多個(gè)字段信息,并從該多個(gè)字段信息中查找出用于標(biāo)識(shí)長(zhǎng)度的目標(biāo)字段信息,從而將該目標(biāo)字段信息指示的長(zhǎng)度值替換為預(yù)置的測(cè)試值,并根據(jù)該測(cè)試值對(duì)該目標(biāo)程序進(jìn)行漏洞檢測(cè),使得有效減少了生成的測(cè)試數(shù)據(jù)的規(guī)模,從而有效提升了程序漏洞的檢測(cè)效率。
【附圖說(shuō)明】
[0039]為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0040]圖1是本發(fā)明實(shí)施例提供的一種程序漏洞檢測(cè)方法的流程示意圖;
[0041]圖2是本發(fā)明實(shí)施例提供的另一種程序漏洞檢測(cè)方法的流程示意圖;
[0042]圖3是本發(fā)明實(shí)施例提供的一種程序漏洞檢測(cè)裝置的結(jié)構(gòu)示意圖;
[0043]圖4是本發(fā)明實(shí)施例提供的另一種程序漏洞檢測(cè)裝置的結(jié)構(gòu)示意圖;
[0044]圖5是本發(fā)明實(shí)施例提供的一種終端設(shè)備的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0045]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0046]本發(fā)明實(shí)施例公開(kāi)了一種程序漏洞檢測(cè)方法、裝置及終端設(shè)備,能夠解決由于生成的測(cè)試數(shù)據(jù)規(guī)模大而導(dǎo)致的漏洞挖掘效率低的問(wèn)題。以下分別詳細(xì)說(shuō)明。
[0047]請(qǐng)參閱圖1,圖1是本發(fā)明實(shí)施例提供的一種程序漏洞檢測(cè)方法的流程示意圖。具體的,如圖1所示,本發(fā)明實(shí)施例的所述程序漏洞檢測(cè)方法可以包括以下步驟:
[0048]101、對(duì)目標(biāo)程序的輸入文件的結(jié)構(gòu)進(jìn)行解析,得到包括所述輸入文件的至少一個(gè)字段信息的字段信息集合。
[0049]其中,所述目標(biāo)程序?yàn)樾枰M(jìn)行漏洞檢測(cè)的程序,該輸入文件可以為對(duì)該目標(biāo)程序進(jìn)行漏洞檢測(cè)的樣本文件??蛇x的,該輸入文件可根據(jù)所述目標(biāo)程序的類型信息預(yù)先配置得到。
[0050]需要說(shuō)明的是,本發(fā)明實(shí)施例的所述方法可具體應(yīng)用于終端設(shè)備,如智能手機(jī)(如Android手機(jī)、1S手機(jī)等)、平板電腦、移動(dòng)互聯(lián)網(wǎng)設(shè)備(Mobile Internet Devices,簡(jiǎn)稱“MID”)、個(gè)人電腦等終端設(shè)備中,本發(fā)明實(shí)施例不做限定。從而實(shí)現(xiàn)對(duì)安裝于該終端設(shè)備的程序軟件的漏洞檢測(cè)。
[0051]102、從所述字段信息集合的字段信息中查找出用于標(biāo)識(shí)長(zhǎng)度的目標(biāo)字段信息。
[0052]具體實(shí)施例中,該輸入文件中包括多個(gè)字段信息,如用于標(biāo)識(shí)文件內(nèi)容長(zhǎng)度的長(zhǎng)度字段信息、用于標(biāo)識(shí)文件內(nèi)容的屬性(如顏色、字體等)的屬性字段信息等等。由此,可從該多個(gè)字段信息中查找出用于標(biāo)識(shí)文件內(nèi)容長(zhǎng)度的長(zhǎng)度字段信息即目標(biāo)字段信息,并進(jìn)一步解析得到該目標(biāo)字段信息指示的該文件內(nèi)容的長(zhǎng)度值。
[0053]103、將所述目標(biāo)字段信息指示的長(zhǎng)度值替換為預(yù)先配置的目標(biāo)測(cè)試值,并根據(jù)所述目標(biāo)測(cè)試值對(duì)所述目標(biāo)程序進(jìn)行漏洞檢測(cè)。
[0054]具體實(shí)施例中,可預(yù)先配置一些用于替換字段信息指示的長(zhǎng)度值的測(cè)試值,比如將某些邊界值,如10、0x10、20、0x20、100等等作為該測(cè)試值。具體的,在查找出該用于標(biāo)識(shí)長(zhǎng)度的目標(biāo)字段信息并解析得到該目標(biāo)字段信息指示的長(zhǎng)度值之后,即可通過(guò)該預(yù)置的目標(biāo)測(cè)試值如該邊界值替換該目標(biāo)字段信息指示的長(zhǎng)度值,從