欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種基于靜態(tài)檢測(cè)的模糊測(cè)試方法

文檔序號(hào):8259394閱讀:355來源:國知局
一種基于靜態(tài)檢測(cè)的模糊測(cè)試方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于網(wǎng)絡(luò)安全技術(shù)領(lǐng)域,涉及一種軟件安全性分析測(cè)試方法,具體涉及一種基于靜態(tài)檢測(cè)的模糊測(cè)試方法,結(jié)合靜態(tài)檢測(cè)和模糊測(cè)試兩方面的優(yōu)勢(shì)分析軟件的安全性。
【背景技術(shù)】
[0002]隨著信息技術(shù)的快速發(fā)展,軟件大量的出現(xiàn)在工業(yè)領(lǐng)域、商業(yè)領(lǐng)域、軍事領(lǐng)域以及人民的日常生活中,軟件的安全性成為影響國計(jì)民生的大問題,軟件漏洞對(duì)各種社會(huì)活動(dòng)的正常運(yùn)轉(zhuǎn)造成極大的安全隱患,為攻擊者惡意入侵大開方便之門,成為木馬、病毒等惡意代碼肆意傳播的入口和途徑。隨著攻擊手段的發(fā)展,軟件的安全性問題日益突出。為及早發(fā)現(xiàn)軟件存在的安全性問題,應(yīng)進(jìn)行軟件安全性測(cè)試。
[0003]軟件的安全性測(cè)試可以分為針對(duì)源代碼的靜態(tài)分析和針對(duì)執(zhí)行進(jìn)程的動(dòng)態(tài)測(cè)試。靜態(tài)分析直接分析程序的源代碼,通過詞法分析、語法分析和靜態(tài)語義分析,檢測(cè)程序中潛在的漏洞。動(dòng)態(tài)測(cè)試一般是通過在調(diào)試器中加載目標(biāo)程序并觀察程序在運(yùn)行過程中的狀態(tài)(如寄存器內(nèi)容、內(nèi)存使用狀況等)以發(fā)現(xiàn)潛在的漏洞。模糊測(cè)試是動(dòng)態(tài)測(cè)試的一種,是一種基于缺陷注入的自動(dòng)軟件測(cè)試技術(shù),其通過模糊測(cè)試工具向目標(biāo)程序提供某種形式的輸入并觀察其響應(yīng)來發(fā)現(xiàn)問題,這種輸入可以是完全隨機(jī)的或精心構(gòu)造的。靜態(tài)分析技術(shù)和模糊測(cè)試技術(shù)經(jīng)過多年的發(fā)展,已經(jīng)形成多種相關(guān)產(chǎn)品,可以有效的對(duì)軟件的安全性進(jìn)行測(cè)試,但是依然存在以下問題:
[0004]單純的基于源代碼的靜態(tài)檢測(cè)結(jié)果具有誤報(bào)率高的缺點(diǎn),且只能檢測(cè)已知漏洞模型的漏洞,檢測(cè)完成后,需要有經(jīng)驗(yàn)的人員花費(fèi)大量時(shí)間對(duì)檢測(cè)結(jié)果進(jìn)行分析。
[0005]模糊測(cè)試需采用隨機(jī)或者人為的方式構(gòu)造測(cè)試用例(用以進(jìn)行測(cè)試的特定一系列操作行為和輸入值),當(dāng)異常發(fā)生后,需要測(cè)試人員對(duì)造成異常的數(shù)據(jù)包進(jìn)行分析,發(fā)現(xiàn)軟件漏洞,模糊測(cè)試存在測(cè)試時(shí)間過長,測(cè)試針對(duì)性不強(qiáng),測(cè)試效率。

【發(fā)明內(nèi)容】

[0006]本發(fā)明針對(duì)上述安全性測(cè)試存在的問題,提出了一種基于靜態(tài)檢測(cè)的模糊測(cè)試方法,結(jié)合靜態(tài)檢測(cè)和模糊測(cè)試兩方面的優(yōu)勢(shì),對(duì)軟件的安全性進(jìn)行分析。
[0007]基于靜態(tài)檢測(cè)的模糊測(cè)試主要結(jié)合源代碼靜態(tài)分析和可執(zhí)行代碼模糊測(cè)試,首先通過源代碼靜態(tài)分析相關(guān)軟件對(duì)目標(biāo)軟件進(jìn)行靜態(tài)分析,模糊測(cè)試獲得靜態(tài)分析結(jié)果,然后對(duì)靜態(tài)分析認(rèn)為存在問題的代碼段進(jìn)行插粧標(biāo)記,最后基于插粧標(biāo)記對(duì)測(cè)試用例進(jìn)行變異,使測(cè)試用例能夠覆蓋存在問題的全部代碼段,加速模糊測(cè)試用例的收斂,從而有效地驗(yàn)證了靜態(tài)分析的結(jié)果,提高模糊測(cè)試效率,測(cè)試框架如圖1所示。
[0008]基于以上測(cè)試框架,基于靜態(tài)檢測(cè)的模糊測(cè)試方法主要包括源代碼分析和模糊測(cè)試。
[0009](I)源代碼分析
[0010]源代碼分析主要通過現(xiàn)有的源代碼檢測(cè)工具完成。首先需要對(duì)目標(biāo)軟件的源代碼進(jìn)行建模,建模過程根據(jù)源代碼是否編譯執(zhí)行分成兩種情況考慮,對(duì)于需要編譯執(zhí)行的應(yīng)調(diào)用對(duì)應(yīng)的編譯工具進(jìn)行建模,不需要進(jìn)行編譯的則直接進(jìn)行。隨后,加載不同的安全規(guī)則分析模型對(duì)源代碼進(jìn)行分析,生成包含漏洞類型、漏洞位置、漏洞具體跟蹤信息等的源代碼分析結(jié)果。
[0011](2)模糊測(cè)試
[0012]首先建立源代碼和可執(zhí)行代碼的對(duì)應(yīng)關(guān)系表,源代碼分析可能產(chǎn)生漏洞的代碼段進(jìn)行插粧,隨后運(yùn)行目標(biāo)軟件的可執(zhí)行映像,加載模糊測(cè)試的初始測(cè)試用例,根據(jù)測(cè)試用例與源代碼分析漏洞結(jié)果的相關(guān)程度使用遺傳算法篩選測(cè)試用例,當(dāng)測(cè)試用例能夠覆蓋全部有問題的代碼段后篩選過程結(jié)束。
[0013]與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點(diǎn):
[0014]傳統(tǒng)的靜態(tài)檢測(cè)存在誤報(bào)率高的缺陷,而模糊測(cè)試技術(shù)由于采用隨機(jī)用例進(jìn)行測(cè)試,測(cè)試效率比較低。本發(fā)明結(jié)合靜態(tài)檢測(cè)和模糊測(cè)試優(yōu)勢(shì),通過模糊測(cè)試對(duì)靜態(tài)檢測(cè)進(jìn)行驗(yàn)證,排除靜態(tài)檢測(cè)的誤報(bào)情況。另一方面,利用靜態(tài)檢測(cè)的結(jié)果對(duì)模糊測(cè)試進(jìn)行指導(dǎo),令模糊測(cè)試所使用的隨機(jī)測(cè)試用例更有針對(duì)性,提高了模糊測(cè)試的效率。
【附圖說明】
[0015]圖1為本發(fā)明所述方法的組成架構(gòu)圖;
[0016]圖2為本發(fā)明所述方法的流程圖。
【具體實(shí)施方式】
[0017]下面結(jié)合附圖和【具體實(shí)施方式】對(duì)本發(fā)明做進(jìn)一步說明。
[0018]一種基于靜態(tài)檢測(cè)的模糊測(cè)試方法,流程圖2所示,包括以下步驟:
[0019]步驟I,源代碼分析。
[0020]步驟1.1,對(duì)目標(biāo)軟件的源代碼進(jìn)行建模。
[0021]對(duì)于非腳本類軟件系統(tǒng),首先利用相應(yīng)的編譯器,將源代碼轉(zhuǎn)換為抽象語法樹,然后在抽象語法樹的基礎(chǔ)上對(duì)軟件進(jìn)行建模;對(duì)于腳本類軟件系統(tǒng),如:PHP軟件等,直接進(jìn)行軟件建模。
[0022]步驟1.2,對(duì)源代碼進(jìn)行靜態(tài)安全分析。
[0023]根據(jù)軟件代碼安全規(guī)則集,采用數(shù)據(jù)流分析引擎、語義分析引擎、程序結(jié)構(gòu)分析引擎、控制流分析引擎和配置分析引擎,從多個(gè)方面對(duì)步驟1.1建立的軟件源代碼模型進(jìn)行安全分析,并生成分析結(jié)果。
[0024]步驟2,模糊測(cè)試。
[0025]步驟2.1,根據(jù)源代碼掃描結(jié)果的漏洞跟蹤信息,在漏洞觸發(fā)的調(diào)用路徑上進(jìn)行插粧標(biāo)記。
[0026]步驟2.2,對(duì)插粧后的代碼進(jìn)行編譯鏈接生成可執(zhí)行映像,根據(jù)插粧標(biāo)記記錄對(duì)應(yīng)漏洞的可執(zhí)行代碼路徑;在隨后的模糊測(cè)試過程中,程序跟蹤器根據(jù)上述插粧信息判斷測(cè)試用例在執(zhí)行過程是否覆蓋漏洞路徑。
[0027]步驟2.3,測(cè)試程序根據(jù)靜態(tài)分析結(jié)果的漏洞類型信息加載初始測(cè)試用例,并記錄每個(gè)測(cè)試用例覆蓋的漏洞路徑。由于每個(gè)漏洞對(duì)應(yīng)的漏洞路徑包含主函數(shù),所以測(cè)試用例必然至少覆蓋部分漏洞路徑。
[0028]步驟2.4,根據(jù)覆蓋的漏洞、覆蓋的漏洞路徑長度進(jìn)行測(cè)試用例的淘汰:要求每個(gè)漏洞最多被k個(gè)測(cè)試用例所覆蓋;如果某個(gè)漏洞可被k+Ι個(gè)測(cè)試用例覆蓋,則刪除該漏洞覆蓋長度最短的測(cè)試用例。k為測(cè)試時(shí)設(shè)置的整數(shù)參量,k值越大分析時(shí)間越長,消耗資源越多,漏洞分析結(jié)果越顯著。
[0029]步驟2.5,對(duì)測(cè)試用例進(jìn)行隨機(jī)變異,即對(duì)測(cè)試用例中一個(gè)或者多個(gè)數(shù)據(jù)段的長度和內(nèi)容進(jìn)行隨機(jī)變化。如:在指定的測(cè)試用例中任選m個(gè)字節(jié),將上述每個(gè)字節(jié)數(shù)據(jù)轉(zhuǎn)換為全I(xiàn)。
[0030]步驟2.6,加載轉(zhuǎn)換的測(cè)試用例并記錄測(cè)試用例覆蓋的漏洞路徑,并跳轉(zhuǎn)到步驟
2.4繼續(xù)執(zhí)行,直到每個(gè)漏洞都可被k個(gè)測(cè)試用例完全覆蓋。
[0031]步驟1.1所述的編譯器包括GCC編譯器、.NET編譯器和JAVA編譯器等。
[0032]步驟1.2所述的生成分析結(jié)果包括漏洞類型、漏洞位置、漏洞具體跟蹤信息等。
[0033]步驟2.1所述的插粧的位置包括主函數(shù)、分支語句、函數(shù)調(diào)用和觸發(fā)漏洞的語句。
[0034]步驟2.3所述的靜態(tài)分析結(jié)果的漏洞類型信息包括緩沖區(qū)溢出、資源泄露、命令注入等。
【主權(quán)項(xiàng)】
1.一種基于靜態(tài)檢測(cè)的模糊測(cè)試方法,其特征在于包括以下步驟: 步驟I,源代碼分析; 步驟1.1,對(duì)目標(biāo)軟件的源代碼進(jìn)行建模; 對(duì)于非腳本類軟件系統(tǒng),首先利用相應(yīng)的編譯器,將源代碼轉(zhuǎn)換為抽象語法樹,然后在抽象語法樹的基礎(chǔ)上對(duì)軟件進(jìn)行建模;對(duì)于腳本類軟件系統(tǒng),直接進(jìn)行軟件建模; 步驟1.2,對(duì)源代碼進(jìn)行靜態(tài)安全分析; 根據(jù)軟件代碼安全規(guī)則集,采用數(shù)據(jù)流分析引擎、語義分析引擎、程序結(jié)構(gòu)分析引擎、控制流分析引擎和配置分析引擎,從多個(gè)方面對(duì)步驟1.1建立的軟件源代碼模型進(jìn)行安全分析,并生成分析結(jié)果; 步驟2,模糊測(cè)試; 步驟2.1,根據(jù)源代碼掃描結(jié)果的漏洞跟蹤信息,在漏洞觸發(fā)的調(diào)用路徑上進(jìn)行插粧標(biāo)記; 步驟2.2,對(duì)插粧后的代碼進(jìn)行編譯鏈接生成可執(zhí)行映像,根據(jù)插粧標(biāo)記記錄對(duì)應(yīng)漏洞的可執(zhí)行代碼路徑;在隨后的模糊測(cè)試過程中,程序跟蹤器根據(jù)上述插粧信息判斷測(cè)試用例在執(zhí)行過程是否覆蓋漏洞路徑; 步驟2.3,測(cè)試程序根據(jù)靜態(tài)分析結(jié)果的漏洞類型信息加載初始測(cè)試用例,并記錄每個(gè)測(cè)試用例覆蓋的漏洞路徑; 步驟2.4,根據(jù)覆蓋的漏洞、覆蓋的漏洞路徑長度進(jìn)行測(cè)試用例的淘汰:每個(gè)漏洞最多被k個(gè)測(cè)試用例所覆蓋;如果某個(gè)漏洞可被k+Ι個(gè)測(cè)試用例覆蓋,則刪除該漏洞覆蓋長度最短的測(cè)試用例;k為測(cè)試時(shí)設(shè)置的整數(shù)參量,k值越大分析時(shí)間越長,消耗資源越多,漏洞分析結(jié)果越顯著; 步驟2.5,對(duì)測(cè)試用例進(jìn)行隨機(jī)變異,即對(duì)測(cè)試用例中一個(gè)或者多個(gè)數(shù)據(jù)段的長度和內(nèi)容進(jìn)行隨機(jī)變化; 步驟2.6,加載轉(zhuǎn)換的測(cè)試用例并記錄測(cè)試用例覆蓋的漏洞路徑,并跳轉(zhuǎn)到步驟2.4繼續(xù)執(zhí)行,直到每個(gè)漏洞都可被k個(gè)測(cè)試用例完全覆蓋。
2.根據(jù)權(quán)利要求1所述的一種基于靜態(tài)檢測(cè)的模糊測(cè)試方法,其特征在于,步驟1.1所述的編譯器包括GCC編譯器、.NET編譯器和JAVA編譯器。
3.根據(jù)權(quán)利要求1所述的一種基于靜態(tài)檢測(cè)的模糊測(cè)試方法,其特征在于,步驟1.2所述的生成分析結(jié)果包括漏洞類型、漏洞位置和漏洞具體跟蹤信息。
4.根據(jù)權(quán)利要求1所述的一種基于靜態(tài)檢測(cè)的模糊測(cè)試方法,其特征在于,步驟2.1所述的插粧的位置包括主函數(shù)、分支語句、函數(shù)調(diào)用和觸發(fā)漏洞的語句。
5.根據(jù)權(quán)利要求1所述的一種基于靜態(tài)檢測(cè)的模糊測(cè)試方法,其特征在于,步驟2.3所述的靜態(tài)分析結(jié)果的漏洞類型信息包括緩沖區(qū)溢出、資源泄露和命令注入。
【專利摘要】本發(fā)明屬于網(wǎng)絡(luò)安全技術(shù)領(lǐng)域,涉及一種基于靜態(tài)檢測(cè)的模糊測(cè)試方法。所述方法包括源代碼靜態(tài)分析和可執(zhí)行代碼模糊測(cè)試。首先通過源代碼靜態(tài)分析相關(guān)軟件對(duì)目標(biāo)軟件進(jìn)行靜態(tài)分析,模糊測(cè)試獲得靜態(tài)分析結(jié)果,然后對(duì)靜態(tài)分析認(rèn)為存在問題的代碼段進(jìn)行插樁標(biāo)記,最后基于插樁標(biāo)記對(duì)測(cè)試用例進(jìn)行變異,使測(cè)試用例能夠覆蓋存在問題的全部代碼段。本發(fā)明結(jié)合靜態(tài)檢測(cè)和模糊測(cè)試優(yōu)勢(shì),通過模糊測(cè)試對(duì)靜態(tài)檢測(cè)進(jìn)行驗(yàn)證,排除靜態(tài)檢測(cè)的誤報(bào)情況。另一方面,利用靜態(tài)檢測(cè)的結(jié)果對(duì)模糊測(cè)試進(jìn)行指導(dǎo),令模糊測(cè)試所使用的隨機(jī)測(cè)試用例更有針對(duì)性,提高了模糊測(cè)試的效率??朔瞬捎秒S機(jī)用例進(jìn)行測(cè)試的傳統(tǒng)方法中存在的誤報(bào)率高、檢測(cè)效率低等缺點(diǎn)。
【IPC分類】G06F21-57
【公開號(hào)】CN104573524
【申請(qǐng)?zhí)枴緾N201410799828
【發(fā)明人】常承偉, 吳明杰, 王澤玉, 溫泉, 施學(xué)成, 王斌, 陳志浩
【申請(qǐng)人】中國航天科工集團(tuán)第二研究院七〇六所
【公開日】2015年4月29日
【申請(qǐng)日】2014年12月19日
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
西乌珠穆沁旗| 马山县| 咸宁市| 鄂伦春自治旗| 汉川市| 分宜县| 连平县| 东乡县| 托里县| 乐昌市| 榆社县| 于都县| 凯里市| 洞头县| 临泉县| 黄冈市| 尼勒克县| 平泉县| 墨江| 宝兴县| 兰溪市| 灵川县| 通渭县| 庆云县| 古交市| 乌鲁木齐市| 蓬莱市| 秦皇岛市| 商水县| 肃宁县| 泽普县| 都兰县| 吴江市| 方正县| 沐川县| 漠河县| 东源县| 油尖旺区| 盖州市| 铁岭县| 古蔺县|