亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于變異技術(shù)的第三方構(gòu)件安全性測(cè)試系統(tǒng)

        2018-01-07 18:27:16陳錦富葛宏河蔡賽華陳加梅詹永照
        關(guān)鍵詞:安全漏洞測(cè)試用例變異

        陳錦富,葛宏河,蔡賽華,2,陳加梅,詹永照

        (1.江蘇大學(xué)計(jì)算機(jī)科學(xué)與通信工程學(xué)院,江蘇鎮(zhèn)江212013;2.中國(guó)農(nóng)業(yè)大學(xué)信息與電氣工程學(xué)院,北京100083)

        基于變異技術(shù)的第三方構(gòu)件安全性測(cè)試系統(tǒng)

        陳錦富1,葛宏河1,蔡賽華1,2,陳加梅1,詹永照1

        (1.江蘇大學(xué)計(jì)算機(jī)科學(xué)與通信工程學(xué)院,江蘇鎮(zhèn)江212013;2.中國(guó)農(nóng)業(yè)大學(xué)信息與電氣工程學(xué)院,北京100083)

        針對(duì)基于變異技術(shù)的第三方COM(component objectmodel)構(gòu)件安全性異常的自動(dòng)檢測(cè)問題,設(shè)計(jì)實(shí)現(xiàn)了一個(gè)第三方構(gòu)件安全性測(cè)試原型系統(tǒng)TCSTS(third party component security testing system).TCSTS系統(tǒng)的主要功能模塊有構(gòu)件接口分析模塊、參數(shù)變異測(cè)試模塊、條件變異測(cè)試模塊、狀態(tài)變異測(cè)試模塊和安全分析模塊.構(gòu)件接口分析模塊能分析得到被測(cè)試構(gòu)件的接口方法和參數(shù)信息;在參數(shù)變異測(cè)試模塊中,采用參數(shù)變異測(cè)試用例生成算法生成參數(shù)變異值集合進(jìn)行變異測(cè)試;在條件變異測(cè)試模塊中,生成違背前置條件的測(cè)試用例并結(jié)合后置條件檢測(cè)條件語(yǔ)句中是否存在安全漏洞;在狀態(tài)變異測(cè)試模塊中,基于行為沖突算法和條件沖突算法變異可擴(kuò)展有窮狀態(tài)機(jī)以生成沖突序列,進(jìn)而參照變異前序列進(jìn)行安全性測(cè)試,最終通過安全分析模塊生成測(cè)試報(bào)告.試驗(yàn)結(jié)果表明:所設(shè)計(jì)實(shí)現(xiàn)的TCSTS原型系統(tǒng)具有自動(dòng)化程度高、操作簡(jiǎn)單以及測(cè)試效果較好的特點(diǎn);TCSTS對(duì)異常序列的檢測(cè)率達(dá)到了20%以上,表明TCSTS能夠較好地對(duì)構(gòu)件中狀態(tài)相關(guān)的安全漏洞進(jìn)行檢測(cè).

        安全性測(cè)試;第三方構(gòu)件;參數(shù)變異測(cè)試;條件變異測(cè)試;狀態(tài)變異測(cè)試

        構(gòu)件技術(shù)的快速發(fā)展使得更多的軟件商購(gòu)買并使用第三方構(gòu)件產(chǎn)品[1-2],包括一些對(duì)安全性有著極強(qiáng)要求的關(guān)鍵軟件(如軍事、醫(yī)療、銀行、鐵路及金融等行業(yè)軟件).基于構(gòu)件的軟件工程(compo nent based software engineering,CBSE)目前已經(jīng)成為整個(gè)軟件工程領(lǐng)域的研究熱點(diǎn)[3-4],CBSE的出現(xiàn)使得軟件開發(fā)效率有了很大程度上的提高,軟件運(yùn)維的成本也得到了一定程度的降低,但安全性問題還未能被有效解決,故而一直困擾著構(gòu)件開發(fā)者以及使用者.第三方構(gòu)件是指除了構(gòu)件銷售商和使用者之外的第三方組織或者個(gè)人開發(fā)的構(gòu)件,而第三方構(gòu)件的設(shè)計(jì)說明文檔和源碼不對(duì)構(gòu)件使用者公開,導(dǎo)致構(gòu)件使用者無法知曉構(gòu)件的設(shè)計(jì)原理和架構(gòu),因此開發(fā)第三方構(gòu)件存在很大的隱憂[5].為了盡可能地降低隱憂程度,需要利用相關(guān)技術(shù)對(duì)構(gòu)件或者構(gòu)件系統(tǒng)進(jìn)行必要測(cè)試[6],然而現(xiàn)如今仍然缺少針對(duì)構(gòu)件安全性的較為有效的測(cè)試方法,已存在的一些構(gòu)件測(cè)試方法主要適用于存在詳盡需求說明和源代碼的構(gòu)件,對(duì)高度獨(dú)立且說明文檔及源碼不被使用者知曉的第三方構(gòu)件則顯得無能為力,因此,設(shè)計(jì)并實(shí)現(xiàn)一種有效的針對(duì)第三方構(gòu)件的安全性測(cè)試原型系統(tǒng)具有深遠(yuǎn)的研究意義[7-8].

        對(duì)軟件測(cè)試的研究主要從理論、技術(shù)、輔助工具和管理這4個(gè)方面進(jìn)行,其中,設(shè)計(jì)和實(shí)現(xiàn)一個(gè)便捷、高效的軟件測(cè)試原型系統(tǒng)具有很強(qiáng)的現(xiàn)實(shí)和應(yīng)用意義.COM構(gòu)件是由微軟公司開發(fā)、運(yùn)行在Win dows平臺(tái)下、使用最廣泛的一種構(gòu)件,文中擬針對(duì)第三方COM構(gòu)件,基于前面研究的條件和參數(shù)變異測(cè)試用例生成方法和狀態(tài)變異[9]測(cè)試用例生成方法,討論如何設(shè)計(jì)并實(shí)現(xiàn)一個(gè)第三方構(gòu)件安全性測(cè)試原型系統(tǒng)(third party component security testing system,TCSTS).TCSTS主要從參數(shù)變異模塊、條件變異模塊、狀態(tài)變異模塊3個(gè)方面對(duì)注入多個(gè)漏洞的構(gòu)件實(shí)施安全性測(cè)試,并進(jìn)行分析.

        1 系統(tǒng)總體模塊框架

        TCSTS是在Windows 7平臺(tái)上使用Visual Stu dio 2008開發(fā)工具和C#語(yǔ)言開發(fā)的一個(gè)針對(duì)COM構(gòu)件的安全性測(cè)試系統(tǒng),其主要有以下功能:①對(duì)待測(cè)的COM構(gòu)件進(jìn)行接口分析,得到必要的構(gòu)件方法以及參數(shù)等信息;②對(duì)參數(shù)進(jìn)行變異,并對(duì)參數(shù)變異后的構(gòu)件進(jìn)行變異測(cè)試;③ 分析方法的前置及后置條件,生成符合前置條件要求的測(cè)試用例,然后對(duì)這些測(cè)試用例進(jìn)行條件變異并對(duì)測(cè)試用例進(jìn)行變異測(cè)試;④對(duì)待測(cè)構(gòu)件的方法序列進(jìn)行轉(zhuǎn)換,使其轉(zhuǎn)換成UML中的可擴(kuò)展?fàn)顟B(tài)圖,然后針對(duì)EFSM進(jìn)行變異,從而生成行為沖突序列及條件沖突序列,最后對(duì)上述不可達(dá)的沖突序列進(jìn)行執(zhí)行,并對(duì)其進(jìn)行狀態(tài)變異測(cè)試;⑤對(duì)經(jīng)過參數(shù)變異、條件變異和狀態(tài)變異后得到的測(cè)試用例進(jìn)行安全性分析,生成構(gòu)件安全檢測(cè)報(bào)告.圖1為TCSTS系統(tǒng)的總體結(jié)構(gòu)圖.

        圖1 TCSTS系統(tǒng)總體結(jié)構(gòu)圖

        對(duì)圖1中的主要功能模塊做如下簡(jiǎn)單介紹,其中的核心模塊在第2-4節(jié)中進(jìn)行詳細(xì)討論.

        1.1 構(gòu)件接口分析模塊

        在TCSTS原型系統(tǒng)中,通過分析構(gòu)件類型信息(TypeInfo)獲得與構(gòu)件接口方法相關(guān)的詳細(xì)信息.TCSTS原型系統(tǒng)提取COM構(gòu)件或者動(dòng)態(tài)鏈接庫(kù)中的類型庫(kù)文件,類型庫(kù)文件既可以是單獨(dú)的二進(jìn)制文件(.tlb)、動(dòng)態(tài)鏈接庫(kù)文件(.dll),也可以是可執(zhí)行文件(.olb,.exe)中的資源.對(duì)類型庫(kù)進(jìn)行分析得到以下4個(gè)信息:

        1)類型庫(kù)的名稱以及類型庫(kù)版本信息.

        2)類型信息的數(shù)目.

        3)每個(gè)類型信息的接口類型(如Interface,Dis patch等)、函數(shù)的數(shù)目及變量的數(shù)目.

        4)構(gòu)件方法名、方法的參數(shù)名、參數(shù)的數(shù)量、參數(shù)的類型、返回值的類型以及調(diào)用的類型等.

        TCSTS使用XML技術(shù)將從安全需求說明RSF中提取獲得的相關(guān)信息,如前置及后置條件、參數(shù)值約束等,存儲(chǔ)到XML文檔中,為后續(xù)變異過程提供方便.

        1.2 參數(shù)變異模塊

        參數(shù)變異模塊的主要功能是依據(jù)參數(shù)類型和與之有聯(lián)系的全部變異算子產(chǎn)生變異值集合以生成易觸發(fā)異常的數(shù)據(jù),然后通過組合分析減少測(cè)試用例集的數(shù)量,根據(jù)參數(shù)值約束和參數(shù)間關(guān)系約束將符合需求的所有測(cè)試用例挑選出來,接著執(zhí)行方法序列以及漏洞檢測(cè)算法,從而檢測(cè)構(gòu)件是否含有安全漏洞.

        1.3 條件變異模塊

        條件變異模塊實(shí)現(xiàn)的主要功能是:一方面根據(jù)前置條件生成滿足要求的測(cè)試用例,然后在方法中代入測(cè)試用例并執(zhí)行,如果在執(zhí)行過程中方法出現(xiàn)異?;蛘叻椒ㄅc后置條件相違背,那么說明存在安全漏洞;另一方面,將所有違反前置條件的測(cè)試用例代入到方法中加以運(yùn)行,若方法在運(yùn)行過程中出現(xiàn)異?;蛘叻椒M足后置條件約束,那么此方法中有安全異常的存在.

        1.4 狀態(tài)變異模塊

        狀態(tài)變異模塊首先考慮可擴(kuò)展的有窮狀態(tài)機(jī)EFSM與構(gòu)件方法序列之間的聯(lián)系,通過對(duì)構(gòu)件執(zhí)行序列和安全需求說明將方法序列進(jìn)行轉(zhuǎn)換,得到符合要求的EFSM;然后根據(jù)EFSM在有窮狀態(tài)機(jī)FSM上添加警戒條件以及操作等相關(guān)信息時(shí)會(huì)生成不可達(dá)序列這一特征,利用預(yù)先定義的條件沖突和行為沖突這2個(gè)概念設(shè)計(jì)變異算子和測(cè)試用例生成算法,從EFSM上生成沖突的不可達(dá)序列;最后,通過運(yùn)行這些沖突序列并采用狀態(tài)變異漏洞檢測(cè)算法,檢測(cè)出第三方構(gòu)件是否含有安全漏洞.

        1.5 安全分析模塊

        TCSTS原型系統(tǒng)安全分析模塊的主要工作是實(shí)現(xiàn)3個(gè)安全漏洞檢測(cè)算法,分別是與參數(shù)變異相對(duì)應(yīng)的SVDAPM、與條件變異相對(duì)應(yīng)的SVDACM以及與狀態(tài)變異相對(duì)應(yīng)的SVDASM安全漏洞檢測(cè)算法,然后使用上述3個(gè)算法檢測(cè)第三方構(gòu)件是否含有安全漏洞,同時(shí)整理獲取構(gòu)件的安全檢測(cè)報(bào)告.

        2 參數(shù)變異測(cè)試

        參數(shù)變異測(cè)試首先需要生成變異值集合,該集合是根據(jù)參數(shù)類型并利用與之相關(guān)聯(lián)的全部變異算子生成所得,如果是數(shù)值型的參數(shù)則選擇所有與值約束相符合的值,如果是非數(shù)值型參數(shù)則選擇所有與值約束相違背的值;然后采用組合分析的方法對(duì)生成的參數(shù)值集合進(jìn)行處理生成測(cè)試用例集,對(duì)測(cè)試用例集進(jìn)行遍歷操作并挑選出所有與參數(shù)約束表達(dá)式不相符合的測(cè)試用例.如果在執(zhí)行過程中有異常方法的出現(xiàn)或者方法與后置條件相違背,那么此方法中有安全漏洞的存在,繼而保存異常方法和測(cè)試用例等信息.參數(shù)變異測(cè)試的框架圖如圖2所示.

        圖2 參數(shù)變異測(cè)試框架圖

        對(duì)圖2中的核心模塊描述如下:

        1)測(cè)試用例序列集生成.測(cè)試用例序列集通過基于參數(shù)約束的測(cè)試用例生成算法(TCGPC)生成,該算法的主要思想是依據(jù)方法參數(shù)的類型去調(diào)用單參數(shù)變異值函數(shù)(SPMV)以得到基于算子的數(shù)據(jù)集,然而數(shù)據(jù)集過于龐大,因此需要借助組合思想實(shí)現(xiàn)生成測(cè)試用例,接著根據(jù)參數(shù)間約束(relCS)將所有無法滿足約束的測(cè)試用例排除在外.

        TCGPC算法首先對(duì)方法中的任意參數(shù)都調(diào)用SMPV方法,并結(jié)合所有與參數(shù)類型有聯(lián)系的算子生成值集合.接著將參數(shù)的值約束作為判斷的標(biāo)準(zhǔn)對(duì)值集合進(jìn)行挑選,如果參數(shù)的類型是數(shù)值型的,則挑選所有符合值約束的值,否則選擇所有與值約束不相符合的值.如果方法中僅僅只有1個(gè)參數(shù),那么返回相應(yīng)的值集;如果有2個(gè)參數(shù),則進(jìn)行組合覆蓋;如果參數(shù)個(gè)數(shù)等于或者大于3,那么進(jìn)行3因素組合覆蓋以縮小測(cè)試用例集;最后挑選出所有違反參數(shù)約束的測(cè)試用例.

        2)參數(shù)變異.參數(shù)變異需要借助SPMV函數(shù),該函數(shù)的主要思想是借助參數(shù)的類型和與此參數(shù)有關(guān)聯(lián)的所有算子,生成比較容易產(chǎn)生安全漏洞的測(cè)試數(shù)據(jù).SPMV函數(shù)將參數(shù)分為整型、字符型、字符串型、布爾型、指針型、浮點(diǎn)型、數(shù)組型和結(jié)構(gòu)型等類型,不同類型的參數(shù)和與之有聯(lián)系的所有變異算子可以生成容易產(chǎn)生變異的值集合.

        3)參數(shù)變異安全漏洞檢測(cè)算法.遍歷所有方法序列中的方法是參數(shù)變異安全漏洞檢測(cè)算法(SVDAPM)的主要思想,當(dāng)方法序列中的方法存在參數(shù)時(shí),則需要采用TCGPC算法以生成測(cè)試集;然后依次將測(cè)試用例代入方法中并執(zhí)行SVDAPM算法進(jìn)行檢測(cè)操作運(yùn)行,如果執(zhí)行檢測(cè)操作后得到的結(jié)果與預(yù)期值存在差異,那么認(rèn)為此測(cè)試用例是有效的;最后將參數(shù)變異后的測(cè)試用例以及注入?yún)?shù)變異后的方法信息記錄到檢測(cè)報(bào)告中.

        3 條件變異測(cè)試

        條件變異測(cè)試的目標(biāo)是測(cè)試前置條件中的關(guān)系表達(dá)式,從而生成2類測(cè)試用例:一類是滿足前置條件的測(cè)試用例,另一類是與前置條件相違背的測(cè)試用例.然后根據(jù)后置條件,檢驗(yàn)條件判斷語(yǔ)句中是否含有安全漏洞的隱患.條件變異測(cè)試的框架及框架圖見圖3.

        圖3 條件變異測(cè)試框架圖

        對(duì)圖3中的核心模塊描述如下:

        1)前置條件變異.前置條件變異過程通過前置條件變異算法(PCMA)實(shí)現(xiàn),PCMA算法的目標(biāo)是產(chǎn)生所有導(dǎo)致前置條件為假的表達(dá)式.不妨假設(shè)前置條件中子項(xiàng)數(shù)量是m,算法步驟如下:①依據(jù)函數(shù)RRF(S0)獲得了所有屬于第1個(gè)子項(xiàng)的變異式;②遍歷這些變異式t,然后通過函數(shù)Exclusive對(duì)其進(jìn)行判斷,可知道2個(gè)變異式之間不存在互斥關(guān)系,那么將這2個(gè)變異式并入到變異后的前置條件T中;③重復(fù)①,②步直到執(zhí)行到Sm為止.

        2)條件變異安全漏洞檢測(cè)算法.條件變異安全漏洞檢測(cè)算法(SVDACM)依次對(duì)各個(gè)方法序列中的方法進(jìn)行檢驗(yàn),如果方法中存在前置條件,則采用基于約束方程組的測(cè)試用例生成算法(TCES)生成合法的測(cè)試數(shù)據(jù),如果這些生成的測(cè)試數(shù)據(jù)中有異常出現(xiàn)或者與后置條件不相符合的情況,那么則表明構(gòu)件中含有安全漏洞.此外,調(diào)用PCMA算法對(duì)前置條件進(jìn)行變異操作,并生成所有與前置條件相違背的測(cè)試用例,如果運(yùn)行這些生成的測(cè)試用例,產(chǎn)生的結(jié)果沒有異常且運(yùn)行的結(jié)果與預(yù)期有差異,那么方法中有漏洞的存在;如果方法中沒有前置條件的存在,則通過邊界值方法和隨機(jī)值方法獲取測(cè)試用例,然后通過結(jié)合后置條件判斷方法判斷是否含有安全漏洞.

        4 狀態(tài)變異測(cè)試

        狀態(tài)變異測(cè)試是基于變異技術(shù)的第三方構(gòu)件安全性測(cè)試原型系統(tǒng)中一個(gè)極其重要的模塊,狀態(tài)變異測(cè)試的框架圖見圖4.

        圖4 狀態(tài)變異測(cè)試框架圖

        狀態(tài)變異測(cè)試模塊中核心模塊功能說明如下:

        1)EFSM轉(zhuǎn)換器.方法的集合可以被看作構(gòu)件中的方法執(zhí)行后生成的方法序列集,而變異測(cè)試中的EFSM可以被看作是狀態(tài)的集合,EFSM中狀態(tài)間的相互轉(zhuǎn)換與方法的執(zhí)行次序相類似,關(guān)系表達(dá)式可以對(duì)方法中的前置條件、后置條件以及在EF SM中的警戒條件全部進(jìn)行表示.綜上所述,對(duì)EF SM轉(zhuǎn)換器的功能可做如下概括:通過對(duì)構(gòu)件中的方法序列以及EFSM進(jìn)行關(guān)聯(lián)性分析,將構(gòu)件中的方法執(zhí)行序列轉(zhuǎn)化成與之對(duì)應(yīng)的EFSM.

        2)變異體生成器.當(dāng)EFSM轉(zhuǎn)換器將構(gòu)件的方法執(zhí)行序列轉(zhuǎn)換為EFSM之后,變異體生成器開始執(zhí)行,它的作用是設(shè)計(jì)一些將執(zhí)行序列變?yōu)椴豢蛇_(dá)的沖突序列的變異算子,通過這些變異算子對(duì)EF SM進(jìn)行變異.這些變異算子主要包括:添加新的遷移狀態(tài)和改變現(xiàn)有的遷移狀態(tài).

        3)行為沖突序列生成算法.行為沖突序列生成算法(OCGA)的主要功能是對(duì)變異的EFSM進(jìn)行遍歷操作,從中挑選出符合行為沖突特征的不可達(dá)序列.OCGA算法步驟如下:①先依據(jù)EFSM拓?fù)湫蛄袌D的開始狀態(tài),從而依次得到狀態(tài)圖的拓?fù)湫蛄?;②需要把拓?fù)湫蛄修D(zhuǎn)化為遷移序列T,T滿足所有最后得到的沖突序列從起始的方法開始.如果EF SM中不存在環(huán)結(jié)構(gòu),那么直接得到其拓?fù)浣Y(jié)構(gòu);如果存在環(huán)結(jié)構(gòu),那么依據(jù)拓?fù)湫蛄械那蠼獠襟E對(duì)其進(jìn)行求解.

        4)條件沖突序列生成算法.條件沖突序列集W是由條件沖突序列生成算法(CCGA)借助變異的EFSM圖生成,這也是CCGA算法的主要功能.CCGA算法的處理過程與OCGA算法的處理過程相類似,主要區(qū)別是CCGA算法需要判斷遷移條件ti和后續(xù)遷移tk中的警戒條件y值域的交集是否為空集,如果交集是空集,那么此交集是條件沖突序列.

        5)測(cè)試用例生成器.測(cè)試用例生成器的作用是采用CCGA和OCGA對(duì)變異后的EFSM進(jìn)行遍歷,為了保證獲得的構(gòu)件執(zhí)行路徑能從起始方法為頭節(jié)點(diǎn),需要得到EFSM的遷移拓?fù)湫蛄?,并?jù)此判斷當(dāng)前遷移和后續(xù)遷移中是否包含沖突遷移,然后在當(dāng)前運(yùn)行的遷移路徑中將EFSM拓?fù)湫蛄械钠鹗挤椒ū4?

        6)安全漏洞檢測(cè)算法.狀態(tài)變異安全漏洞檢測(cè)算法(SVDASM)的執(zhí)行順序如下:首先執(zhí)行OCGA算法和CCGA算法,獲得行為沖突和條件沖突2類序列集;然后合并行為沖突和條件沖突這2類序列集,并遍歷集合中的所有集合;接著構(gòu)造序列中滿足條件的約束方程組,并根據(jù)此方程組求得方法輸入?yún)?shù)的取值;最后依次在方法中代入所取得的參數(shù)值,并對(duì)沖突序列進(jìn)行執(zhí)行操作,若沖突序列中的每個(gè)方法都被執(zhí)行,那么證明構(gòu)件中包含有安全漏洞.

        5 系統(tǒng)實(shí)現(xiàn)及測(cè)試環(huán)境

        5.1 系統(tǒng)實(shí)現(xiàn)

        為了實(shí)現(xiàn)TCSTS原型系統(tǒng)的功能,系統(tǒng)界面使用了窗口浮動(dòng)技術(shù),并將主界面切分成多個(gè)不同的版塊,每個(gè)版塊不斷增加相應(yīng)的控制條以符合各個(gè)需求.窗口浮動(dòng)技術(shù)能夠?qū)⒁粋€(gè)窗體內(nèi)的控件任意拖動(dòng)到需求的位置,該技術(shù)的實(shí)現(xiàn)主要包括了DockPanel類、DockWindow類、DockPane類和Dock Content類4個(gè)類,Dockpanel類從System.Windows.Forms.Panel類繼承而來,DockPanel類能自動(dòng)管理附加的窗體.

        TCSTS界面設(shè)計(jì)的主要步驟如下:①創(chuàng)建一個(gè)多文檔窗體;②設(shè)置DockPanel的DocumentStyle:DockPanel.DocumentStyle=DocumentStyle.Docking Mdi;③實(shí)現(xiàn)窗口停靠技術(shù),使得界面能夠在任意位置進(jìn)行停靠.

        5.2 測(cè)試環(huán)境

        TCSTS原型系統(tǒng)是在Visual Studio.NET 2008平臺(tái)上,采用C#程序設(shè)計(jì)語(yǔ)言開發(fā)而成.TCSTS可以對(duì)構(gòu)件進(jìn)行參數(shù)、條件和狀態(tài)3個(gè)方面的變異操作,然后分別調(diào)用前面研究的3個(gè)安全漏洞檢測(cè)算法檢測(cè)構(gòu)件是否有安全漏洞的存在.在TCSTS原型系統(tǒng)中,生成的測(cè)試用例被自動(dòng)保存在本地文件中,變異后的測(cè)試用例同樣被保存在本地文件中,最后依據(jù)前面研究的檢測(cè)算法對(duì)構(gòu)件進(jìn)行安全檢測(cè),完整的檢測(cè)過程如圖5所示.

        圖5 TCSTS測(cè)試過程

        TCSTS原型系統(tǒng)首先對(duì)待測(cè)構(gòu)件進(jìn)行接口分析獲得構(gòu)件的接口信息;然后從構(gòu)件的描述和IDL等信息中獲得構(gòu)件的安全需求規(guī)約;接著對(duì)測(cè)試用例執(zhí)行變異操作,并調(diào)用對(duì)應(yīng)的檢測(cè)算法對(duì)構(gòu)件進(jìn)行變異檢測(cè);最后將結(jié)果整理成構(gòu)件安全漏洞檢測(cè)報(bào)告.圖6是TCSTS原型系統(tǒng)在正常操作下的系統(tǒng)環(huán)境快照.

        圖6 TCSTS系統(tǒng)快照

        6 系統(tǒng)測(cè)試結(jié)果分析

        為了驗(yàn)證TCSTS原型系統(tǒng)的效果,對(duì)其進(jìn)行多次試驗(yàn)驗(yàn)證,測(cè)試試驗(yàn)分別從參數(shù)變異測(cè)試、條件變異測(cè)試和狀態(tài)變異測(cè)試3個(gè)方面展開.

        6.1 參數(shù)變異測(cè)試

        為了驗(yàn)證參數(shù)變異測(cè)試的有效性,對(duì)TestParam.dll構(gòu)件進(jìn)行試驗(yàn)驗(yàn)證,構(gòu)件信息如下:構(gòu)件名,TestParam.dll;方法個(gè)數(shù),7;代碼行數(shù),85;植入錯(cuò)誤個(gè)數(shù),7.該構(gòu)件為筆者根據(jù)試驗(yàn)環(huán)境開發(fā)設(shè)計(jì)的構(gòu)件.圖7比較了采用參數(shù)變異方法、隨機(jī)方法FUZZ和邊界值方法生成測(cè)試用例有效性.

        圖7 參數(shù)變異檢測(cè)結(jié)果

        由圖7可見,有效的測(cè)試用例數(shù)量隨著生成的測(cè)試用例數(shù)量的增加而不斷增加;3種方法中,采用邊界值方法對(duì)構(gòu)件進(jìn)行檢測(cè)得到的檢測(cè)率最低,采用參數(shù)變異方法的檢測(cè)率最高;另外,參數(shù)變異方法的優(yōu)勢(shì)也隨著測(cè)試用例個(gè)數(shù)不斷增加而越來越明顯.

        6.2 條件變異測(cè)試

        為了驗(yàn)證條件變異測(cè)試的有效性,對(duì)TestCon diDll.dll構(gòu)件進(jìn)行了試驗(yàn)驗(yàn)證,構(gòu)件信息如下:構(gòu)件名,TestCondiDll.dll;方法個(gè)數(shù),6;代碼行數(shù),63;植入錯(cuò)誤個(gè)數(shù),6.該構(gòu)件為筆者根據(jù)試驗(yàn)環(huán)境開發(fā)設(shè)計(jì)的構(gòu)件.

        為了得到不同的方法所產(chǎn)生的用例個(gè)數(shù)以及其覆蓋的錯(cuò)誤數(shù)2類數(shù)據(jù),需要對(duì)構(gòu)件TestCondiDll中的GetLargest方法采用不同的方法進(jìn)行檢測(cè),表1分別是由條件變異法、判定覆蓋法、條件覆蓋法以及條件組合覆蓋法4種方法檢測(cè)而得的數(shù)據(jù).

        表1 構(gòu)件TestCondiDll.dll的檢測(cè)結(jié)果

        由表1可見,判定覆蓋法、條件覆蓋法以及條件組合覆蓋法無法檢測(cè)到確切的錯(cuò)誤個(gè)數(shù),并且這3種測(cè)試方法產(chǎn)生的測(cè)試用例均被條件變異法產(chǎn)生的測(cè)試用例所包含.根據(jù)條件變異法所產(chǎn)生的測(cè)試用例數(shù)目,可知該方法能產(chǎn)生全部可能的測(cè)試用例,通過檢測(cè)可知,這些錯(cuò)誤均是由RRF算子所引起.

        6.3 狀態(tài)變異測(cè)試

        為了驗(yàn)證狀態(tài)變異測(cè)試的有效性,對(duì)5個(gè)構(gòu)件分別進(jìn)行試驗(yàn)驗(yàn)證,構(gòu)件信息如表2所示.這些構(gòu)件部分來源于開源網(wǎng)站,部分為筆者根據(jù)試驗(yàn)環(huán)境開發(fā)設(shè)計(jì)的構(gòu)件.

        表2 5個(gè)構(gòu)件的信息

        表3給出了對(duì)BankTransaction.dll,Examine.dll,Calculator.dll,Order.dll以及BeverageVending.dll這5個(gè)被測(cè)試構(gòu)件進(jìn)行狀態(tài)變異測(cè)試后的結(jié)果,測(cè)試試驗(yàn)主要從表3中列出的4個(gè)方面入手,其中序列檢測(cè)率是指有效的序列數(shù)目占沖突序列總數(shù)的百分比.

        表3 5個(gè)構(gòu)件的檢測(cè)結(jié)果信息

        由表3數(shù)據(jù)可知,產(chǎn)生沖突序列的數(shù)目與構(gòu)件中方法的數(shù)目成正比;由于序列檢測(cè)率維持在20%及以上,因此狀態(tài)變異測(cè)試方法能比較好地對(duì)構(gòu)件中的安全漏洞進(jìn)行檢測(cè).

        7 結(jié) 論

        實(shí)現(xiàn)的TCSTS原型系統(tǒng)主要有以下幾個(gè)優(yōu)點(diǎn):

        1)強(qiáng)大的變異功能.TCSTS原型系統(tǒng)能分別從構(gòu)件的參數(shù)、條件和狀態(tài)這3個(gè)方面進(jìn)行變異操作,可以有效地觸發(fā)第三方構(gòu)件的安全漏洞.

        2)強(qiáng)大的變異測(cè)試功能.TCSTS原型系統(tǒng)能夠分別對(duì)構(gòu)件進(jìn)行參數(shù)變異測(cè)試、條件變異測(cè)試和狀態(tài)變異測(cè)試.

        3)測(cè)試原型系統(tǒng)的自動(dòng)化程度比較高,大部分操作由系統(tǒng)自動(dòng)完成,僅有少許操作需要人工參與.

        4)測(cè)試工程通過對(duì)測(cè)試項(xiàng)目的有效管理,實(shí)現(xiàn)了對(duì)部分資源的重新利用,通過重現(xiàn)測(cè)試活動(dòng)的方式更好地對(duì)測(cè)試結(jié)果進(jìn)行了對(duì)比分析.

        到目前為止,文中在第三方構(gòu)件安全性測(cè)試方面做了一些探索工作,實(shí)現(xiàn)的TCSTS原型系統(tǒng)仍然存在以下幾點(diǎn)不足:

        1)TCSTS原型系統(tǒng)仍然沒有實(shí)現(xiàn)全自動(dòng)化,不能自動(dòng)存取某些相關(guān)信息,如參數(shù)值約束、條件約束等信息.

        2)TCSTS原型系統(tǒng)中測(cè)試的試驗(yàn)對(duì)象主要是COM構(gòu)件,在今后需要對(duì)系統(tǒng)進(jìn)行改進(jìn)以取得更強(qiáng)的適應(yīng)性.

        3)TCSTS原型系統(tǒng)沒有能夠提供完整的構(gòu)件安全等級(jí)評(píng)估機(jī)制.

        (References)

        [1] CHEN JF,LU Y S,WANG H H.Component security testing approach based on extended chemical abstract machine[J].International Journal of Software Enginee ring and Knowledge Engineering,2012,22(1):59- 83.

        [2] SCANDARIATO R,WALDEN J,HOVSEPYAN A,et al.Predicting vulnerable software components via text mining[J].IEEE Transactions on Software Enginee ring,2014,40(10):993-1006.

        [3] CHEN J F,CAISH,ZHU L L,et al.An improved string searching algorithm and its application in compo nent security testing[J].Tsinghua Science&Technolo gy,2016,21(3):281-294.

        [4] NAGAPPAN M,MIRAKHORLIM.Big(ger)data in software engineering[C]∥Proceedings of the 2015 IEEE/ACM 37th IEEE International Conference on Soft ware Engineering.Piscataway:IEEE Computer Society,2015:957-958.

        [5] GHO S,NA JC,PARK K,et al.A fast algorithm for order preserving pattern matching[J].Information Pro cessing Letters,2015,115(2):397-402.

        [6] FAN Y J,YE Y F,CHEN L F.Malicious sequential patternmining for automatic malware detection[J].Ex pert Systemswith Applications,2016,52:16-25.

        [7] TSENG V S,WU CW,F(xiàn)OURNIER VIGER P,et al.Efficient algorithms for mining the concise and lossless representation of high utility itemsets[J].IEEE Tran sactions on Knowledge&Data Engineering,2015,27(3):726-739.

        [8] 覃志東,侯穎,肖芳雄.基于蟻群優(yōu)化算法的同構(gòu)多核任務(wù)分配與調(diào)度[J].江蘇大學(xué)學(xué)報(bào)(自然科學(xué)版),2014,35(6):679-684.QIN Z D,HOU Y,XIAO F X.Task allocation and scheduling for homogeneousmulti core processors based on ant colony optimization[J].Journal of Jiangsu Uni versity(Natural Science Edition),2014,35(6):679-684.(in Chinese)

        [9] CHEN JF,CHEN JM,HUANG R B,et al.An ap proach of security testing for third party component based on statemutation[J].Security&Communication Networks,2016,9(15):2827-2842.

        Design and im p lementation of third party com ponent security testing system based on mutation technology

        CHEN Jinfu1,GE Honghe1,CAISaihua1,2,CHEN Jiamei1,ZHAN Yongzhao1
        (1.School of Computer Science and Communication Engineering,Jiangsu University,Zhenjiang,Jiangsu 212013,China;2.College of Information and Electrical Engineering,China Agriculture University,Beijing 100083,China)

        To solve the automatic detection problem of component security exceptions for the third party component,a prototype tool of third party component security testing system(TCSTS)was designed and implemented.The TCSTS could employ three aspects of security testing for third party component of parametermutation testing,condition mutation testing and statemutation testing.In parametermutation testing,the variance value was set as parameter constraint by the test case generation algorithm based on the parameter constraint(TCGPC),and the test cases were generated with different parameter constraint.In condition mutation testing,the test cases were generated to satisfy and violate the pre condition,and the existence of security vulnerabilities was checked in the condition judgment statement with post condition.In state mutation testing,executable method sequences of components were transformed into extended finite state machine(EFSM),and operations conflict sequences generated ____algorithm(OCGA)and conditions conflict sequences generated algorithm(CCGA)were designed to mutate EFSM and generate conflict sequences.The security testing of conflict sequences after mutation was implemented.The results show that the TCSTS has good operational ability and testing ability.The detection rate of abnormal sequence by TCSTS ismore than 20%,which indicates that TCSTS can detect the state related security vulnerabilities in the component security testing.

        security testing;third party component;parametermutation test;condition mutation test;statemutation test

        10.3969/j.issn.1671-7775.2018.01.012

        TP311.5

        A

        1671-7775(2018)01-0071-07

        陳錦富,葛宏河,蔡賽華,等.基于變異技術(shù)的第三方構(gòu)件安全性測(cè)試系統(tǒng)[J].江蘇大學(xué)學(xué)報(bào)(自然科學(xué)版),2018,39(1):71-77.

        2016-09-28

        國(guó)家自然科學(xué)基金資助項(xiàng)目(61202110,61502205);江蘇省第十三批“六大人才高峰”項(xiàng)目(XYDXXJS-016)

        陳錦富(1978—),男,江西信豐人,博士,副教授(jinfuchen@ujs.edu.cn),主要從事軟件測(cè)試和可信軟件研究.葛宏河(1990—),男,江蘇興化人,碩士研究生(673534482@qq.com),主要從事軟件測(cè)試研究.

        (責(zé)任編輯 梁家峰)

        猜你喜歡
        安全漏洞測(cè)試用例變異
        基于SmartUnit的安全通信系統(tǒng)單元測(cè)試用例自動(dòng)生成
        變異危機(jī)
        變異
        安全漏洞太大亞馬遜、沃爾瑪和Target緊急下架這種玩具
        玩具世界(2018年6期)2018-08-31 02:36:26
        基于混合遺傳算法的回歸測(cè)試用例集最小化研究
        基于安全漏洞掃描的校園網(wǎng)告警系統(tǒng)的開發(fā)與設(shè)計(jì)
        變異的蚊子
        基于依賴結(jié)構(gòu)的測(cè)試用例優(yōu)先級(jí)技術(shù)
        安全漏洞Shellshock簡(jiǎn)介
        河南科技(2014年11期)2014-02-27 14:16:49
        軟件回歸測(cè)試用例選取方法研究
        性色做爰片在线观看ww| 精品一区二区三区牛牛| 中文字幕人妻在线少妇| av手机免费在线观看高潮| 国产熟女一区二区三区不卡| 天天摸夜夜摸摸到高潮| 激情亚洲一区国产精品| 四虎成人在线| 色欲AV成人无码精品无码| 欧洲无码一级毛片无遮挡| 国产成人精品自拍在线观看| 中文字幕精品一区二区三区| 69一区二三区好的精华| 日本VA欧美VA精品发布| 一本久久综合亚洲鲁鲁五月夫| 国产色婷婷久久又粗又爽| 久久久无码精品亚洲日韩按摩 | 免费乱理伦片在线观看| 丰满女人又爽又紧又丰满| 日本午夜福利| 中文字幕国内一区二区| 毛片在线视频成人亚洲| 久久天堂一区二区三区av| 青娱乐极品视觉盛宴国产视频| 在线精品国产一区二区三区| av网站免费线看| 在线观看视频日本一区二区三区| 亚洲一区二区三区四区精品| 丰满熟妇人妻av无码区| 亚洲另类精品无码专区| 日韩肥熟妇无码一区二区三区| 精品亚洲国产亚洲国产| 在厨房被c到高潮a毛片奶水| 成人小说亚洲一区二区三区| 美女窝人体色www网站| 麻豆精品一区二区三区| 2018国产精华国产精品| 久久亚洲av永久无码精品| 日本中文字幕av网址| 99e99精选视频在线观看| 成 人 免费 黄 色 视频|