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

一種基于場(chǎng)景模型的軟件漏洞分析方法

文檔序號(hào):7864161閱讀:154來源:國知局
專利名稱:一種基于場(chǎng)景模型的軟件漏洞分析方法
技術(shù)領(lǐng)域
本發(fā)明屬于網(wǎng)絡(luò)安全技術(shù)領(lǐng)域,特別是一種面向B/S架構(gòu)的軟件漏洞分析方法。
背景技術(shù)
軟件的安全漏洞威脅著網(wǎng)絡(luò)信息安全,給惡意攻擊者提供可乘之機(jī),為木馬、病毒等惡意代碼肆意傳播大開方便之門,隨著軟件工業(yè)的發(fā)展,軟件安全漏洞的問題日益突出。為及早發(fā)現(xiàn)修補(bǔ)軟件漏洞,首先需要對(duì)軟件的安全漏洞進(jìn)行測(cè)試驗(yàn)證。軟件漏洞分析驗(yàn)證技術(shù)通過對(duì)軟件腳本代碼和運(yùn)行時(shí)行為狀態(tài)進(jìn)行測(cè)試分析,發(fā)現(xiàn)觸發(fā)軟件漏洞的數(shù)據(jù),定位軟件漏洞在代碼中的位置,為修補(bǔ)軟件漏洞提供依據(jù)。目前軟件漏洞測(cè)試驗(yàn)證方法主要分為2類靜態(tài)檢測(cè)和動(dòng)態(tài)檢測(cè)。從應(yīng)用的角度看目前還存在以下不足測(cè)試對(duì)象單一目前的漏洞分析驗(yàn)證技術(shù)主要針對(duì)具體的軟件、協(xié)議、開發(fā)語言等,通用性不強(qiáng),難以適用于快速發(fā)展的軟件工業(yè)。發(fā)現(xiàn)的漏洞類型簡(jiǎn)單目前的漏洞測(cè)試驗(yàn)證只能發(fā)現(xiàn)簡(jiǎn)單的無狀態(tài)型漏洞,難于發(fā)現(xiàn)隱性的權(quán)限提升類漏洞。缺少深度測(cè)試漏洞分析技術(shù)主要針對(duì)特定的接口、數(shù)據(jù),基于特定的代碼模式和行為模式等進(jìn)行漏洞分析,缺乏針對(duì)多種分析方法的綜合使用。

發(fā)明內(nèi)容
本發(fā)明就是為了解決上述問題,提出一種漏洞測(cè)試驗(yàn)證方法,從軟件系統(tǒng)的代碼、模塊、接口等多個(gè)方面入手,對(duì)軟件系統(tǒng)的漏洞進(jìn)行測(cè)試驗(yàn)證,定位漏洞位置。本發(fā)明的特征在于,所述場(chǎng)景模型C的數(shù)學(xué)表達(dá)式為C= {P,F(xiàn),R,M,其中P表示軟件系統(tǒng)的路徑path集合,F(xiàn)表示軟件系統(tǒng)文件名file集合,R是軟件系統(tǒng)中軟件使用的參數(shù)para集合,\是用于描述場(chǎng)景間的直接調(diào)用關(guān)系的{P,F(xiàn),R}-> {P,F(xiàn),R}的映射,所述的一種基于場(chǎng)景的軟件漏洞分析方法是一種面向?yàn)g覽器B/服務(wù)器S架構(gòu)的軟件漏洞分析方法,是在互聯(lián)網(wǎng)中的一個(gè)基于場(chǎng)景的軟件漏洞分析系統(tǒng)中依次按以下步驟實(shí)現(xiàn)的步驟(I),構(gòu)建所述的基于場(chǎng)景的軟件漏洞分析系統(tǒng),設(shè)立軟件靜態(tài)分析模塊、場(chǎng)景建模模塊、測(cè)試控制模塊、測(cè)試數(shù)據(jù)加載模塊、測(cè)試用例庫以及軟件通信模塊,其中 軟件靜態(tài)分析模塊,對(duì)軟件的可執(zhí)行代碼的語句逐條進(jìn)行分析,得到軟件的執(zhí)行路徑、用以標(biāo)記軟件的人機(jī)接口代碼,與其他軟件交互的數(shù)據(jù)接口代碼,從中獲取包括軟件開發(fā)語言、運(yùn)行平臺(tái)、數(shù)據(jù)庫、組成文件、功能所用技術(shù)以及用戶幾口在內(nèi)的軟件參數(shù)信息,場(chǎng)景建模模塊,從所述軟件靜態(tài)分析模塊輸入所屬軟件參數(shù)信息按照軟件的組成文件。功能調(diào)用參數(shù)建立軟件的用戶狀態(tài)集合,得到軟件場(chǎng)景模型,測(cè)試控制模塊,根據(jù)從所述軟件靜態(tài)分析模塊輸入的軟件基本信息從測(cè)試用例庫中選擇初始測(cè)試用例,同事根據(jù)從所述場(chǎng)景建模模塊輸入的軟件場(chǎng)景模型控制軟件加載數(shù)據(jù)的加載策略,測(cè)試數(shù)據(jù)加載模塊解析測(cè)試用例庫中的測(cè)試用例并把測(cè)試數(shù)據(jù)庫判入到所述目標(biāo)軟件中,同時(shí)根基測(cè)試數(shù)據(jù)生成策略對(duì)測(cè)試數(shù)據(jù)進(jìn)行變換的適應(yīng)具體軟件,步驟(2),在所述的基于場(chǎng)景的軟件漏洞分析系統(tǒng)中依次按以下步驟對(duì)所述的瀏覽器B/服務(wù)器S架構(gòu)的軟件進(jìn)行漏洞分析;步驟(2. 1),所述軟件靜態(tài)分析模塊,按以下步驟掃描軟件代碼,構(gòu)建目標(biāo)軟件系統(tǒng)的場(chǎng)景參數(shù)集合步驟(2.1. 1),掃描并分析待分析的目標(biāo)軟件的代碼,得到并分析可執(zhí)行文件的后綴名,再按后綴名的異同進(jìn)行初步的場(chǎng)景劃分,所述可執(zhí)行文件至少包括jsp類型文件、asp類型文件、aspx類型文件、php類型文件、pi類型文件;步驟(2.1. 2),對(duì)步驟(2.1.1)中進(jìn)行場(chǎng)景劃分名的各類可執(zhí)行文件進(jìn)行遍歷、獲取各類可執(zhí)行文件的參數(shù)變量,建立各類可執(zhí)行文件的參數(shù)列表,步驟(2.1. 3),對(duì)于每一類內(nèi)各可執(zhí)行文件在所調(diào)用的參數(shù)數(shù)量、參數(shù)名稱上的差異,再次進(jìn)行類內(nèi)場(chǎng)景劃分,從而構(gòu)建出以可執(zhí)行文件名,調(diào)用參數(shù)列表為標(biāo)識(shí)的軟件系統(tǒng)場(chǎng)景參數(shù)集合E :E = {P,F(xiàn),R,H},其中所述Path G P,file G F,para G R,H是場(chǎng)景的特征char集合,char G H,所述場(chǎng)景的特征至少包括軟件開發(fā)語言、運(yùn)行平臺(tái)、數(shù)據(jù)庫、組成文件、功能調(diào)用參數(shù)以及用戶接口,步驟(2. 2)所述場(chǎng)景建模模塊對(duì)輸入的所述軟件基本信息中的軟件代碼進(jìn)行分析,建立場(chǎng)景模型C 遍歷目標(biāo)軟件系統(tǒng)內(nèi)的每個(gè)可執(zhí)行文件,對(duì)所述每類目標(biāo)軟件的跳轉(zhuǎn)指合,調(diào)用指合、條用指合進(jìn)行分析,通過其中對(duì)觸發(fā)GET協(xié)議、POST協(xié)議操作的語句進(jìn)行分析,提取各GET協(xié)議、POST協(xié)議提交的文件路徑及參數(shù),通過分場(chǎng)景參數(shù)集合S中的三元組{P,F(xiàn),R}進(jìn)行比對(duì),完全相同的則建立反映二個(gè)場(chǎng)景問的調(diào)用關(guān)系的軟件場(chǎng)景模型C,C= {P,F(xiàn),R,入},已如上述;步驟(2. 3)所述測(cè)試控制模塊運(yùn)行用戶部署的軟件系統(tǒng),記錄軟件行為步驟(2.3. 1),所述軟件靜態(tài)分析模塊向所述測(cè)試控制模塊輸入目標(biāo)軟件基本信息,所述場(chǎng)景建模模塊向所述測(cè)試控制系統(tǒng)輸入所述目標(biāo)軟件的軟件場(chǎng)景模型,步驟(2. 3. 2),用戶想所述測(cè)試控制模塊部署用戶軟件系統(tǒng),輸入測(cè)試奇數(shù),并反問所述用戶軟件系統(tǒng)的各個(gè)功能,同事加載瀏覽器調(diào)試器監(jiān)視說書用戶軟件系統(tǒng)運(yùn)行,步驟(2. 3. 3)所述用戶軟件系統(tǒng)內(nèi)的軟件,根據(jù)用戶的每次請(qǐng)求返回如下各種不同的對(duì)應(yīng)結(jié)果若超級(jí)文本傳輸協(xié)議HTTP返回的編碼為200,貝IJ,用戶本次請(qǐng)求導(dǎo)致的場(chǎng)景切換成功,記錄相應(yīng)的用戶請(qǐng)求文件,參數(shù)值以及變化前后的場(chǎng)景,若所述HTTP返回的編碼為400、401、403中的任何一種,貝U,用戶本次請(qǐng)求導(dǎo)致的場(chǎng)景切換失敗,不記錄,
若所述HTTP返回的編碼是500,則,可能已經(jīng)觸發(fā)漏洞,記錄相應(yīng)的用戶請(qǐng)求文件,參數(shù)值以及變化前后的場(chǎng)景,并標(biāo)記漏洞觸發(fā)數(shù)據(jù),步驟(2. 3. 4)除了切換失敗及成功的場(chǎng)景以外,去除步驟(2. 3. 3)中具有相同的場(chǎng)景轉(zhuǎn)化關(guān)系和相同參數(shù)值的以序列形成表述的場(chǎng)景變化,簡(jiǎn)化場(chǎng)景變化序列,用I表示其結(jié)果,步驟(2. 3. 5)用戶把所有的軟件的功能至少運(yùn)行使用一次,形成初始測(cè)試場(chǎng)景U U = {S。,E,I},其中S0 :初始測(cè)試場(chǎng)景中的所有場(chǎng)景參數(shù)集合,E :用戶提交的數(shù)據(jù)資源集合,1:簡(jiǎn)化后的場(chǎng)景變化序數(shù),步驟(2. 4)所述測(cè)試數(shù)據(jù)加載模塊依次按以下步驟按照用戶軟件的特征,選擇初始測(cè)試用例;步驟(2. 4.1),從用戶輸入的測(cè)試參數(shù)中獲取用戶軟件系統(tǒng)開發(fā)語言,運(yùn)行平臺(tái)和數(shù)據(jù)庫類型,步驟(2. 4. 2),從步驟(2. 3. 5)獲取的所述初始測(cè)試場(chǎng)景U中的具體參數(shù)值中得到參數(shù)的類型,其中至少包括整型,字符型以及二進(jìn)制型中的一種或一種以上,步驟(2. 4.3),按照步驟(2.4.2)中的具體參數(shù)從所述測(cè)試用例庫中選擇同類的測(cè)試用例,針對(duì)相應(yīng)的參數(shù)進(jìn)行數(shù)據(jù)加載測(cè)試,同時(shí)加載監(jiān)視器監(jiān)視場(chǎng)景變化,步驟(2. 4. 4),在步驟(2. 4. 3)加載測(cè)試用例過程中,得到如下不同的結(jié)果若所述HTTP返回的編碼是200,則,用戶本次請(qǐng)求導(dǎo)致的場(chǎng)景切換成功,記錄相應(yīng)的請(qǐng)求文件,參數(shù)值以及變化前后的場(chǎng)景,若所述HTTP返回的編碼是400、401、403中的任何一種,貝U,用戶本次請(qǐng)求導(dǎo)致的場(chǎng)景切換失敗,不記錄,若所述HTTP返回的編碼是500,則,可能已觸發(fā)漏洞,記錄相應(yīng)的用戶請(qǐng)求文件、參數(shù)值以及變化前后的場(chǎng)景,并標(biāo)記漏洞觸發(fā)參數(shù),步驟(2. 4. 5),把步驟(2. 4. 4)產(chǎn)生異常行為及異常場(chǎng)景轉(zhuǎn)換的數(shù)據(jù)添加到所述測(cè)試用例庫中,并記錄對(duì)應(yīng)的用戶軟件信息,包括軟件開發(fā)語言運(yùn)行平臺(tái)、數(shù)據(jù)庫的基本信息在場(chǎng)景轉(zhuǎn)換中減少的參數(shù)類型,以及修改的包括常量參數(shù)在內(nèi)的參數(shù)類型及對(duì)應(yīng)的參數(shù)值,步驟(2. 4. 6),所述測(cè)試數(shù)據(jù)加載模塊向所述軟件通信模塊把云發(fā)送請(qǐng)求;獲準(zhǔn)后,到云基于場(chǎng)景的漏洞分析數(shù)據(jù)。在步驟(2. 4. 5)后,增加下述一個(gè)步驟按以下測(cè)試策略調(diào)整用戶到入的測(cè)試數(shù)據(jù)集合E,并返回步驟(2. 4.1),重新測(cè)試,一直到場(chǎng)景切換成功為止;不按照在目標(biāo)軟件系統(tǒng)場(chǎng)景模型中的場(chǎng)景轉(zhuǎn)換類系進(jìn)行場(chǎng)景功能調(diào)用,或者通過減少調(diào)用參數(shù)來進(jìn)行場(chǎng)景功能調(diào)用,或者多次隨機(jī)修改場(chǎng)景轉(zhuǎn)換過程中的變
量參數(shù)。
本發(fā)明可以對(duì)基于B/S架構(gòu)的具有多級(jí)權(quán)限的軟件系統(tǒng)進(jìn)行漏洞分析。


圖1,本發(fā)明所述基于場(chǎng)景模型的軟件漏洞分析系統(tǒng)的框圖,圖2,本發(fā)明的程序流程框圖。
具體實(shí)施例方式一種基于場(chǎng)景的軟件漏洞分析系統(tǒng),包括軟件靜態(tài)分析模塊1、場(chǎng)景建模模塊2、測(cè)試控制模塊3、測(cè)試數(shù)據(jù)加載模塊4、軟件運(yùn)行監(jiān)視模塊5、軟件通信模塊6。(I)軟件靜態(tài)分析模塊軟件靜態(tài)分析模塊主要功能是將軟件的可執(zhí)行代碼的語句逐條分析得到軟件的執(zhí)行路徑,標(biāo)記軟件的人機(jī)接口代碼以及與其他軟件交互的數(shù)據(jù)接口代碼,獲取軟件開發(fā)語言、運(yùn)行平臺(tái)、數(shù)據(jù)庫、組成文件、功能調(diào)用參數(shù)、用戶接口等信息。(2)場(chǎng)景建模模塊場(chǎng)景建模模塊主要功能是根據(jù)場(chǎng)景軟件靜態(tài)分析模塊的結(jié)果,按照軟件的組成文件、功能調(diào)用參數(shù)建立軟件的用戶狀態(tài)集合。(3)測(cè)試控制模塊測(cè)試控制模塊主要功能是根據(jù)軟件基本信息選擇初始的測(cè)試用例,同時(shí)根據(jù)軟件場(chǎng)景模型控制軟件測(cè)試數(shù)據(jù)的加載策略。(4)測(cè)試數(shù)據(jù)加載模塊測(cè)試數(shù)據(jù)加載模塊的主要功能是解析用例庫中的用例并將用例測(cè)試數(shù)據(jù)輸入到軟件中,同時(shí)根據(jù)測(cè)試數(shù)據(jù)生成策略對(duì)測(cè)試數(shù)據(jù)進(jìn)行變換以適應(yīng)具體軟件。(5)軟件運(yùn)行監(jiān)視模塊軟件運(yùn)行監(jiān)視模塊主要功能是分析測(cè)試數(shù)據(jù)的返回結(jié)果,跟蹤軟件執(zhí)行狀態(tài)。(6)軟件通信模塊軟件通信模塊主要功能是屏蔽具體軟件的差異性,實(shí)現(xiàn)與目標(biāo)軟件的通信功能。下面結(jié)合流程圖,對(duì)基于場(chǎng)景的漏洞測(cè)試驗(yàn)證技術(shù)做詳細(xì)說明,應(yīng)該強(qiáng)調(diào)的是,下述說明僅僅是示例性的,而不是為了限制本發(fā)明的范圍及其應(yīng)用。步驟1:掃描軟件代碼,通過分析掃描得到的執(zhí)行文件,獲取可執(zhí)行文件數(shù)據(jù)接口、參數(shù)信息,并根據(jù)不同可執(zhí)行文件、數(shù)據(jù)接口、參數(shù)的不同組合初步構(gòu)建軟件系統(tǒng)的場(chǎng)景參數(shù)集合。具體步驟如下I)遍歷根據(jù)系統(tǒng)包含的可執(zhí)行文件(包括jsp類型腳本文件、asp類型腳本文件、aspx類型腳本文件、php類型腳本文件、pi類型腳本文件等),根據(jù)文件后綴名進(jìn)行初步的場(chǎng)景劃分;2)遍歷每類可執(zhí)行文件,獲取可執(zhí)行文件的參數(shù)變量,建立可執(zhí)行文件的參數(shù)列表;3)根據(jù)可執(zhí)行文件之間的調(diào)用的參數(shù)差異對(duì)上述基于文件建立的場(chǎng)景再次進(jìn)行場(chǎng)景劃分,參數(shù)差異包括參數(shù)數(shù)量、參量名稱;通過上述兩步操作操作,構(gòu)建出以文件名,調(diào)用參數(shù)列表為標(biāo)識(shí)的軟件系統(tǒng)的場(chǎng)景參數(shù)集合,每個(gè)場(chǎng)景的表示如下所示K= {x I X = (path, file,para, char) ,path G P,file G F,para G R, char G Q};其中K是軟件系統(tǒng)場(chǎng)景參數(shù)集合,P是軟件系統(tǒng)文件路徑集合,F(xiàn)是軟件系統(tǒng)文件名集合,R是軟件系統(tǒng)中軟件使用的參數(shù)集合,Q是場(chǎng)景的特征集合。步驟2 :通過對(duì)目標(biāo)軟件代碼的跳轉(zhuǎn)指令、調(diào)用指令部分進(jìn)行分析,獲取可執(zhí)行文件以及功能函數(shù)之間的調(diào)用關(guān)系、調(diào)用方法、調(diào)用參數(shù)。結(jié)合步驟I中獲取的場(chǎng)景參數(shù)集合,按照文件名、功能函數(shù)標(biāo)識(shí)、參數(shù)建立場(chǎng)景的調(diào)用關(guān)系,初步完整建立軟件場(chǎng)景參數(shù)集

口 o具體步驟如下遍歷目標(biāo)軟件系統(tǒng)內(nèi)可執(zhí)行文件,對(duì)觸發(fā)GET傳輸協(xié)議、POST傳輸協(xié)議操作的語句進(jìn)行分析,提取協(xié)議提交的文件路徑及參數(shù),通過與場(chǎng)景集合的三元組(path,file,para)進(jìn)行比對(duì),完全相同的則建立兩個(gè)場(chǎng)景間的調(diào)用關(guān)系,從而建立軟件場(chǎng)景模型的調(diào)用關(guān)系;軟件系統(tǒng)場(chǎng)景C的數(shù)學(xué)表示如下C = {P,F(xiàn),R,入}其中P表示軟件系統(tǒng)的文件路徑集合,F(xiàn)表示軟件系統(tǒng)文件名稱的集合,R表示軟件系統(tǒng)中軟件使用的參數(shù)集合,、是{P,F(xiàn),R} — {P,F(xiàn),R}的映射,用于描述場(chǎng)景間的直接調(diào)用關(guān)系。步驟3 :運(yùn)行目標(biāo)軟件系統(tǒng),通過加載調(diào)試器監(jiān)視目標(biāo)軟件系統(tǒng)運(yùn)行,同時(shí)由測(cè)試人員參與對(duì)軟件系統(tǒng)進(jìn)行正常的配置使用,由調(diào)試器記錄軟件行為及各個(gè)場(chǎng)景使用的資源以及調(diào)用條件,并形成初始測(cè)試記錄。具體步驟如下所示I)用戶部署軟件系統(tǒng),并訪問軟件系統(tǒng)的各個(gè)功能,同時(shí)加載瀏覽器調(diào)試器監(jiān)視軟件運(yùn)行;2)軟件會(huì)根據(jù)用戶的每次請(qǐng)求返回相應(yīng)的結(jié)果,如果HTTP返回編碼是200等,則本次請(qǐng)求導(dǎo)致的場(chǎng)景切換成功,記錄相應(yīng)的請(qǐng)求文件、參數(shù)值、變化前后的場(chǎng)景;如果HTTP返回編碼是400、401、403等,則本次請(qǐng)求導(dǎo)致的場(chǎng)景切換失敗,不進(jìn)行記錄;如果HTTP返回編碼是500等,可能已經(jīng)觸發(fā)漏洞,記錄相應(yīng)的請(qǐng)求文件、參數(shù)值、變化前后的場(chǎng)景,并標(biāo)記漏洞觸發(fā)數(shù)據(jù)。3)對(duì)軟件場(chǎng)景的變化序列進(jìn)行簡(jiǎn)化,通過去除具有相同的場(chǎng)景轉(zhuǎn)換關(guān)系和相同的參數(shù)值的場(chǎng)景變化序列來簡(jiǎn)化場(chǎng)景變化序列;4)建立的初始場(chǎng)景應(yīng)覆蓋所有的軟件場(chǎng)景,即用戶將所有的軟件功能至少運(yùn)行使
用一次。最后形成的初始測(cè)試場(chǎng)景表示方式如下U = {S0, E, 1}U是初始測(cè)試場(chǎng)景,S0是初始測(cè)試場(chǎng)景中的所有場(chǎng)景集合,E是用戶提交的數(shù)據(jù)資源集合,I是經(jīng)過簡(jiǎn)化的場(chǎng)景變化序列。步驟4:待測(cè)試人員在運(yùn)行時(shí)覆蓋了所有軟件功能之后,根據(jù)軟件系統(tǒng)的開發(fā)語言、運(yùn)行平臺(tái)等因素,針對(duì)不同功能接口的輸入?yún)?shù)類型加載相應(yīng)的測(cè)試數(shù)據(jù),對(duì)系統(tǒng)進(jìn)行模糊測(cè)試,并監(jiān)聽分析軟件系統(tǒng)的行為及反饋信息,記錄在步驟3中測(cè)試人員使用各類功能尚未出現(xiàn)的行為、反饋信息及場(chǎng)景間的轉(zhuǎn)換關(guān)系作為疑似的漏洞觸發(fā)。本步驟測(cè)試通過按照下面規(guī)則自動(dòng)提交用戶請(qǐng)求,具體步驟如下I)從用戶輸入的測(cè)試參數(shù)獲取軟件系統(tǒng)的軟件開發(fā)語言、運(yùn)行平臺(tái)、使用的數(shù)據(jù)庫類型;2)從步驟3獲取的具體參數(shù)值獲取參數(shù)類型(如整型、字符型、二進(jìn)制型等);3)根據(jù)上述數(shù)據(jù)選擇已分類的測(cè)試用例,針對(duì)相應(yīng)的變量類型進(jìn)行加載測(cè)試,同時(shí)加載監(jiān)視器監(jiān)視場(chǎng)景變化;4)在上述加載測(cè)試用例的過程中,如果HTTP返回編碼是200,則本次請(qǐng)求導(dǎo)致的場(chǎng)景切換成功,記錄相應(yīng)的請(qǐng)求文件、參數(shù)值、變化前后的場(chǎng)景;如果HTTP返回編碼是400、401、403等,則本次請(qǐng)求導(dǎo)致的場(chǎng)景切換失敗,不進(jìn)行記錄;如果HTTP返回編碼是500,可能已經(jīng)觸發(fā)漏洞,記錄相應(yīng)的請(qǐng)求文件、參數(shù)值、變化前后的場(chǎng)景,并標(biāo)記漏洞觸發(fā)數(shù)據(jù)步驟5 :在測(cè)試過程中,根據(jù)觸發(fā)的場(chǎng)景轉(zhuǎn)換,調(diào)整生成的測(cè)試數(shù)據(jù),使軟件系統(tǒng)的所有場(chǎng)景的功能、參數(shù)經(jīng)歷集中的模糊測(cè)試。具體的測(cè)試策略如下I)不按照在軟件系統(tǒng)場(chǎng)景模型中的場(chǎng)景轉(zhuǎn)換關(guān)系進(jìn)行場(chǎng)景功能調(diào)用;2)通過減少調(diào)用參數(shù)進(jìn)行場(chǎng)景功能調(diào)用;3)多次隨機(jī)修改場(chǎng)景轉(zhuǎn)換過程中的變量參數(shù);步驟6 :在測(cè)試過程中,將產(chǎn)生異常行為及異常場(chǎng)景轉(zhuǎn)換的數(shù)據(jù)添加到測(cè)試用例庫中并記錄對(duì)應(yīng)的目標(biāo)軟件信息,提升測(cè)試用例庫的測(cè)試能力及相關(guān)軟件系統(tǒng)的適應(yīng)性。針對(duì)導(dǎo)致異常場(chǎng)景的每次測(cè)試請(qǐng)求,具體記錄內(nèi)容如下I)開發(fā)語言、運(yùn)行平臺(tái)、數(shù)據(jù)庫基本信息;2)在場(chǎng)景轉(zhuǎn)換過程中,減少的參數(shù)類型;3)修改的參數(shù)類型(包含“常量參數(shù)”)及對(duì)應(yīng)的參數(shù)值。
權(quán)利要求
1.一種基于場(chǎng)景模型的軟件漏洞分析方法,其特征在于所述場(chǎng)景模型C的數(shù)學(xué)表達(dá)式為C= {P,F(xiàn),R,入},其中P表示軟件系統(tǒng)的路徑path集合,F(xiàn)表示軟件系統(tǒng)文件名file集合,R是軟件系統(tǒng)中軟件使用的參數(shù)para集合,\是用于描述場(chǎng)景間的直接調(diào)用關(guān)系的{P,F(xiàn),R}-> {P,F(xiàn),R}的映射,所述的一種基于場(chǎng)景的軟件漏洞分析方法是一種面向?yàn)g覽器B/服務(wù)器S架構(gòu)的軟件漏洞分析方法,是在互聯(lián)網(wǎng)中的一個(gè)基于場(chǎng)景的軟件漏洞分析系統(tǒng)中依次按以下步驟實(shí)現(xiàn)的 步驟(I),構(gòu)建所述的基于場(chǎng)景的軟件漏洞分析系統(tǒng),設(shè)立軟件靜態(tài)分析模塊、場(chǎng)景建模模塊、測(cè)試控制模塊、測(cè)試數(shù)據(jù)加載模塊、測(cè)試用例庫以及如阿年通信模塊,其中軟件靜態(tài)分析模塊,對(duì)軟件的可執(zhí)行代碼的語句逐條進(jìn)行分析,得到軟件的執(zhí)行路徑、用以標(biāo)記軟件的人機(jī)接口代碼,與其他軟件交互的數(shù)據(jù)接口代碼,從中獲取包括軟件開發(fā)語言、運(yùn)行平臺(tái)、數(shù)據(jù)庫、組成文件、功能所用技術(shù)以及用戶幾口在內(nèi)的軟件參數(shù)信息,場(chǎng)景建模模塊,從所述軟件靜態(tài)分析模塊輸入所屬軟件參數(shù)信息按照軟件的組成文件。功能調(diào)用參數(shù)建立軟件的用戶狀態(tài)集合,得到軟件場(chǎng)景模型, 測(cè)試控制模塊,根據(jù)從所述軟件靜態(tài)分析模塊輸入的軟件基本信息從測(cè)試用例庫中選擇初始測(cè)試用例,同事根據(jù)從所述場(chǎng)景建模模塊輸入的軟件場(chǎng)景模型控制軟件加載數(shù)據(jù)的加載策略, 測(cè)試數(shù)據(jù)加載模塊解析測(cè)試用例庫中的測(cè)試用例并把測(cè)試數(shù)據(jù)庫判入到所述目標(biāo)軟件中,同時(shí)根基測(cè)試數(shù)據(jù)生成策略對(duì)測(cè)試數(shù)據(jù)進(jìn)行變換的適應(yīng)具體軟件, 步驟(2),在所述的基于場(chǎng)景的軟件漏洞分析系統(tǒng)中依次按以下步驟對(duì)所述的瀏覽器B/服務(wù)器S架構(gòu)的軟件進(jìn)行漏洞分析; 步驟(2.1),所述軟件靜態(tài)分析模塊,按以下步驟掃描軟件代碼,構(gòu)建目標(biāo)軟件系統(tǒng)的場(chǎng)景參數(shù)集合 步驟(2.1.1),掃描并分析待分析的目標(biāo)軟件的代碼,得到并分析可執(zhí)行文件的后綴名,再按后綴名的異同進(jìn)行初步的場(chǎng)景劃分,所述可執(zhí)行文件至少包括jsp類型文件、asp類型文件、aspx類型文件、php類型文件、pi類型文件, 步驟(2.1. 2),對(duì)步驟(2.1.1)中進(jìn)行場(chǎng)景劃分名的各類可執(zhí)行文件進(jìn)行遍歷、獲取各類可執(zhí)行文件的參數(shù)變量,建立各類可執(zhí)行文件的參數(shù)列表, 步驟(2.1. 3),對(duì)于每一類內(nèi)各可執(zhí)行文件在所調(diào)用的參數(shù)數(shù)量、參數(shù)名稱上的差異,再次進(jìn)行類內(nèi)場(chǎng)景劃分,從而構(gòu)建出以可執(zhí)行文件名,調(diào)用參數(shù)列表為標(biāo)識(shí)的軟件系統(tǒng)場(chǎng)景參數(shù)集合E : E = {P,F(xiàn),R,H},其中所述 Path G P, file G F, para G R, H是場(chǎng)景的特征char集合,char G H, 所述場(chǎng)景的特征至少包括軟件開發(fā)語言、運(yùn)行平臺(tái)、數(shù)據(jù)庫、組成文件、功能調(diào)用參數(shù)以及用戶接口, 步驟(2. 2)所述場(chǎng)景建模模塊對(duì)輸入的所述軟件基本信息中的軟件代碼進(jìn)行分析,建立場(chǎng)景模型C 遍歷目標(biāo)軟件系統(tǒng)內(nèi)的每個(gè)可執(zhí)行文件,對(duì)所述每類目標(biāo)軟件的跳轉(zhuǎn)指合,調(diào)用指合、條用指合進(jìn)行分析,通過其中對(duì)觸發(fā)GET協(xié)議、POST協(xié)議操作的語句進(jìn)行分析,提取各GET協(xié)議、POST協(xié)議提交的文件路徑及參數(shù),通過分場(chǎng)景參數(shù)集合S中的三元組{P,F(xiàn),R}進(jìn)行比對(duì),完全相同的則建立反映二個(gè)場(chǎng)景問的調(diào)用關(guān)系的軟件場(chǎng)景模型C,C= {P,F(xiàn),R,入},已如上述; 步驟(2. 3)所述測(cè)試控制模塊運(yùn)行用戶部署的軟件系統(tǒng),記錄軟件行為 步驟(2. 3. 1),所述軟件靜態(tài)分析模塊向所述測(cè)試控制模塊輸入目標(biāo)軟件基本信息,所述場(chǎng)景建模模塊向所述測(cè)試控制系統(tǒng)輸入所述目標(biāo)軟件的軟件場(chǎng)景模型, 步驟(2. 3. 2),用戶想所述測(cè)試控制模塊部署用戶軟件系統(tǒng),輸入測(cè)試奇數(shù),并反問所述用戶軟件系統(tǒng)的各個(gè)功能,同事加載瀏覽器調(diào)試器監(jiān)視說書用戶軟件系統(tǒng)運(yùn)行, 步驟(2. 3. 3)所述用戶軟件系統(tǒng)內(nèi)的軟件,根據(jù)用戶的每次請(qǐng)求返回如下各種不同的對(duì)應(yīng)結(jié)果 若超級(jí)文本傳輸協(xié)議HTTP返回的編碼為200, 貝U,用戶本次請(qǐng)求導(dǎo)致的場(chǎng)景切換成功,記錄相應(yīng)的用戶請(qǐng)求文件,參數(shù)值以及變化前后的場(chǎng)景, 若所述HTTP返回的編碼為400、401、403中的任何一種, 貝U,用戶本次請(qǐng)求導(dǎo)致的場(chǎng)景切換失敗,不記錄, 若所述HTTP返回的編碼是500, 貝U,可能已經(jīng)觸發(fā)漏洞,記錄相應(yīng)的用戶請(qǐng)求文件,參數(shù)值以及變化前后的場(chǎng)景,并標(biāo)記漏洞觸發(fā)數(shù)據(jù), 步驟(2.3.4)除了切換失敗及成功的場(chǎng)景以外,去除步驟(2.3.3)中具有相同的場(chǎng)景轉(zhuǎn)化關(guān)系和相同參數(shù)值的以序列形成表述的場(chǎng)景變化,簡(jiǎn)化場(chǎng)景變化序列,用I表示其結(jié)果, 步驟(2. 3. 5)用戶把所有的軟件的功能至少運(yùn)行使用一次,形成初始測(cè)試場(chǎng)景U : U = {S0,E,I},其中 S0 :初始測(cè)試場(chǎng)景中的所有場(chǎng)景參數(shù)集合, E :用戶提交的數(shù)據(jù)資源集合,1:簡(jiǎn)化后的場(chǎng)景變化序數(shù), 步驟(2. 4)所述測(cè)試數(shù)據(jù)加載模塊依次按以下步驟按照用戶軟件的特征,選擇初始測(cè)試用例; 步驟(2. 4.1),從用戶輸入的測(cè)試參數(shù)中獲取用戶軟件系統(tǒng)開發(fā)語言,運(yùn)行平臺(tái)和數(shù)據(jù)庫類型, 步驟(2. 4. 2),從步驟(2. 3. 5)獲取的所述初始測(cè)試場(chǎng)景U中的具體參數(shù)值中得到參數(shù)的類型,其中至少包括整型,字符型以及二進(jìn)制型中的一種或一種以上, 步驟(2. 4.3),按照步驟(2.4.2)中的具體參數(shù)從所述測(cè)試用例庫中選擇同類的測(cè)試用例,針對(duì)相應(yīng)的參數(shù)進(jìn)行數(shù)據(jù)加載測(cè)試,同時(shí)加載監(jiān)視器監(jiān)視場(chǎng)景變化, 步驟(2. 4. 4),在步驟(2. 4. 3)加載測(cè)試用例過程中,得到如下不同的結(jié)果 若所述HTTP返回的編碼是200, 貝U,用戶本次請(qǐng)求導(dǎo)致的場(chǎng)景切換成功,記錄相應(yīng)的請(qǐng)求文件,參數(shù)值以及變化前后的場(chǎng)景, 若所述HTTP返回的編碼是400、401、403中的任何一種,貝U,用戶本次請(qǐng)求導(dǎo)致的場(chǎng)景切換失敗,不記錄, 若所述HTTP返回的編碼是500, 則,可能已觸發(fā)漏洞,記錄相應(yīng)的用戶請(qǐng)求文件、參數(shù)值以及變化前后的場(chǎng)景,并標(biāo)記漏洞觸發(fā)參數(shù)及數(shù)據(jù), 步驟(2. 4. 5),把步驟(2. 4. 4)產(chǎn)生異常行為及異常場(chǎng)景轉(zhuǎn)換的數(shù)據(jù)添加到所述測(cè)試用例庫中,并記錄對(duì)應(yīng)的用戶軟件信息,包括軟件開發(fā)語言運(yùn)行平臺(tái)、數(shù)據(jù)庫的基本信息在場(chǎng)景轉(zhuǎn)換中減少的參數(shù)類型,以及修改的包括常量參數(shù)在內(nèi)的參數(shù)類型及對(duì)應(yīng)的參數(shù)值, 步驟(2. 4. 6),所述測(cè)試數(shù)據(jù)加載模塊向所述軟件通信模塊把云發(fā)送請(qǐng)求;獲準(zhǔn)后,到云基于場(chǎng)景的漏洞分析數(shù)據(jù)。
2.根據(jù)權(quán)利要求1所述的一種基于場(chǎng)景模型的軟件漏洞分析方法,其特征在于,在步驟(2. 4. 5)后,增加下述一個(gè)步驟按以下測(cè)試策略調(diào)整用戶到入的測(cè)試數(shù)據(jù)集合E,并返回步驟(2. 4.1),重新測(cè)試,一直到場(chǎng)景切換成功為止; 不按照在目標(biāo)軟件系統(tǒng)場(chǎng)景模型中的場(chǎng)景轉(zhuǎn)換類系進(jìn)行場(chǎng)景功能調(diào)用,或者 通過減少調(diào)用參數(shù)來進(jìn)行場(chǎng)景功能調(diào)用,或者多次隨機(jī)修改場(chǎng)景轉(zhuǎn)換過程中的變量參數(shù)。
全文摘要
一種基于場(chǎng)景模型的軟件漏洞分析方法,屬于網(wǎng)絡(luò)安全領(lǐng)域,其特征在于,依次含有掃描軟件代碼的構(gòu)建場(chǎng)景集合、分析軟件代碼的建立場(chǎng)景模型、運(yùn)行軟件系統(tǒng),記錄軟件行為、根據(jù)用戶軟件特征選擇測(cè)試用例以及根據(jù)用戶的軟件運(yùn)行路徑以變換測(cè)試用例等步驟,是一種面向?yàn)g覽器B/服務(wù)器S架構(gòu)的軟件漏洞分析方法,能從用戶軟件系統(tǒng)的代碼、模塊、接口、函數(shù)調(diào)用關(guān)系等多個(gè)方面入手,對(duì)用戶的軟件系統(tǒng)的漏洞進(jìn)行測(cè)試驗(yàn)證,定位漏洞位置,具有通用性強(qiáng),能發(fā)現(xiàn)隱性的權(quán)限提升漏洞的優(yōu)點(diǎn)。
文檔編號(hào)H04L29/08GK103020529SQ201210424280
公開日2013年4月3日 申請(qǐng)日期2012年10月31日 優(yōu)先權(quán)日2012年10月31日
發(fā)明者鄭亮, 劉向東, 游春凌, 李紅, 王斌 申請(qǐng)人:中國航天科工集團(tuán)第二研究院七○六所
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
伊金霍洛旗| 彰化县| 雅江县| 宿州市| 泗水县| 西吉县| 大同县| 基隆市| 固镇县| 曲沃县| 吴川市| 平湖市| 衡阳县| 伊宁市| 德惠市| 怀宁县| 淮滨县| 福安市| 吐鲁番市| 诏安县| 襄城县| 铁岭县| 麟游县| 沐川县| 休宁县| 菏泽市| 漾濞| 上杭县| 陆丰市| 五家渠市| 依兰县| 凤凰县| 兴义市| 清徐县| 东乌珠穆沁旗| 泰来县| 高州市| 临泉县| 云安县| 托克逊县| 宝清县|