亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種基于智能動態(tài)模糊檢測的軟件質(zhì)量缺陷檢測方法和系統(tǒng)的制作方法

文檔序號:6603598閱讀:136來源:國知局
專利名稱:一種基于智能動態(tài)模糊檢測的軟件質(zhì)量缺陷檢測方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種軟件質(zhì)量缺陷檢測方法和系統(tǒng),特別是一種基于智能動態(tài)模糊檢測的軟件質(zhì)量缺陷檢測方法和系統(tǒng)。
背景技術(shù)
軟件質(zhì)量缺陷目前廣泛存在于信息系統(tǒng)中,并且和具體的系統(tǒng)環(huán)境密切相關(guān)。具有以下特點(diǎn)1)缺陷問題與時間緊密相關(guān)。隨著時間的推移,舊的缺陷會不斷得到修補(bǔ)或糾正,新的缺陷會不斷出現(xiàn),因而缺陷問題會長期存在;2)缺陷與軟件規(guī)模、復(fù)雜度密切相關(guān),一般來說,軟件規(guī)模越大、功能越復(fù)雜,則存在的缺陷越多;3)缺陷被惡意利用后會造成軟件部分、全部信息的破壞、丟失,或?qū)е萝浖δ軣o法正確實(shí)現(xiàn)。對軟件缺陷產(chǎn)生原因進(jìn)行分析,主要有1)需求的不完善定義,需求分析是軟件開發(fā)的第一個階段,難免存在著調(diào)研不充分,考慮不全面等情況;2)客戶與開發(fā)者溝通不夠,開發(fā)者沒有及時與客戶溝通協(xié)調(diào),可能導(dǎo)致與系統(tǒng)使用環(huán)境的不符合;3)對軟件需求的故意偏離,開發(fā)者由于技術(shù)或其他原因故意偏離了需求;4)邏輯錯誤設(shè)計,軟件在概要設(shè)計階段,設(shè)計的邏輯存在錯誤, 如身份鑒別機(jī)制存在多于一種的路徑可通過身份驗(yàn)證;5)編碼錯誤,編程開發(fā)人員由于缺乏培訓(xùn),使用了有問題的函說或調(diào)用,或者不及時釋放內(nèi)存等,導(dǎo)致軟件存在缺陷;6)檢測不充分由于檢測手段的局限性,當(dāng)前的檢測不能做到全部覆蓋,因此會存在漏測、誤測的情況。
軟件質(zhì)量缺陷的檢測方法很多,根據(jù)被測軟件的開源與否又可分為兩種對于開源軟件主要采用白盒檢測以及直接或者借助一些自動化工具來對源代碼進(jìn)行審查,而對于非開源的商業(yè)系統(tǒng)則主要采用灰盒檢測和黑盒檢測以及逆向工程中的反匯編技術(shù)來對產(chǎn)生的匯編代碼進(jìn)行審查;而從抽象的層次來看,有基于數(shù)據(jù)流的分析和基于控制流的分析方法;從是否需要執(zhí)行被測軟件的角度可以將軟件缺陷檢測技術(shù)分為兩種一種是靜態(tài)分析技術(shù),它不實(shí)際運(yùn)行代碼而只是通過靜態(tài)地查看代碼以找出潛在的缺陷,另一種是動態(tài)檢測技術(shù),它通過實(shí)際運(yùn)行程序代碼來發(fā)現(xiàn)其可能存在的缺陷。本發(fā)明則屬于動態(tài)檢測技術(shù)的一種。
隨著信息技術(shù)的高速發(fā)展,軟件產(chǎn)品(從底層的操作系統(tǒng)到高層的應(yīng)用程序)代碼量越來越大,程序設(shè)計越來越復(fù)雜,其本身存在著大量的質(zhì)量缺陷,危害著信息系統(tǒng)的可用性、可靠性和安全性,因此如何檢測軟件程序中可能存在的缺陷成為目前信息技術(shù)領(lǐng)域高度關(guān)注的熱點(diǎn)。模糊檢測(來源于fuzzing)是一種快速有效發(fā)現(xiàn)程序缺陷的方法,正逐漸被開發(fā)商和安全研究者應(yīng)用開來,比如,微軟公司的產(chǎn)品在正式推向市場之前大約有 20%到25%的安全缺陷是通過模糊檢測發(fā)現(xiàn)的。目前,這種檢測方法尚沒有正規(guī)定義,有人稱其為雜湊,有人稱其為fuzz檢測,在本書中統(tǒng)一稱其為模糊檢測。為了說明它的概念,在此將模糊檢測概括為一種軟件檢測方法,它在程序外部提供非預(yù)期輸入,并監(jiān)控程序?qū)斎氲姆磻?yīng),從而發(fā)現(xiàn)程序內(nèi)部故障。模糊檢測最早被用于發(fā)現(xiàn)可靠性問題,1989年,BartonMiller教授和他的操作系統(tǒng)課題組開發(fā)了一個初級模糊程序,用于檢測UNIX程序的健壯性和可靠性,這就是模糊器的一個原型。雖然在現(xiàn)在看來,當(dāng)時那個模糊器比較原始,但它卻開創(chuàng)了模糊檢測的歷史。1999年左右,Oulu大學(xué)開始進(jìn)行PROTOS檢測集的開發(fā),這是一種結(jié)合白盒和黑盒兩種技術(shù)的檢測方法。這種方法首先分析協(xié)議規(guī)則或標(biāo)準(zhǔn),然后構(gòu)造與協(xié)議規(guī)則不符的報文,以用于對產(chǎn)品進(jìn)行檢測。這種檢測技術(shù)已經(jīng)初步具有了模糊檢測的特點(diǎn)2002年,Dave Aitel編寫了第一個公開的開源Fuzzing檢測框架SPIKE [10],安全研究人員可以很方便的在SPIKE框架的基礎(chǔ)之上開發(fā)自己的Fuzzing工具,SPIKE被認(rèn)為是 Fuzzing檢測技術(shù)的另一重要里程碑。SPIKE可以用于對基于網(wǎng)絡(luò)的應(yīng)用程序進(jìn)行缺陷發(fā)現(xiàn),SPIKE使用基于數(shù)據(jù)塊的協(xié)議描述方法,可以描述不同長度的協(xié)議數(shù)據(jù)塊,并內(nèi)嵌了一些最可能導(dǎo)致程序錯誤的經(jīng)驗(yàn)檢測字符串。近些年來,模糊檢測的面向?qū)ο笾饕蔷W(wǎng)絡(luò)協(xié)議解析器,檢測目標(biāo)對象解析網(wǎng)絡(luò)協(xié)議(例如TCP/IP、SSH、RPC、DNS、NFS等)的過程是否存在缺陷。其思想是模糊檢測工具通過socket與被測目標(biāo)應(yīng)用進(jìn)行通信,向被測目標(biāo)應(yīng)用發(fā)送變異或包含錯誤的模糊值,并監(jiān)視目標(biāo)應(yīng)用以發(fā)現(xiàn)錯誤。進(jìn)行網(wǎng)絡(luò)協(xié)議解析器的模糊檢測,通常需要首先研究協(xié)議的規(guī)范和標(biāo)準(zhǔn),以便創(chuàng)造更合理的檢測數(shù)據(jù)。
本發(fā)明可以對以下類型的軟件做缺陷檢測,從而大幅度提高軟件質(zhì)量(1)針對網(wǎng)絡(luò)協(xié)議處理類軟件的模糊檢測此類模糊檢測的面向?qū)ο笾饕蔷W(wǎng)絡(luò)協(xié)議解析器,檢測目標(biāo)對象解析網(wǎng)絡(luò)協(xié)議(例如TCP/IP、SSH、RPC、DNS、NFS等)的過程是否存在缺陷。其思想是模糊檢測工具通過socket與被測目標(biāo)應(yīng)用進(jìn)行通信,向被測目標(biāo)應(yīng)用發(fā)送變異或包含錯誤的模糊值,并監(jiān)視目標(biāo)應(yīng)用以發(fā)現(xiàn)錯誤。進(jìn)行網(wǎng)絡(luò)協(xié)議解析器的模糊檢測,通常需要首先研究協(xié)議的規(guī)范和標(biāo)準(zhǔn),以便創(chuàng)造更合理的檢測數(shù)據(jù)。(2)針對文件處理類軟件的模糊檢測檢測工作中遇到較多的文件格式解析器包括圖片文件(如BMP、TIFF、JPEG 等)解析器、文檔和可執(zhí)行文件(如DOC、SWF、PDF、PE、ELF等)解析器。此檢測方法的思想是首先識別出文件解析器所支持的文件格式,然后構(gòu)造足夠多的畸形文件去開啟解析器應(yīng)用。例如可以構(gòu)建大量畸形的JPEG文件并讓應(yīng)用去讀取這些文件,同時監(jiān)控該應(yīng)用的執(zhí)行情況。(3)針對內(nèi)嵌控件類軟件的模糊檢測當(dāng)前軟件開發(fā)模式普遍是采用公共的控件, 操作系統(tǒng)、開發(fā)社區(qū)也提供了大量的控件供開發(fā)者直接使用,從而大大提高了開發(fā)的效率。 如果控件存在缺陷,則影響的范圍巨大,危害要比單個軟件大得多。本系統(tǒng)可以對當(dāng)前內(nèi)嵌的主流ActiveX控件、COM控件等作動態(tài)缺陷檢測,從而提高軟件開發(fā)質(zhì)量。針對軟件的動態(tài)缺陷檢測工具較多,比較著名的有冊0105、5 11^、]\&1叫1611^、他11^(^丨、以及?丨16 皿2。本系統(tǒng)與同類工具相比,擁有智能檢測功能,同時檢測范圍廣泛,實(shí)用性更大,檢測效率更高, 代表了軟件動態(tài)缺陷檢測的發(fā)展方向。

發(fā)明內(nèi)容
本發(fā)明針對現(xiàn)有技術(shù)的弊端,提供一種智能程度高,檢測效率高,檢測范圍廣和實(shí)用化程度高的軟件質(zhì)量缺陷檢測方法及系統(tǒng)。
為實(shí)現(xiàn)上述目的,本發(fā)明采用如下技術(shù)方案本發(fā)明提供了一種基于智能動態(tài)模糊檢測的軟件質(zhì)量缺陷檢測方法,其步驟包括 步驟一,確定待檢測軟件、界定檢測范圍以調(diào)用策略編輯器編輯的相應(yīng)檢測策略; 步驟二,根據(jù)檢測策略構(gòu)造用于待檢測軟件的模糊檢測數(shù)據(jù); 步驟三,利用所述模糊檢測數(shù)據(jù)執(zhí)行對待檢測軟件的缺陷檢測; 步驟四,對待檢測軟件進(jìn)行缺陷檢測的過程進(jìn)行監(jiān)控; 步驟五,如監(jiān)控發(fā)現(xiàn)異常,則對待檢測軟件模糊檢測的過程進(jìn)行狀態(tài)記錄并將記錄結(jié)果反饋至策略編輯器; 步驟六,策略編輯器根據(jù)反饋回的記錄結(jié)果自動進(jìn)行策略編輯調(diào)整,以形成新的檢測策略,并根據(jù)新的檢測策略重復(fù)步驟二 步驟六的操作; 步驟七,根據(jù)檢測結(jié)果進(jìn)行缺陷定位。
優(yōu)選的是,本發(fā)明所述的基于智能動態(tài)模糊檢測的軟件質(zhì)量缺陷檢測方法,所述步驟二還進(jìn)一步包括結(jié)合隨機(jī)或者變異的方法構(gòu)造模糊檢測數(shù)據(jù)。
優(yōu)選的是,本發(fā)明所述的基于智能動態(tài)模糊檢測的軟件質(zhì)量缺陷檢測方法,在所述步驟三中,在執(zhí)行模糊檢測的過程中,還包括根據(jù)輸入?yún)?shù)調(diào)整檢測策略的步驟。
優(yōu)選的是,本發(fā)明所述的基于智能動態(tài)模糊檢測的軟件質(zhì)量缺陷檢測方法,如果沒有監(jiān)控到模糊檢測過程中的任何異常情況,步驟三中的缺陷檢測過程將跳過步驟五和步驟六,而直接執(zhí)行步驟七。
優(yōu)選的是,本發(fā)明所述的基于智能動態(tài)模糊檢測的軟件質(zhì)量缺陷檢測方法,在所述步驟三中,根據(jù)待檢測軟件的類型來選擇適當(dāng)?shù)臋z測引擎,所選擇的檢測引擎利用所述模糊檢測數(shù)據(jù)執(zhí)行對待檢測軟件的缺陷檢測。
本發(fā)明還包括一種基于智能動態(tài)模糊檢測的軟件質(zhì)量缺陷檢測系統(tǒng),包括策略編輯器,用于添加或修改檢測策略,并能根據(jù)對待檢測軟件狀態(tài)監(jiān)控的反饋編輯出新的檢測策略;檢測策略庫,和所述策略編輯器相連,用于存儲大量的檢測策略,檢測策略庫中的策略隨著系統(tǒng)的使用并依據(jù)被檢測軟件的特性做出適時調(diào)整;智能模糊數(shù)據(jù)發(fā)生器,和所述策略編輯器相連且根據(jù)所述策略編輯器中的相應(yīng)檢測策略構(gòu)造用于模糊檢測的模糊數(shù)據(jù);檢測引擎,用于通過使用所述智能模糊數(shù)據(jù)發(fā)生器產(chǎn)生的模糊數(shù)據(jù)對輸入檢測引擎的待被檢測軟件做缺陷檢測;軟件狀態(tài)監(jiān)控器,和所述檢測引擎相連,負(fù)責(zé)收集并分析待檢測軟件的響應(yīng)狀態(tài),如果出現(xiàn)異常情況就反饋給所述策略編輯器;缺陷定位模塊,和所述檢測引擎模塊相連,并將檢測引擎發(fā)現(xiàn)的缺陷故障觸發(fā)點(diǎn)場景進(jìn)行記錄,以使得用戶能夠進(jìn)行缺陷重現(xiàn)與定位;結(jié)果生成模塊,和所述缺陷定位模塊相連,將缺陷定位模塊的輸出進(jìn)行轉(zhuǎn)化并表示為檢測人員能夠讀懂的形式。
優(yōu)選的是,本發(fā)明所述的基于智能動態(tài)模糊檢測的軟件質(zhì)量缺陷檢測系統(tǒng),根據(jù)待檢測軟件的類型來選擇適當(dāng)?shù)臋z測引擎,所選擇的檢測引擎用于通過使用所述智能模糊數(shù)據(jù)發(fā)生器產(chǎn)生的模糊數(shù)據(jù)對輸入檢測引擎的待被檢測軟件做缺陷檢測。
優(yōu)選的是,本發(fā)明所述的基于智能動態(tài)模糊檢測的軟件質(zhì)量缺陷檢測系統(tǒng),所述檢測引擎包括協(xié)議檢測引擎、控件檢測引擎和/或文件檢測引擎。
優(yōu)選的是,本發(fā)明所述的基于智能動態(tài)模糊檢測的軟件質(zhì)量缺陷檢測系統(tǒng),在所述軟件狀態(tài)監(jiān)控器監(jiān)控下,若待檢測軟件返回的響應(yīng)不符合標(biāo)準(zhǔn)或文檔聲明格式,則表明軟件存在異常。
本發(fā)明通過軟件狀態(tài)監(jiān)控器的監(jiān)控,及時反饋出軟件質(zhì)量缺陷檢測的檢測狀態(tài)。 如果檢測出現(xiàn)異常,本發(fā)明所獨(dú)有的智能化,將使得策略編輯器根據(jù)反饋情況調(diào)整檢測策略,以再次進(jìn)行檢測,從而大大提高了檢測效率和檢測水準(zhǔn)。


圖1為本發(fā)明所述的一種基于智能動態(tài)模糊檢測的軟件質(zhì)量缺陷檢測方法的流程示意圖; 圖2為本發(fā)明所述的一種基于智能動態(tài)模糊檢測的軟件質(zhì)量缺陷檢測系統(tǒng)的框圖; 圖3為本發(fā)明所述的一種基于智能動態(tài)模糊檢測的軟件質(zhì)量缺陷檢測系統(tǒng)的設(shè)計方案圖。
具體實(shí)施例方式下面結(jié)合附圖對本發(fā)明做進(jìn)一步的詳細(xì)說明,以令本領(lǐng)域技術(shù)人員參照說明書文字能夠據(jù)以實(shí)施。
如圖1所示,本發(fā)明所述的一種基于智能動態(tài)模糊檢測的軟件質(zhì)量缺陷檢測系統(tǒng),包括如下步驟 步驟101,確定待檢測軟件、界定檢測范圍以調(diào)用策略編輯器編輯的相應(yīng)檢測策略。
本步驟中,由于針對不同目標(biāo)對象(文件解析類軟件、網(wǎng)絡(luò)協(xié)議解析類軟件、內(nèi)嵌控件類軟件)需要調(diào)用不同的檢測策略,因此在檢測開始前必須首先識別被測目標(biāo),確定調(diào)用策略編輯器中的相應(yīng)檢測策略,從而進(jìn)行下面的步驟。
步驟102,根據(jù)檢測策略構(gòu)造用于待檢測軟件的模糊檢測數(shù)據(jù)。
本步驟中,目標(biāo)對象確定以后,便根據(jù)目標(biāo)對象調(diào)用的檢測策略開始構(gòu)建模糊檢測數(shù)據(jù)。從檢測策略庫選擇已有的檢測規(guī)則,結(jié)合隨機(jī)和變異的方法生成模糊檢測數(shù)據(jù)。 例如,構(gòu)造針對網(wǎng)絡(luò)協(xié)議解析類軟件的檢測數(shù)據(jù),可以使用以下方法隨機(jī)方法創(chuàng)造偽造的數(shù)據(jù)包;對網(wǎng)絡(luò)包中特定字段進(jìn)行設(shè)置終止符和無效字符串等操作;截斷網(wǎng)絡(luò)包數(shù)據(jù)流等等。構(gòu)造針對文件解析類軟件的檢測數(shù)據(jù),可以使用以下方法用隨機(jī)數(shù)填充整個文件或部分文件;將文件中的終止字符串替換為非空字符;設(shè)置整型數(shù)據(jù)類型為負(fù)值、零或2N±1 ; 交互相鄰字節(jié)或?qū)ψ止?jié)的所有位進(jìn)行異或等操作等等。
步驟103,利用所述模糊檢測數(shù)據(jù)執(zhí)行對待檢測軟件的缺陷檢測。
本步驟中,根據(jù)目標(biāo)特點(diǎn)生成檢測數(shù)據(jù)之后,就可以使用工具利用這些數(shù)據(jù)進(jìn)行檢測。實(shí)際執(zhí)行檢測過程中,需要根據(jù)不同的參數(shù)情況適時調(diào)整數(shù)據(jù)驅(qū)動策略。因?yàn)椴呗灾械暮芏噙\(yùn)行參數(shù)會影響到檢測效果,例如運(yùn)行檢測程序所并發(fā)的進(jìn)程數(shù)會影響檢測速度, 發(fā)送是否經(jīng)過優(yōu)化的檢測數(shù)據(jù)順序會影響檢測效率,數(shù)據(jù)包的發(fā)包方式是按照順序還是按照一定規(guī)律也會影響檢測效率,是否配置監(jiān)控器會影響對目標(biāo)的監(jiān)控,基于網(wǎng)絡(luò)的模糊檢測過程是否需要抓包重放會影響漏洞的分析和定位等等。
步驟104,對待檢測軟件進(jìn)行缺陷檢測的過程進(jìn)行監(jiān)控。
本步驟中,在檢測過程中,需要對目標(biāo)出現(xiàn)的故障或異常進(jìn)行監(jiān)控,以確定由哪些檢測數(shù)據(jù)引起的什么問題。因?yàn)楸粶y對象的缺陷所造成的系統(tǒng)響應(yīng)集合本身存在未知性, 因此監(jiān)控有利于提升檢測的效率。
步驟105,如監(jiān)控發(fā)現(xiàn)異常,則對待檢測軟件模糊檢測的過程進(jìn)行狀態(tài)記錄并將記錄結(jié)果反饋至策略編輯器。
本步驟中,監(jiān)控器在出現(xiàn)下述情況時會對被測對象進(jìn)行狀態(tài)記錄(狀態(tài)包括發(fā)包序號、發(fā)包順序、字符串長度和字符串內(nèi)容等)并反饋給策略編輯器以便進(jìn)行策略優(yōu)化調(diào)整。1)被測對象的響應(yīng)不符合相關(guān)標(biāo)準(zhǔn)規(guī)范的規(guī)定例如,被測對象是WEB服務(wù)器時,檢測器可以在發(fā)送完一組畸形測試數(shù)據(jù)后向被測目標(biāo)主機(jī)發(fā)送一個“HTTP GET”請求偵察包,并確認(rèn)在發(fā)送下一組畸形數(shù)據(jù)包之前收到一個回應(yīng),以判斷被測目標(biāo)系統(tǒng)是否已經(jīng)在畸形報文作用下出現(xiàn)異常。2)被測對象發(fā)生異常,如死機(jī)、不響應(yīng)、自動重啟、彈出異常對話框、進(jìn)程僵死或輸出段錯誤等現(xiàn)象。
步驟106,策略編輯器根據(jù)反饋回的記錄結(jié)果自動進(jìn)行策略編輯調(diào)整,以形成新的檢測策略,并根據(jù)新的檢測策略重復(fù)步驟二 步驟六的操作。
本步驟中,策略編輯器根據(jù)反饋回的狀態(tài)信息自動進(jìn)行智能策略調(diào)整,主要內(nèi)容有發(fā)包數(shù)量調(diào)整、字符串長度調(diào)整等。采用的方法是二分減半法,即以觸發(fā)被測對象異常的數(shù)據(jù)為終點(diǎn),以開始發(fā)送數(shù)據(jù)為起點(diǎn),選取二分之一長度的數(shù)據(jù)重新發(fā)送檢測數(shù)據(jù),如發(fā)生異常則以新的原長度的二分之一為新的起點(diǎn)再次重新發(fā)送檢測數(shù)據(jù),依次循環(huán),最終無限逼近觸發(fā)異常的數(shù)據(jù)。檢測系統(tǒng)將最后逼近的檢測策略自動記錄,并賦予高優(yōu)先級,在對下一目標(biāo)檢測時將優(yōu)先執(zhí)行該條策略,從而提高檢測效率和命中精度。
步驟七,根據(jù)檢測結(jié)果進(jìn)行缺陷定位。
本步驟中,輔助其他技術(shù)手段進(jìn)行缺陷的定位與機(jī)理分析,從而完成缺陷檢測工作。
本發(fā)明所述的一種基于智能動態(tài)模糊檢測的軟件質(zhì)量缺陷檢測方法,通過軟件狀態(tài)監(jiān)控器的監(jiān)控,及時反饋出軟件質(zhì)量缺陷檢測的檢測狀態(tài)。如果檢測出現(xiàn)異常,本發(fā)明所獨(dú)有的智能化,將使得策略編輯器根據(jù)反饋情況調(diào)整檢測策略,以再次進(jìn)行檢測,從而大大提高了檢測效率和檢測水準(zhǔn)。
本發(fā)明還包括一種基于智能動態(tài)模糊檢測的軟件質(zhì)量缺陷檢測系統(tǒng),如圖2所示,策略編輯器主要功能是用戶使用該工具可以添加或修改任意協(xié)議檢測策略,并將這些檢測策略保存在檢測策略庫當(dāng)中。這些策略是協(xié)議檢測核心引擎生成畸形數(shù)據(jù)的依據(jù)。檢測策略庫儲著大量的檢測策略,即發(fā)生模糊檢測數(shù)據(jù)所依據(jù)的規(guī)則和專家知識。檢測策略隨著系統(tǒng)的使用并依據(jù)被檢測軟件的特性做出適時調(diào)整,從而提高檢測系統(tǒng)的命中率和工作效率,至少包括如下類型的策略1)整數(shù)類型策略對于整數(shù)型參數(shù),通常的數(shù)據(jù)生成策略是使用上界和下界進(jìn)行檢查,以發(fā)現(xiàn)是否存在整數(shù)溢出漏洞,如0和OxFFFFFFFF。但在實(shí)際在很多整數(shù)溢出的案例中,整數(shù)型參數(shù)并不是直接使用,而是經(jīng)過一些加減運(yùn)算(如 +1,-1)或者乘法運(yùn)算之后作為函數(shù)的參數(shù)使用,因此直接使用邊界進(jìn)行檢查往往不一定能觸發(fā)漏洞。因此本策略進(jìn)行了改進(jìn),除了對上界和下界進(jìn)行檢查之外,還對一些經(jīng)常容易造成問題的數(shù)值進(jìn)行檢查,如 0x100000000,0x80000000,0x40000000,0x20000000,0x01000000,0x00100000, 0x00010000,0x00001000,0x00000100,0x00000010,0x00000001 等。2)字符串類型策略對于字符串類型參數(shù),經(jīng)典的策略是使用超長的字符串“A”進(jìn)行檢查,比如發(fā)送50000個A。 有些軟件會檢測超常的“A”字符串,如果發(fā)現(xiàn)超長的“A”字符串則拒絕響應(yīng)。因此本策略設(shè)計中對字符串型參數(shù)不使用“A”字符進(jìn)行測試,而是使用“Y”來代替“A”,使用長度從1 到1024*10的“Y”字符串來進(jìn)行測試,字符串長度以64為步長進(jìn)行變化。3)格式化字符串?dāng)?shù)據(jù)策略本策略設(shè)計中采用% s和% η來生成測試數(shù)據(jù),原因是% η是唯一個會導(dǎo)致內(nèi)存寫入的格式化字符串,而% s會導(dǎo)致更大量的內(nèi)存讀取操作。格式化字符串測試數(shù)據(jù)示例如下 ‘‘ % η% η% η% η% η% η% η% η% η% η% η% η% η% η% η% η% η% η% η% η% η% " % s% s% s% s% s% s% s% s% s% s% s% s% s% s% s% s% s% s% s% s% s% s% s% 智能模糊數(shù)據(jù)發(fā)生器主要功能是根據(jù)檢測策略的規(guī)定構(gòu)造用于檢測的數(shù)據(jù)報文, 并能根據(jù)目標(biāo)對象的反饋適時調(diào)整發(fā)包的順序、個數(shù)以及數(shù)據(jù)包自身的構(gòu)造,實(shí)現(xiàn)智能數(shù)據(jù)發(fā)生,從而提到檢測系統(tǒng)的效率,為缺陷定位提供手段。
檢測引擎為整個系統(tǒng)的核心關(guān)鍵模塊,主要功能是對被檢測軟件做缺陷檢測,工作原理如下 下面設(shè)Gv代表模糊檢測可能發(fā)現(xiàn)的缺陷,設(shè)模糊檢測過程中用于提供給目標(biāo)對象以激發(fā)其內(nèi)部反應(yīng)的數(shù)據(jù)集合為H= {H1,H2,…,Hn},其中Hi(i = 1,2,…,η)表示單個數(shù)據(jù)或類似的獨(dú)立數(shù)據(jù)塊。這些數(shù)據(jù)有可能基于網(wǎng)絡(luò),也有可能基于文件格式等不同層次。設(shè)可能激發(fā)缺陷Gv的數(shù)據(jù)集為Ha,則Ha可分為如下兩類 (I)Ha只包含一個數(shù)據(jù)單元或數(shù)據(jù)快,即Ha = {Hj},其中,Hj e Hi (i = 1,2,…,
η) ο (2) Ha包含多個數(shù)據(jù)單元或數(shù)據(jù)塊,此時,Ha= {Hjl,Hj2,…,Hjr},其中Hjp e H, (1 < ρ < r),且 r < η。
可見Ha H??赡苡|發(fā)被測目標(biāo)缺陷的觸發(fā)條件集是H的部分子集所組成的集合。 由上面分析可知,要發(fā)現(xiàn)被測目標(biāo)內(nèi)部的缺陷,只要確定Ha的數(shù)據(jù)元素即可。而確定是否發(fā)現(xiàn)缺陷,還要看被測目標(biāo)內(nèi)部的反應(yīng)情況,即需根據(jù)輸入觸發(fā)元素所得到的待測系統(tǒng)響應(yīng),判斷被測目標(biāo)中其是否存在缺陷。
在此,用|1|表示一個集合I的元素個數(shù)。根據(jù)“一個含η個元素的有限集合的所有子集是2的η次方個,即”,則輸入到被測對象系統(tǒng)的各種數(shù)據(jù)或數(shù)據(jù)組合集的個數(shù)為。 與之對應(yīng),用R表示系統(tǒng)的所有響應(yīng)集合。Sk H,則與k對應(yīng)的響應(yīng)Rk可能是系統(tǒng)的正常輸出,可能是觸發(fā)了系統(tǒng)缺陷,也可能是由k觸發(fā)了系統(tǒng)缺陷后的輸出。若用Ra表示所有響應(yīng)的集合,用Rb表示出現(xiàn)缺陷的集合,用Rv表示出現(xiàn)的缺陷集合,則Rv Rb Ra。設(shè)f表示檢測過程,則f可以看作是由個元素的集合到R的一個對應(yīng)。根據(jù)以上分析,模糊檢測進(jìn)行缺陷挖掘就是盡可能窮盡Ha集合,向被測目標(biāo)提供輸入,并分析被測目標(biāo)的響應(yīng)R是否在Rv的過程。從理論上講,如果模糊檢測工具可以產(chǎn)生各種數(shù)據(jù)或數(shù)據(jù)組合,且被測目標(biāo)確定存在缺陷,則這種檢測方式一定能夠使它得到觸發(fā)。
軟件狀態(tài)監(jiān)控器主要功能是負(fù)責(zé)收集并分析目標(biāo)軟件的響應(yīng)狀態(tài),依次判斷目標(biāo)設(shè)備是否存在異常情況。舉例說明,若目標(biāo)設(shè)備返回的響應(yīng)不符合標(biāo)準(zhǔn)或文檔聲明格式,則表明軟件存在異常。存在異常的情況下,監(jiān)控器會報告給檢測引擎。
缺陷定位模塊主要功能是將檢測引擎發(fā)現(xiàn)的缺陷故障觸發(fā)點(diǎn)場景進(jìn)行記錄,記錄內(nèi)容主要包括缺陷觸發(fā)的時間、觸發(fā)時的數(shù)據(jù)包、觸發(fā)時的軟件狀態(tài)等等,使得用戶能夠進(jìn)行缺陷重現(xiàn)與定位。
結(jié)果生成模塊主要功能是將缺陷定位模塊的輸出進(jìn)行轉(zhuǎn)化,表示為檢測人員能夠讀懂的形式。缺陷定位模塊的輸出為缺陷觸發(fā)時的場景信息,晦澀難懂且難以判斷,因此用戶無法確定被檢測的程序存在缺陷的具體位置。通過該模塊的工作可以根據(jù)缺陷觸發(fā)信息給出分析指導(dǎo)建議,方便用戶進(jìn)行下一步的分析。
換言之,本發(fā)明的一種基于智能動態(tài)模糊檢測的軟件質(zhì)量缺陷檢測系統(tǒng),包括策略編輯器,用于添加或修改檢測策略,并能根據(jù)對待檢測軟件狀態(tài)監(jiān)控的反饋編輯出新的檢測策略;檢測策略庫,和所述策略編輯器相連,用于存儲大量的檢測策略,檢測策略庫中的策略隨著系統(tǒng)的使用并依據(jù)被檢測軟件的特性做出適時調(diào)整;智能模糊數(shù)據(jù)發(fā)生器,和所述策略編輯器相連且根據(jù)所述策略編輯器中的相應(yīng)檢測策略構(gòu)造用于模糊檢測的模糊數(shù)據(jù);檢測引擎,用于通過使用所述智能模糊數(shù)據(jù)發(fā)生器產(chǎn)生的模糊數(shù)據(jù)對輸入檢測引擎的待被檢測軟件做缺陷檢測;軟件狀態(tài)監(jiān)控器,和所述檢測引擎相連,負(fù)責(zé)收集并分析待檢測軟件的響應(yīng)狀態(tài),如果出現(xiàn)異常情況就反饋給所述策略編輯器;缺陷定位模塊,和所述檢測引擎模塊相連,并將檢測引擎發(fā)現(xiàn)的缺陷故障觸發(fā)點(diǎn)場景進(jìn)行記錄,以使得用戶能夠進(jìn)行缺陷重現(xiàn)與定位;結(jié)果生成模塊,和所述缺陷定位模塊相連, 將缺陷定位模塊的輸出進(jìn)行轉(zhuǎn)化并表示為檢測人員能夠讀懂的形式。
本發(fā)明的基于智能動態(tài)模糊檢測的軟件質(zhì)量缺陷檢測系統(tǒng),其中根據(jù)待檢測軟件的類型來選擇適當(dāng)?shù)臋z測引擎,所選擇的檢測引擎用于通過使用所述智能模糊數(shù)據(jù)發(fā)生器產(chǎn)生的模糊數(shù)據(jù)對輸入檢測引擎的待被檢測軟件做缺陷檢測。
本發(fā)明的基于智能動態(tài)模糊檢測的軟件質(zhì)量缺陷檢測系統(tǒng),其中所述檢測引擎包括協(xié)議檢測引擎、控件檢測引擎和/或文件檢測引擎。
本發(fā)明的基于智能動態(tài)模糊檢測的軟件質(zhì)量缺陷檢測系統(tǒng),其中在所述軟件狀態(tài)監(jiān)控器監(jiān)控下,若待檢測軟件返回的響應(yīng)不符合標(biāo)準(zhǔn)或文檔聲明格式,則表明軟件存在異堂巾ο 本發(fā)明所述的一種基于智能動態(tài)模糊檢測的軟件質(zhì)量缺陷檢測系統(tǒng),其將特有的智能監(jiān)控和智能反饋以及智能調(diào)整為軟件質(zhì)量缺陷的檢測大大提高了效率,并且其檢測范圍覆蓋網(wǎng)絡(luò)協(xié)議處理類軟件、文件處理類軟件和內(nèi)嵌控件類軟件,其實(shí)用性必將使其得到更廣的應(yīng)用。
盡管本發(fā)明的實(shí)施方案已公開如上,但其并不僅僅限于說明書和實(shí)施方式中所列運(yùn)用,它完全可以被適用于各種適合本發(fā)明的領(lǐng)域,對于熟悉本領(lǐng)域的人員而言,可容易地實(shí)現(xiàn)另外的修改,因此在不背離權(quán)利要求及等同范圍所限定的一般概念下,本發(fā)明并不限于特定的細(xì)節(jié)和這里示出與描述的圖例。
權(quán)利要求
1.一種基于智能動態(tài)模糊檢測的軟件質(zhì)量缺陷檢測方法,其特征在于,步驟包括 步驟一,確定待檢測軟件、界定檢測范圍以調(diào)用策略編輯器編輯的相應(yīng)檢測策略; 步驟二,根據(jù)檢測策略構(gòu)造用于待檢測軟件的模糊檢測數(shù)據(jù);步驟三,利用所述模糊檢測數(shù)據(jù)執(zhí)行對待檢測軟件的缺陷檢測; 步驟四,對待檢測軟件進(jìn)行缺陷檢測的過程進(jìn)行監(jiān)控;步驟五,如監(jiān)控發(fā)現(xiàn)異常,則對待檢測軟件模糊檢測的過程進(jìn)行狀態(tài)記錄并將記錄結(jié) 果反饋至策略編輯器;步驟六,策略編輯器根據(jù)反饋回的記錄結(jié)果自動進(jìn)行策略編輯調(diào)整,以形成新的檢測 策略,并根據(jù)新的檢測策略重復(fù)步驟二 步驟六的操作; 步驟七,根據(jù)檢測結(jié)果進(jìn)行缺陷定位。
2.如權(quán)利要求1所述的基于智能動態(tài)模糊檢測的軟件質(zhì)量缺陷檢測方法,其特征在 于,所述步驟二還進(jìn)一步包括結(jié)合隨機(jī)或者變異的方法構(gòu)造模糊檢測數(shù)據(jù)。
3.如權(quán)利要求1所述的基于智能動態(tài)模糊檢測的軟件質(zhì)量缺陷檢測方法,其特征在 于,在所述步驟三中,在執(zhí)行模糊檢測的過程中,還包括根據(jù)輸入?yún)?shù)調(diào)整檢測策略的步馬聚ο
4.如權(quán)利要求1所述的基于智能動態(tài)模糊檢測的軟件質(zhì)量缺陷檢測方法,其特征在 于,如果沒有監(jiān)控到模糊檢測過程中的任何異常情況,步驟三中的缺陷檢測過程將跳過步 驟五和步驟六,而直接執(zhí)行步驟七。
5.如權(quán)利要求1所述的基于智能動態(tài)模糊檢測的軟件質(zhì)量缺陷檢測方法,其特征在 于,在步驟三中,根據(jù)待檢測軟件的類型來選擇適當(dāng)?shù)臋z測引擎,所選擇的檢測引擎利用所 述模糊檢測數(shù)據(jù)執(zhí)行對待檢測軟件的缺陷檢測。
6.一種基于智能動態(tài)模糊檢測的軟件質(zhì)量缺陷檢測系統(tǒng),其特征在于,包括策略編輯器,用于添加或修改檢測策略,并能根據(jù)對待檢測軟件狀態(tài)監(jiān)控的反饋編輯 出新的檢測策略;檢測策略庫,和所述策略編輯器相連,用于存儲大量的檢測策略,檢測策略庫中的策略 隨著系統(tǒng)的使用并依據(jù)被檢測軟件的特性做出適時調(diào)整;智能模糊數(shù)據(jù)發(fā)生器,和所述策略編輯器相連且根據(jù)所述策略編輯器中的相應(yīng)檢測策 略構(gòu)造用于模糊檢測的模糊數(shù)據(jù);檢測引擎,用于通過使用所述智能模糊數(shù)據(jù)發(fā)生器產(chǎn)生的模糊數(shù)據(jù)對輸入檢測引擎的 待被檢測軟件做缺陷檢測;軟件狀態(tài)監(jiān)控器,和所述檢測引擎相連,負(fù)責(zé)收集并分析待檢測軟件的響應(yīng)狀態(tài),如果 出現(xiàn)異常情況就反饋給所述策略編輯器;缺陷定位模塊,和所述檢測引擎模塊相連,并將檢測引擎發(fā)現(xiàn)的缺陷故障觸發(fā)點(diǎn)場景 進(jìn)行記錄,以使得用戶能夠進(jìn)行缺陷重現(xiàn)與定位;結(jié)果生成模塊,和所述缺陷定位模塊相連,將缺陷定位模塊的輸出進(jìn)行轉(zhuǎn)化并表示為 檢測人員能夠讀懂的形式。
7.如權(quán)利要求6所述的基于智能動態(tài)模糊檢測的軟件質(zhì)量缺陷檢測系統(tǒng),其特征在 于,根據(jù)待檢測軟件的類型來選擇適當(dāng)?shù)臋z測引擎,所選擇的檢測引擎用于通過使用所述 智能模糊數(shù)據(jù)發(fā)生器產(chǎn)生的模糊數(shù)據(jù)對輸入檢測引擎的待被檢測軟件做缺陷檢測。
8.如權(quán)利要求7所述的基于智能動態(tài)模糊檢測的軟件質(zhì)量缺陷檢測系統(tǒng),其特征在 于,所述檢測引擎包括協(xié)議檢測引擎、控件檢測引擎和/或文件檢測引擎。
9.如權(quán)利要求6所述的基于智能動態(tài)模糊檢測的軟件質(zhì)量缺陷檢測系統(tǒng),其特征在 于,在所述軟件狀態(tài)監(jiān)控器監(jiān)控下,若待檢測軟件返回的響應(yīng)不符合標(biāo)準(zhǔn)或文檔聲明格式, 則表明軟件存在異常。
全文摘要
本發(fā)明公開了一種基于智能動態(tài)模糊檢測的軟件質(zhì)量缺陷檢測方法和系統(tǒng),所述方法步驟包括確定待檢測軟件、界定檢測范圍以調(diào)用相應(yīng)檢測策略;根據(jù)檢測策略構(gòu)造用于檢測的模糊檢測數(shù)據(jù);利用模糊檢測數(shù)據(jù)執(zhí)行對待檢測軟件的缺陷檢測;對待檢測軟件進(jìn)行缺陷檢測的過程進(jìn)行監(jiān)控;如監(jiān)控發(fā)現(xiàn)異常,則對待檢測軟件模糊檢測的過程進(jìn)行狀態(tài)記錄并將記錄結(jié)果反饋至策略編輯器;策略編輯器根據(jù)反饋回的記錄結(jié)果自動進(jìn)行策略編輯調(diào)整,以形成新的檢測策略,并根據(jù)新的檢測策略重復(fù)步驟二~步驟六的操作;根據(jù)檢測結(jié)果進(jìn)行缺陷定位。所述系統(tǒng)包括策略編輯器;檢測策略庫;智能模糊數(shù)據(jù)發(fā)生器;檢測引擎;軟件狀態(tài)監(jiān)控器;缺陷定位模塊;結(jié)果生成模塊。
文檔編號G06F11/36GK101847125SQ201010192320
公開日2010年9月29日 申請日期2010年5月31日 優(yōu)先權(quán)日2010年5月31日
發(fā)明者高新宇 申請人:高新宇
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1