• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于動(dòng)態(tài)污點(diǎn)分析的二進(jìn)制程序?qū)蛐阅:郎y(cè)試方法

    2014-10-17 18:10:42張斌等
    現(xiàn)代電子技術(shù) 2014年19期
    關(guān)鍵詞:安全漏洞

    張斌等

    摘 要: 傳統(tǒng)模糊測(cè)試中,由于不同的輸入可能重復(fù)測(cè)試相同的狀態(tài)空間,導(dǎo)致其效率嚴(yán)重低下。提出一種基于動(dòng)態(tài)污點(diǎn)分析與輸入分域技術(shù)相結(jié)合的二進(jìn)制程序?qū)蛐阅:郎y(cè)試技術(shù),可以對(duì)典型安全敏感操作與一般模塊函數(shù)進(jìn)行導(dǎo)向性模糊測(cè)試,很好地解決了傳統(tǒng)模糊測(cè)試效率低下的問題。實(shí)現(xiàn)了二進(jìn)制導(dǎo)向性模糊測(cè)試的原型系統(tǒng)TaintedFuzz,實(shí)驗(yàn)證明,該系統(tǒng)能夠?qū)ΧM(jìn)制程序中存在的典型安全漏洞進(jìn)行高效地發(fā)掘。

    關(guān)鍵詞: 安全漏洞; 導(dǎo)向性模糊測(cè)試; 動(dòng)態(tài)污點(diǎn)分析; 輸入分域

    中圖分類號(hào): TN915.08?34 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 1004?373X(2014)19?0089?06

    Method of binary oriented fuzzy testing based on dynamic taint analysis

    ZHANG Bin, LI Meng?jun, WU bo, TANG Chao?jing

    (College of Electronic Science and Engineering, National University of Defence Technology, Changsha 410073, China)

    Abstract: Since traditional fuzzy testing may test the same state space repeatedly due to the different input, and lead to a low efficiency, a binary oriented fuzzy testing technique based on dynamic taint analysis combined with input field classification technology is presented in this paper, which can perform the oriented fuzzy testing for typical security?sensitive operation and general module function, and serve as a good solution to the problem of low efficiency of the traditional fuzzy testing. The prototype system TaintedFuzz was also realized for binary oriented fuzzy testing. The experiment proves that the method is capable of exploring the typical security vulnerabilities in the binary program efficiently.

    Keywords: security vulnerability; oriented fuzzy testing; dynamic taint analysis; input field classification

    0 引 言

    隨著現(xiàn)代信息系統(tǒng)規(guī)模和復(fù)雜度的逐步增加,計(jì)算機(jī)軟件安全問題變得尤為突出,而軟件安全漏洞又是威脅信息系統(tǒng)安全的核心問題,因此,如何快速準(zhǔn)確地發(fā)掘軟件安全漏洞成為安全界的熱點(diǎn)研究問題。根據(jù)研究對(duì)象的不同,軟件安全漏洞挖掘分為針對(duì)開源軟件的源碼級(jí)別漏洞挖掘和針對(duì)閉源軟件的二進(jìn)制級(jí)別漏洞挖掘。出于對(duì)自身商業(yè)利益和知識(shí)產(chǎn)權(quán)的保護(hù),大部分軟件廠商并不向外開放其軟件源代碼,因此針對(duì)二進(jìn)制程序進(jìn)行安全漏洞發(fā)掘是當(dāng)前研究的一大主流方向。目前,針對(duì)二進(jìn)制程序有效的發(fā)掘方法有補(bǔ)丁對(duì)比技術(shù)、模糊測(cè)試技術(shù)、靜態(tài)分析技術(shù)和動(dòng)態(tài)分析技術(shù)[1]。

    模糊測(cè)試(Fuzzing)技術(shù)是一種通過向目標(biāo)系統(tǒng)提供非預(yù)期的輸入并監(jiān)視異常結(jié)果來發(fā)現(xiàn)軟件漏洞的方法[2]。模糊測(cè)試首先通過正常樣本構(gòu)造出一系列畸形測(cè)試用例,然后針對(duì)目標(biāo)系統(tǒng)使用這些測(cè)試用例逐一進(jìn)行測(cè)試并實(shí)時(shí)監(jiān)控目標(biāo)狀態(tài),通過對(duì)目標(biāo)異常信息的分析來發(fā)掘目標(biāo)系統(tǒng)中存在的安全漏洞。模糊測(cè)試是一種通過輸入空間的完全遍歷來驅(qū)動(dòng)程序在狀態(tài)空間進(jìn)行完全遍歷的測(cè)試方法,具有測(cè)試簡單、易于部署等特點(diǎn)。然而,輸入空間與狀態(tài)空間的非對(duì)等性導(dǎo)致不同的輸入可能驅(qū)動(dòng)程序重復(fù)測(cè)試相同的狀態(tài)空間,因此模糊測(cè)試具有效率低下的天然缺陷。

    傳統(tǒng)模糊測(cè)試采用完全黑盒的測(cè)試方法,在畸形測(cè)試用例的生成過程中,沒有用到程序的內(nèi)部信息[3],造成大部分畸形測(cè)試用例對(duì)程序狀態(tài)空間進(jìn)行了重復(fù)性測(cè)試。如何提高模糊測(cè)試的效率是當(dāng)前模糊測(cè)試的主要研究方向,本文提出并實(shí)現(xiàn)了針對(duì)二進(jìn)制程序的導(dǎo)向性模糊測(cè)試原型系統(tǒng)TaintedFuzz。該系統(tǒng)采用基于動(dòng)態(tài)污點(diǎn)分析與輸入分域技術(shù)相結(jié)合的導(dǎo)向性模糊測(cè)試方法,利用程序在動(dòng)態(tài)執(zhí)行過程中的運(yùn)行時(shí)信息指導(dǎo)模糊測(cè)試畸形樣本的生成,很好地解決了傳統(tǒng)模糊測(cè)試效率低下的問題。

    1 導(dǎo)向性模糊測(cè)試技術(shù)

    畸形樣本生成是模糊測(cè)試技術(shù)的關(guān)鍵。正常樣本數(shù)據(jù)由安全相關(guān)數(shù)據(jù)和安全無關(guān)數(shù)據(jù)組成,安全相關(guān)數(shù)據(jù)是指與程序安全敏感操作相關(guān)的數(shù)據(jù),安全無關(guān)數(shù)據(jù)指對(duì)安全敏感操作不產(chǎn)生影響的數(shù)據(jù)[3]。典型安全敏感操作包括字符串處理函數(shù)(如strcpy、memcpy)、內(nèi)存分配函數(shù)(如malloc、HeapAlloc)以及用戶根據(jù)具體需求指定的安全操作。對(duì)安全無關(guān)數(shù)據(jù)的變異通常不會(huì)導(dǎo)致軟件異常,而對(duì)安全相關(guān)數(shù)據(jù)的變異往往能夠觸發(fā)軟件中潛在的安全漏洞,因此,首先通過靜態(tài)分析技術(shù)獲得安全敏感函數(shù)的調(diào)用點(diǎn);然后利用動(dòng)態(tài)污點(diǎn)分析技術(shù)對(duì)數(shù)據(jù)依賴關(guān)系進(jìn)行動(dòng)態(tài)跟蹤,根據(jù)安全敏感函數(shù)的參數(shù)類型分析對(duì)應(yīng)的安全相關(guān)數(shù)據(jù);最終通過對(duì)安全相關(guān)數(shù)據(jù)的變異實(shí)現(xiàn)對(duì)目標(biāo)程序的導(dǎo)向性模糊測(cè)試。

    考慮到編譯器的優(yōu)化工作,如函數(shù)內(nèi)聯(lián)、無用代碼刪除、循環(huán)體展開等,這些優(yōu)化工作可能會(huì)將一些安全敏感函數(shù)內(nèi)聯(lián)到模塊函數(shù)當(dāng)中,造成模塊函數(shù)中出現(xiàn)漏洞的可能性增大。因此,對(duì)模塊函數(shù)進(jìn)行模糊測(cè)試時(shí),發(fā)掘目標(biāo)程序中的安全漏洞具有重要意義。然而,不同于安全敏感函數(shù),這些模塊函數(shù)往往不具有調(diào)試信息,其函數(shù)參數(shù)類型不可獲得,所以無法根據(jù)其函數(shù)類型對(duì)其相關(guān)數(shù)據(jù)進(jìn)行變異。提出基于動(dòng)態(tài)污點(diǎn)分析與輸入分域技術(shù)相結(jié)合的導(dǎo)向性模糊測(cè)試方法,通過對(duì)目標(biāo)程序處理正常樣本過程的學(xué)習(xí),獲取所有處理輸入的模塊函數(shù)及對(duì)應(yīng)的污點(diǎn)輸入;并通過基于執(zhí)行跡的分域技術(shù),完成對(duì)未知格式輸入的輸入域的劃分;最終根據(jù)輸入域劃分的結(jié)果對(duì)模塊函數(shù)的污點(diǎn)輸入進(jìn)行變異,實(shí)現(xiàn)對(duì)目標(biāo)程序的導(dǎo)向性模糊測(cè)試。

    本文實(shí)現(xiàn)了基于動(dòng)態(tài)污點(diǎn)分析與輸入分域技術(shù)的導(dǎo)向性模糊測(cè)試原型系統(tǒng)TaintedFuzz,整體框架如圖1所示。系統(tǒng)分為前端信息收集、中端測(cè)試點(diǎn)分析及后端Fuzzing引擎三大模塊。系統(tǒng)前端模塊利用動(dòng)態(tài)污點(diǎn)分析技術(shù)收集目標(biāo)軟件在執(zhí)行正常測(cè)試樣本時(shí)的運(yùn)行時(shí)信息;中端模塊通過對(duì)前端收集的預(yù)處理信息進(jìn)行分析處理,獲得后端Fuzzing引擎的測(cè)試點(diǎn)(check點(diǎn));后端Fuzzing引擎通過對(duì)check點(diǎn)的變異測(cè)試,完成對(duì)目標(biāo)軟件的導(dǎo)向性模糊測(cè)試。

    1.1 在線安全敏感操作分析

    1.1.1 細(xì)顆粒度動(dòng)態(tài)污點(diǎn)分析技術(shù)

    TaintedFuzz采用細(xì)顆粒度動(dòng)態(tài)污點(diǎn)分析技術(shù)(Fine?Grained Dynamic Taint Analysis)完成對(duì)目標(biāo)程序執(zhí)行過程的監(jiān)控及信息獲取。

    動(dòng)態(tài)污點(diǎn)分析技術(shù)本質(zhì)上是一種信息流分析,其基本思想是在程序的動(dòng)態(tài)執(zhí)行過程中,追蹤并收集程序?qū)μ囟ㄝ斎霐?shù)據(jù)的處理過程。傳統(tǒng)動(dòng)態(tài)污點(diǎn)分析技術(shù)僅能夠分析內(nèi)存、寄存器或指令是否被單一污點(diǎn)源污染,無法滿足針對(duì)復(fù)雜輸入軟件的分析。TaintedFuzz通過對(duì)污點(diǎn)數(shù)據(jù)進(jìn)行字節(jié)粒度的標(biāo)定與傳播,完成對(duì)目標(biāo)程序的細(xì)顆粒度污點(diǎn)分析。

    TaintedFuzz對(duì)目標(biāo)程序的動(dòng)態(tài)監(jiān)控及信息收集主要由三個(gè)部分構(gòu)成:污點(diǎn)數(shù)據(jù)的標(biāo)定、污點(diǎn)數(shù)據(jù)的傳播以及污點(diǎn)分析策略。圖2描述了其基本過程。

    TaintedFuzz依靠劫持特定的Windows API函數(shù)完成對(duì)目標(biāo)程序污點(diǎn)數(shù)據(jù)的標(biāo)定及注入。如針對(duì)命令行輸入型程序可以攔截GetCommandLine的返回值,該函數(shù)返回一個(gè)指向命令行參數(shù)的指針,通過對(duì)該指針指向的內(nèi)存區(qū)域進(jìn)行污點(diǎn)標(biāo)記,完成對(duì)命令行參數(shù)的污點(diǎn)標(biāo)記;針對(duì)文件輸入型程序,TaintedFuzz通過攔截Windows系統(tǒng)中典型的文件操作函數(shù)(如fread、ReadFile、MapViewOfFile等)并分析這些函數(shù)的參數(shù)或返回值,完成對(duì)文件輸入型程序的污點(diǎn)標(biāo)定。TaintedFuzz通過對(duì)輸入數(shù)據(jù)的每個(gè)字節(jié)賦予一個(gè)特定的污點(diǎn)標(biāo)簽,來完成字節(jié)粒度上多污點(diǎn)源的標(biāo)定。污點(diǎn)標(biāo)簽結(jié)構(gòu)為二元組。其中:s表示污染源,如文件、命令行等;o表示該污點(diǎn)字節(jié)在整個(gè)污染源中的偏移量。在完成污點(diǎn)數(shù)據(jù)的標(biāo)定之后,TaintedFuzz監(jiān)控并分析每條CPU指令,來實(shí)現(xiàn)對(duì)目標(biāo)代碼執(zhí)行的動(dòng)態(tài)監(jiān)控,并通過影子內(nèi)存(Shadow Memory)[4]技術(shù)實(shí)現(xiàn)對(duì)內(nèi)存和寄存器污點(diǎn)信息的存儲(chǔ)及傳播。在程序的執(zhí)行過程中,TaintedFuzz將根據(jù)需要對(duì)相應(yīng)的信息進(jìn)行收集,并在達(dá)到需要分析的位置(sink點(diǎn))之后,根據(jù)特定的污點(diǎn)分析策略對(duì)收集到的信息進(jìn)行分析。

    1.1.2 安全敏感函數(shù)分析

    TaintedFuzz在細(xì)粒度動(dòng)態(tài)污點(diǎn)分析基礎(chǔ)上實(shí)現(xiàn)了數(shù)據(jù)依賴關(guān)系的動(dòng)態(tài)跟蹤,因此在監(jiān)控程序動(dòng)態(tài)執(zhí)行的同時(shí),可以在線完成典型安全敏感操作的分析工作。TaintedFuzz首先通過靜態(tài)分析技術(shù)獲得安全敏感函數(shù)的調(diào)用點(diǎn),然后在動(dòng)態(tài)污點(diǎn)分析時(shí),根據(jù)這些安全敏感函數(shù)的參數(shù)類型分析對(duì)應(yīng)的安全相關(guān)數(shù)據(jù),如對(duì)于strcpy,其函數(shù)原型為:

    char*strcpy(char*strDestination,const char *strSource)

    其中strDestination表示寫入地址,strSource表示源地址。TaintedFuzz通過對(duì)strSource指向的內(nèi)存地址進(jìn)行污點(diǎn)檢查,獲取對(duì)應(yīng)的安全相關(guān)數(shù)據(jù),并記錄當(dāng)前運(yùn)行時(shí)信息,運(yùn)行時(shí)信息記錄格式為(Danger_func,TID,Module,InvokeEIP,RETAddr,StackBase,StackLimit, arg1,arg2,…),Danger_func代表安全敏感函數(shù);TID、 Module分別表示當(dāng)前線程ID與模塊名稱;InvokeEIP與RETAddr分別表示安全敏感函數(shù)調(diào)用地址與返回地址;StackBase與StackLimit分別表示當(dāng)前線程棧的棧基址與棧界限;arg1等代表當(dāng)前安全敏感函數(shù)參數(shù)。下面給出了具體的執(zhí)行結(jié)果:

    (1, 1856, cmd_overflow.exe, 0x0040e791, 0x0040e796, 0x0012e000, 0x00130000, 0x0012ff10, 0x00380bbd)

    T(16 17 18 19 20 21 22 23)

    其中1表示當(dāng)前安全敏感函數(shù)為strcpy;T(16 17 18 19 20 21 22 23)表示strSource參數(shù)所指向的內(nèi)存被偏移量為(16 17 18 19 20 21 22 23)的污點(diǎn)數(shù)據(jù)所污染。那么這8個(gè)連續(xù)污點(diǎn)數(shù)據(jù)將被作為檢測(cè)點(diǎn),用來指導(dǎo)后端的模糊測(cè)試。這樣可以避免對(duì)輸入空間的盲目枚舉,提高模糊測(cè)試的效率。

    1.2 針對(duì)模塊函數(shù)的測(cè)試用例生成方法

    模糊測(cè)試的有效性完全取決于測(cè)試用例的有效性。例如,針對(duì)安全敏感操作的測(cè)試用例生成,可以在已知敏感操作函數(shù)參數(shù)類型的情況下,根據(jù)參數(shù)類型對(duì)安全相關(guān)數(shù)據(jù)進(jìn)行變異,這樣生成的測(cè)試用例更容易觸發(fā)安全漏洞。然而,如何針對(duì)未知參數(shù)類型的模塊函數(shù)進(jìn)行有效的測(cè)試用例生成,卻成為模糊測(cè)試的難題。在對(duì)輸入進(jìn)行輸入域劃分的基礎(chǔ)上,結(jié)合程序循環(huán)復(fù)雜度提出一種針對(duì)模塊函數(shù)的測(cè)試用例生成方法,該方法可以針對(duì)復(fù)雜模塊函數(shù)生成有效的測(cè)試用例。

    1.2.1 基于執(zhí)行跡的輸入分域技術(shù)

    作為輸入驅(qū)動(dòng)的測(cè)試方法,模糊測(cè)試的有效性完全依賴于畸形數(shù)據(jù)的生成方式。傳統(tǒng)模糊測(cè)試畸形測(cè)試用例產(chǎn)生的方法有兩種:基于變異的畸形數(shù)據(jù)生成方法和基于規(guī)范的畸形數(shù)據(jù)生成方法[2]?;谧儺惖纳煞椒ㄍㄟ^對(duì)正常數(shù)據(jù)進(jìn)行隨機(jī)修改/破壞而生成畸形數(shù)據(jù),其主要優(yōu)勢(shì)在于不依賴具體的格式而且易于實(shí)現(xiàn),然而這種測(cè)試方法生成的測(cè)試數(shù)據(jù)對(duì)程序狀態(tài)空間覆蓋率比較低,嚴(yán)重影響模糊測(cè)試的效率;基于規(guī)范的畸形數(shù)據(jù)測(cè)試方法依賴于測(cè)試人員對(duì)文件/協(xié)議格式的先驗(yàn)知識(shí),然而如何獲取畸形數(shù)據(jù)生成規(guī)范卻成為這種方法的瓶頸,對(duì)于未公開或非常復(fù)雜的輸入格式,如何構(gòu)造出有效的測(cè)試用例成為基于規(guī)范的畸形數(shù)據(jù)生成方法的難點(diǎn)。在文獻(xiàn)[5?7]對(duì)協(xié)議格式逆向工程(Protocol Format Reverse Engineering)已經(jīng)取得一定成果的基礎(chǔ)上,提出一種基于執(zhí)行跡的輸入分域方法,通過學(xué)習(xí)目標(biāo)程序?qū)φ颖镜奶幚磉^程,完成對(duì)輸入數(shù)據(jù)的域劃分。

    算法的核心思想是程序在解析輸入時(shí)總是將不同的輸入域(Input Field)放置在不同的執(zhí)行環(huán)境(Execution Context)中處理,也就是說,屬于同一個(gè)輸入域的相鄰字節(jié)將在同樣的執(zhí)行環(huán)境中處理。因此,TaintedFuzz在已獲取到每個(gè)輸入字節(jié)處理信息(執(zhí)行跡、調(diào)用棧等)的基礎(chǔ)上,通過基于執(zhí)行跡的輸入分域算法完成對(duì)輸入中各個(gè)域的區(qū)別與劃分。

    算法將污點(diǎn)輸入的處理信息表示為四元組,。其中i代表指令地址;s表示當(dāng)前指令的調(diào)用棧信息;t表示當(dāng)前指令的污點(diǎn)集合信息;c為當(dāng)前進(jìn)程線程信息。TaintedFuzz采用動(dòng)態(tài)維護(hù)影子棧的方法完成對(duì)程序運(yùn)行時(shí)調(diào)用棧的獲取,對(duì)進(jìn)程中每個(gè)線程影子棧進(jìn)行分別維護(hù)。影子棧的維護(hù)通過插樁函數(shù)調(diào)用指令,如CALL和函數(shù)返回指令如RET完成。若將每條處理信息表示為preInfo[i],則每條處理信息中的四元信息將分別表示為preInfo[i].i、preInfo[i].s、preInfo[i].t以及preInfo[i].c。具體輸入分域算法如下:

    Algorithm2 Input Format Reverse

    1:Initial:IFtree = ROOT – Input Format Tree

    2:Input:preInfo

    3:Output:IFtree

    4:Input_Format_Reverse (preInfo){

    5: p=preInfo[0].t; i = 1;

    6: while(preInfo is not EOF){

    7: q=preInfo[i].t;

    8: if(q == p){}

    9: else if ((q.min == p.max || q.min ==p.max+1) &&

    10: preInfo[i].s == preInfo[i-1].s)

    11: p=UNION(p, q);

    12: else{

    13: Vnode =CreateNoe(p);

    14: Find Unode in IFtree where Unode contains Vnode, but not its children;

    15: Insert Vnode into IFtree as the child of Unode;

    16: if (Unode.children != NULL){

    17: Find NeedMoves in Unode.children which are subset of Vnode;

    18: Insert NeedMoves into IFtree as the child of Vnode;

    19: }

    20: p=q;

    21: }

    22: i++;

    23: }

    24: return IFtree;

    25: }

    算法將整個(gè)輸入看作一個(gè)輸入格式樹。首先將樹初始化為包含所有污點(diǎn)標(biāo)簽的ROOT節(jié)點(diǎn)。對(duì)于每條信息preInfo[i],如果當(dāng)前信息污點(diǎn)集合與前一條信息污點(diǎn)集合連續(xù)或“偽連續(xù)”(偽連續(xù)是指當(dāng)前信息污點(diǎn)集合最小值與前一條信息污點(diǎn)集合最大值相等),并且當(dāng)前調(diào)用棧與前一條調(diào)用棧相同,則認(rèn)為當(dāng)前污點(diǎn)信息集合與前一條污點(diǎn)信息集合屬于同一個(gè)輸入域(第9、10行);如果污點(diǎn)集合信息不連續(xù)或調(diào)用棧不同,算法首先在樹中找到一個(gè)包含當(dāng)前污點(diǎn)集合信息的最小節(jié)點(diǎn)(第14行),然后將當(dāng)前污點(diǎn)信息作為該節(jié)點(diǎn)的子節(jié)點(diǎn)插入到樹中;同時(shí),如果該節(jié)點(diǎn)有子節(jié)點(diǎn),則將子節(jié)點(diǎn)中是當(dāng)前污點(diǎn)信息子集的子節(jié)點(diǎn)移動(dòng)為當(dāng)前污點(diǎn)信息集合節(jié)點(diǎn)的子節(jié)點(diǎn)(第17~19行)。

    用于測(cè)試的文件格式如圖3所示。

    該測(cè)試文件格式前兩個(gè)字節(jié)表示文件格式,第2~5個(gè)字節(jié)表示數(shù)據(jù)偏移位置,第6~9個(gè)字節(jié)表征數(shù)據(jù)域的長度,第10個(gè)字節(jié)以后為數(shù)據(jù)域。測(cè)試程序?yàn)楹唵蔚奈募x入解析程序,經(jīng)過輸入域劃分之后的結(jié)果如圖4所示。可以看到,基于執(zhí)行跡的輸入分域算法可以很好地識(shí)別與劃分輸入域。

    1.2.2 輸入分域與循環(huán)復(fù)雜度結(jié)合的測(cè)試用例生成法

    考慮到目標(biāo)程序中模塊函數(shù)的數(shù)量比較龐大,在有效時(shí)間內(nèi)對(duì)目標(biāo)程序中所有模塊函數(shù)進(jìn)行完全模糊測(cè)試將會(huì)消耗大量資源,因此,為了提高模糊測(cè)試效率,發(fā)掘更多的安全漏洞,結(jié)合程序分析理論,對(duì)模塊函數(shù)進(jìn)行篩選,選擇其中比較復(fù)雜的函數(shù)進(jìn)行選擇性的分析與測(cè)試。

    循環(huán)復(fù)雜度(Cyclomatic Complexity)也稱為條件復(fù)雜度或圈復(fù)雜度,用于表示程序復(fù)雜度[8]。程序的循環(huán)復(fù)雜度是其線性獨(dú)立路徑的數(shù)量,一般通過程序的控制流圖來定義,其定義為[M=E-N+2P,]其中[E]代表流圖中邊的個(gè)數(shù),[N]代表流圖中節(jié)點(diǎn)個(gè)數(shù),[P]代表流圖中連接組件的個(gè)數(shù)[9]。例如,在圖5給出的簡單控制流圖中,[E=9,][N=8,][P=1,]因此其循環(huán)復(fù)雜度為[9-8+(2×1)=3。]

    循環(huán)復(fù)雜度和軟件缺陷個(gè)數(shù)具有高度的正相關(guān)性,因此循環(huán)復(fù)雜度可以用來預(yù)測(cè)軟件中安全缺陷的個(gè)數(shù)[10]。提出基于輸入分域與循環(huán)復(fù)雜度相結(jié)合的測(cè)試用例生成方法,首先通過對(duì)動(dòng)態(tài)污點(diǎn)分析執(zhí)行跡進(jìn)行分析,獲得被污染的函數(shù)及其污點(diǎn)信息集合;然后,為了提高模糊測(cè)試中發(fā)現(xiàn)漏洞的概率,根據(jù)循環(huán)復(fù)雜度,對(duì)被污染函數(shù)進(jìn)行排序,選取其中復(fù)雜度較高的函數(shù);最后,根據(jù)輸入分域的結(jié)果對(duì)這些函數(shù)的污點(diǎn)信息進(jìn)行分析和輸入域劃分,用于指導(dǎo)模糊測(cè)試的測(cè)試用例生成。

    如表1所示,在對(duì)動(dòng)態(tài)污點(diǎn)分析的執(zhí)行跡進(jìn)行分析的基礎(chǔ)上,針對(duì)循環(huán)復(fù)雜度較高的Func1,F(xiàn)unc2,F(xiàn)unc3,可以根據(jù)輸入分域的結(jié)果將其對(duì)應(yīng)的污點(diǎn)信息進(jìn)行輸入域劃分,如(2,3,4,5)四個(gè)字節(jié)很可能表示一個(gè)整形數(shù)據(jù),(10,11,12,13,14,15)連續(xù)多字節(jié)表示字符串?dāng)?shù)據(jù),那么用這些信息指導(dǎo)生成的測(cè)試用例將會(huì)更容易觸發(fā)復(fù)雜函數(shù)中的安全漏洞。

    表1 被污染函數(shù)復(fù)雜度排序

    [污點(diǎn)信息集合\&函數(shù)\&循環(huán)復(fù)雜度\&(2,3,4,5,8,9)\&Func1\&40\&(10,11,12,13,14,15)\&Func2\&37\&(1,5,6,7)\&Func3\&23\&…\&…\&…\&]

    1.3 模糊測(cè)試引擎

    在完成安全相關(guān)數(shù)據(jù)偏移及類型識(shí)別之后,TaintedFuzz系統(tǒng)將識(shí)別的關(guān)鍵測(cè)試點(diǎn)送至模糊測(cè)試引擎中進(jìn)行變異。TaintedFuzz的模糊測(cè)試引擎主要負(fù)責(zé)畸形測(cè)試用例的生成和針對(duì)目標(biāo)程序的安全測(cè)試。TaintedFuzz的模糊測(cè)試引擎實(shí)現(xiàn)了針對(duì)不同數(shù)據(jù)類型(如longint,int,shortint,char,string等)的變異,并且每種數(shù)據(jù)類型均具有多種變異策略,如針對(duì)char類型的深度變異、針對(duì)string類型的長度變異,針對(duì)整形的臨界安全值變異及隨機(jī)變異等;安全測(cè)試部分采用調(diào)試器技術(shù)實(shí)現(xiàn)對(duì)目標(biāo)程序執(zhí)行的動(dòng)態(tài)監(jiān)控及異常捕獲,并且可以將異常發(fā)生時(shí)的CPU狀態(tài)及執(zhí)行上下文記錄下來,供安全人員進(jìn)行分析。

    2 TaintedFuzz系統(tǒng)實(shí)現(xiàn)及實(shí)驗(yàn)結(jié)果

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

    TaintedFuzz原型系統(tǒng)基于二進(jìn)制代碼分析平臺(tái)Bitblaze[11]的TEMU[12]動(dòng)態(tài)污點(diǎn)分析組件實(shí)現(xiàn)。TEMU是一個(gè)基于QEMU虛擬化技術(shù)開發(fā)的全系統(tǒng)動(dòng)態(tài)二進(jìn)制污點(diǎn)分析平臺(tái),在TEMU中可以運(yùn)行操作系統(tǒng)及應(yīng)用程序,并通過相應(yīng)接口完成對(duì)相關(guān)二進(jìn)制代碼執(zhí)行的細(xì)粒度監(jiān)控與分析。TEMU架構(gòu)如圖6所示,其中語義提取器用于提取仿真系統(tǒng)的操作系統(tǒng)級(jí)語義信息,包括進(jìn)程、線程、模塊及符號(hào)信息;動(dòng)態(tài)污點(diǎn)分析引擎采用影子內(nèi)存技術(shù)實(shí)現(xiàn)對(duì)物理內(nèi)存、CPU寄存器、磁盤及網(wǎng)絡(luò)接口緩沖區(qū)數(shù)據(jù)的污點(diǎn)標(biāo)記及傳播;同時(shí)用戶還可以自定義插件,以擴(kuò)展TEMU功能。TaintedFuzz通過編寫命令行污點(diǎn)標(biāo)記模塊、文件污點(diǎn)標(biāo)記模塊、執(zhí)行上下文記錄模塊、敏感函數(shù)在線分析插件,實(shí)現(xiàn)針對(duì)二進(jìn)制程序的執(zhí)行跡及運(yùn)行時(shí)信息的維護(hù)與記錄。

    TaintedFuzz模糊測(cè)試引擎基于模糊測(cè)試框架antiparser實(shí)現(xiàn)。antiparser是一個(gè)由python開發(fā)的跨平臺(tái)模糊測(cè)試框架,主要用于針對(duì)不同數(shù)據(jù)類型實(shí)現(xiàn)畸形測(cè)試用例的生成[2]。TaintedFuzz擴(kuò)展了antiparser數(shù)據(jù)的生成方式,以提高生成數(shù)據(jù)的有效性;并在antiparser的基礎(chǔ)上實(shí)現(xiàn)了針對(duì)命令行輸入型程序與文件輸入型程序的模糊測(cè)試引擎,可以完成對(duì)二進(jìn)制程序執(zhí)行的監(jiān)控及異常捕獲。TaintedFuzz模糊測(cè)試引擎的測(cè)試及異常捕獲模塊基于調(diào)試器技術(shù)實(shí)現(xiàn),通過集成輕量級(jí)調(diào)試器pydbg[2]完成對(duì)異常的捕獲及對(duì)異常發(fā)生時(shí)現(xiàn)場(chǎng)環(huán)境的記錄。

    2.2 實(shí)驗(yàn)結(jié)果

    實(shí)驗(yàn)針對(duì)未知參數(shù)類型的模塊函數(shù)和典型安全敏感操作的導(dǎo)向型模糊測(cè)試,分別選取兩個(gè)不同的目標(biāo)程序進(jìn)行測(cè)試。針對(duì)模塊函數(shù)的測(cè)試程序代碼片段如下:

    Test Code 1:

    1:char * get_Data(char *arg_[], int len){

    2: char dest[10];

    3: memset(dest, 0, sizeof(dest));

    4: char * a = NULL;

    5: if (len > 0){

    6: strcpy(dest,arg_[2]);

    7: a=dest;

    8: }

    9: return a;

    10:}

    程序從命令行參數(shù)中獲取數(shù)據(jù)字符串a(chǎn)rg_[2],并將其復(fù)制到緩沖區(qū)當(dāng)中;然而在復(fù)制時(shí)未對(duì)參數(shù)的長度進(jìn)行合理的驗(yàn)證(第5行),如果命令行第二個(gè)參數(shù)長度大于10則會(huì)造成嚴(yán)重的緩沖區(qū)溢出。程序中雖然顯式調(diào)用了安全敏感函數(shù)strcpy,但是由于編譯器的優(yōu)化,使strcpy被內(nèi)聯(lián)到當(dāng)前模塊中,無法通過靜態(tài)分析的方式獲得這些安全敏感函數(shù)的調(diào)用點(diǎn)。雖然現(xiàn)有一些可以通過函數(shù)摘要匹配的安全敏感函數(shù)識(shí)別的算法[13],但由于編譯器的多樣化造成內(nèi)聯(lián)代碼的多樣化,因此這些算法仍無法完全解決安全敏感函數(shù)的識(shí)別問題。TaintedFuzz通過學(xué)習(xí)目標(biāo)代碼對(duì)輸入的解析過程,從而完成對(duì)命令行參數(shù)的輸入域劃分,劃分之后的輸入格式如圖7所示(輸入命令行參數(shù)為“soft_metric.exe 8 AAAAAAAA”):

    同時(shí),通過分析執(zhí)行跡信息得知,get_Data函數(shù)的污點(diǎn)集合信息為(15,17,18,19,20,21,22,23,24)的非連續(xù)字節(jié)數(shù)據(jù)(考慮到目標(biāo)程序中用戶自定義函數(shù)較少,因此跳過函數(shù)循環(huán)復(fù)雜度排序),那么根據(jù)輸入劃分的結(jié)果,判定偏移量為15的參數(shù)“8”和偏移量為(17,18,19,20,21,22,23,24)的參數(shù)“AAAAAAAA”分別屬于不同的輸入域;然后通過導(dǎo)向型模糊測(cè)試引擎分別對(duì)偏移量為15的單字節(jié)進(jìn)行深度變異和偏移量為(17, 18,19,20,21,22,23,24)的連續(xù)字節(jié)進(jìn)行字符串變長變異;最終模糊測(cè)試引擎成功觸發(fā)該漏洞。

    針對(duì)典型安全敏感操作造成的安全漏洞,實(shí)驗(yàn)選取VUPlayer 2.49的.m3u緩沖區(qū)溢出漏洞,該漏洞在EDB數(shù)據(jù)庫的編號(hào)為EDB?ID:30336。VUPlayer是Windows平臺(tái)下一款功能強(qiáng)大的媒體播放工具,支持多種媒體格式。該軟件2.49版本在解析.m3u的文件名時(shí)存在嚴(yán)重的緩沖區(qū)溢出漏洞。

    TaintedFuzz隨機(jī)選取簡單的樣本.m3u文件,如圖8所示,文件僅包含一條播放記錄。通過對(duì)VUplayer解析樣本.m3u文件的過程進(jìn)行動(dòng)態(tài)污點(diǎn)分析及在線安全敏感函數(shù)分析后,獲得安全敏感函數(shù)調(diào)用記錄如下:

    CALL lstrcpyA() at 0x00453313: (Dest: 0x0012eb4c, Scr: 0x00ba93e4)

    PID: 1700, MODULE: VUPlayer.exe, TID: 1696, RETADDR: 0x00453319.

    TID: 1696, StackBase: 0x00129000, StackLimit: 0x00130000.

    Writing to current stack.

    Taint(0~10)

    VUPlayer在0x00453313處通過調(diào)用lstrcpyA函數(shù)將當(dāng)前.m3u文件的文件名(第0~10字節(jié))拷入到當(dāng)前的線程棧當(dāng)中(0x0012eb4c);在對(duì)危險(xiǎn)函數(shù)lstrcpyA的參數(shù)進(jìn)行分析后,TaintedFuzz將測(cè)試點(diǎn)(第0~10字節(jié))送入到導(dǎo)向性模糊測(cè)試引擎當(dāng)中作為字符串進(jìn)行變異,模糊測(cè)試引擎成功觸發(fā)該漏洞。異常發(fā)生時(shí)上下文環(huán)境如圖9所示。

    3 結(jié) 語

    本文提出了一種基于動(dòng)態(tài)污點(diǎn)分析的二進(jìn)制程序?qū)蛐阅:郎y(cè)試技術(shù)。該技術(shù)可以根據(jù)動(dòng)態(tài)污點(diǎn)分析的結(jié)果,對(duì)安全敏感相關(guān)字段進(jìn)行有效地廣度或深度變異。同時(shí),針對(duì)未知參數(shù)類型函數(shù),特別是內(nèi)聯(lián)了安全敏感操作的模塊函數(shù),提出了一種基于輸入分域與循環(huán)復(fù)雜度的測(cè)試用例生成方法,該方法利用基于執(zhí)行跡的輸入分域方法。首先通過對(duì)目標(biāo)程序處理正常樣本過程的學(xué)習(xí),完成輸入字段的劃分;之后,為了提高漏洞發(fā)現(xiàn)的效率,根據(jù)模塊函數(shù)的循環(huán)復(fù)雜度對(duì)模塊函數(shù)進(jìn)行排序;選擇復(fù)雜度較高的模塊函數(shù),對(duì)其根據(jù)輸入分域結(jié)果進(jìn)行測(cè)試用例生成。該方法可以針對(duì)復(fù)雜模塊函數(shù)生成有效的測(cè)試用例,提高了模糊測(cè)試的效率。實(shí)現(xiàn)了基于動(dòng)態(tài)污點(diǎn)分析的二進(jìn)制模糊測(cè)試的原型系統(tǒng)TaintedFuzz,實(shí)驗(yàn)證明該系統(tǒng)針對(duì)二進(jìn)制目標(biāo)程序中的模塊函數(shù)和典型安全敏感操作可以進(jìn)行導(dǎo)向性模糊測(cè)試,能夠?qū)ΧM(jìn)制程序中存在的典型安全漏洞進(jìn)行高效地發(fā)掘。

    參考文獻(xiàn)

    [1] 文偉平,吳興麗,蔣建春.軟件安全漏洞挖掘的研究思路及發(fā)展趨勢(shì)[J].信息網(wǎng)絡(luò)安全,2009 (10):78?80.

    [2] SUTTON Michael.模糊測(cè)試:強(qiáng)制性安全漏洞發(fā)掘[M].北京:機(jī)械工業(yè)出版社,2009.

    [3] 王鐵磊.面向二進(jìn)制程序的漏洞挖掘關(guān)鍵技術(shù)研究[D].北京:北京大學(xué),2011.

    [4] SCHWARTZ E J, AVGERINOS T, BRUMLEY D. All you ever wanted to know about dynamic taint analysis and forward symbolic execution (but might have been afraid to ask) [C]// 2010 IEEE Symposium on Security and Privacy (SP). [S.l.]: IEEE, 2010: 317?331.

    [5] LIN Z, JIANG X, XU D, et al. Automatic protocol format reverse engineering through context?aware monitored execution [J]. NDSS, 2008, 8: 1?15.

    [6] LIN Z, ZHANG X, XU D. Reverse engineering input syntactic structure from program execution and its applications [J]. IEEE Transactions on Software Engineering, 2010, 36(5): 688?703.

    [7] CABALLERO J, YIN H, LIANG Z, et al. Polyglot: Automatic extraction of protocol message format using dynamic binary analysis [C]// Proceedings of the 14th ACM conference on Computer and Communications Security. [S.l.]: ACM, 2007: 317?329.

    [8] KANER C, BOND W P. Software engineering metrics: What do they measure and how do we know [J]. Methodology, 2004, 8: 6?18.

    [9] MCCABE T J. A complexity measure [J]. IEEE Transactions on Software Engineering, 1976 (4): 308?320.

    [10] HATTON L. The role of empiricism in improving the reliability of future software [J/OL]. [2012?08?29]. http://www.computer.org/csdl/.

    [11] SONG D, BRUMLEY D, YIN H, et al. BitBlaze: A new approach to computer security via binary analysis [J]. Information Systems Security: Lecture Notes in Computer Science, 2008, 5352: 1?25.

    [12] YIN H, SONG D. Temu: Binary code analysis via whole?system layered annotative execution, UCB/EECS?2010?3 [R]. Berkeley: EECS Department, University of California, 2010.

    針對(duì)典型安全敏感操作造成的安全漏洞,實(shí)驗(yàn)選取VUPlayer 2.49的.m3u緩沖區(qū)溢出漏洞,該漏洞在EDB數(shù)據(jù)庫的編號(hào)為EDB?ID:30336。VUPlayer是Windows平臺(tái)下一款功能強(qiáng)大的媒體播放工具,支持多種媒體格式。該軟件2.49版本在解析.m3u的文件名時(shí)存在嚴(yán)重的緩沖區(qū)溢出漏洞。

    TaintedFuzz隨機(jī)選取簡單的樣本.m3u文件,如圖8所示,文件僅包含一條播放記錄。通過對(duì)VUplayer解析樣本.m3u文件的過程進(jìn)行動(dòng)態(tài)污點(diǎn)分析及在線安全敏感函數(shù)分析后,獲得安全敏感函數(shù)調(diào)用記錄如下:

    CALL lstrcpyA() at 0x00453313: (Dest: 0x0012eb4c, Scr: 0x00ba93e4)

    PID: 1700, MODULE: VUPlayer.exe, TID: 1696, RETADDR: 0x00453319.

    TID: 1696, StackBase: 0x00129000, StackLimit: 0x00130000.

    Writing to current stack.

    Taint(0~10)

    VUPlayer在0x00453313處通過調(diào)用lstrcpyA函數(shù)將當(dāng)前.m3u文件的文件名(第0~10字節(jié))拷入到當(dāng)前的線程棧當(dāng)中(0x0012eb4c);在對(duì)危險(xiǎn)函數(shù)lstrcpyA的參數(shù)進(jìn)行分析后,TaintedFuzz將測(cè)試點(diǎn)(第0~10字節(jié))送入到導(dǎo)向性模糊測(cè)試引擎當(dāng)中作為字符串進(jìn)行變異,模糊測(cè)試引擎成功觸發(fā)該漏洞。異常發(fā)生時(shí)上下文環(huán)境如圖9所示。

    3 結(jié) 語

    本文提出了一種基于動(dòng)態(tài)污點(diǎn)分析的二進(jìn)制程序?qū)蛐阅:郎y(cè)試技術(shù)。該技術(shù)可以根據(jù)動(dòng)態(tài)污點(diǎn)分析的結(jié)果,對(duì)安全敏感相關(guān)字段進(jìn)行有效地廣度或深度變異。同時(shí),針對(duì)未知參數(shù)類型函數(shù),特別是內(nèi)聯(lián)了安全敏感操作的模塊函數(shù),提出了一種基于輸入分域與循環(huán)復(fù)雜度的測(cè)試用例生成方法,該方法利用基于執(zhí)行跡的輸入分域方法。首先通過對(duì)目標(biāo)程序處理正常樣本過程的學(xué)習(xí),完成輸入字段的劃分;之后,為了提高漏洞發(fā)現(xiàn)的效率,根據(jù)模塊函數(shù)的循環(huán)復(fù)雜度對(duì)模塊函數(shù)進(jìn)行排序;選擇復(fù)雜度較高的模塊函數(shù),對(duì)其根據(jù)輸入分域結(jié)果進(jìn)行測(cè)試用例生成。該方法可以針對(duì)復(fù)雜模塊函數(shù)生成有效的測(cè)試用例,提高了模糊測(cè)試的效率。實(shí)現(xiàn)了基于動(dòng)態(tài)污點(diǎn)分析的二進(jìn)制模糊測(cè)試的原型系統(tǒng)TaintedFuzz,實(shí)驗(yàn)證明該系統(tǒng)針對(duì)二進(jìn)制目標(biāo)程序中的模塊函數(shù)和典型安全敏感操作可以進(jìn)行導(dǎo)向性模糊測(cè)試,能夠?qū)ΧM(jìn)制程序中存在的典型安全漏洞進(jìn)行高效地發(fā)掘。

    參考文獻(xiàn)

    [1] 文偉平,吳興麗,蔣建春.軟件安全漏洞挖掘的研究思路及發(fā)展趨勢(shì)[J].信息網(wǎng)絡(luò)安全,2009 (10):78?80.

    [2] SUTTON Michael.模糊測(cè)試:強(qiáng)制性安全漏洞發(fā)掘[M].北京:機(jī)械工業(yè)出版社,2009.

    [3] 王鐵磊.面向二進(jìn)制程序的漏洞挖掘關(guān)鍵技術(shù)研究[D].北京:北京大學(xué),2011.

    [4] SCHWARTZ E J, AVGERINOS T, BRUMLEY D. All you ever wanted to know about dynamic taint analysis and forward symbolic execution (but might have been afraid to ask) [C]// 2010 IEEE Symposium on Security and Privacy (SP). [S.l.]: IEEE, 2010: 317?331.

    [5] LIN Z, JIANG X, XU D, et al. Automatic protocol format reverse engineering through context?aware monitored execution [J]. NDSS, 2008, 8: 1?15.

    [6] LIN Z, ZHANG X, XU D. Reverse engineering input syntactic structure from program execution and its applications [J]. IEEE Transactions on Software Engineering, 2010, 36(5): 688?703.

    [7] CABALLERO J, YIN H, LIANG Z, et al. Polyglot: Automatic extraction of protocol message format using dynamic binary analysis [C]// Proceedings of the 14th ACM conference on Computer and Communications Security. [S.l.]: ACM, 2007: 317?329.

    [8] KANER C, BOND W P. Software engineering metrics: What do they measure and how do we know [J]. Methodology, 2004, 8: 6?18.

    [9] MCCABE T J. A complexity measure [J]. IEEE Transactions on Software Engineering, 1976 (4): 308?320.

    [10] HATTON L. The role of empiricism in improving the reliability of future software [J/OL]. [2012?08?29]. http://www.computer.org/csdl/.

    [11] SONG D, BRUMLEY D, YIN H, et al. BitBlaze: A new approach to computer security via binary analysis [J]. Information Systems Security: Lecture Notes in Computer Science, 2008, 5352: 1?25.

    [12] YIN H, SONG D. Temu: Binary code analysis via whole?system layered annotative execution, UCB/EECS?2010?3 [R]. Berkeley: EECS Department, University of California, 2010.

    針對(duì)典型安全敏感操作造成的安全漏洞,實(shí)驗(yàn)選取VUPlayer 2.49的.m3u緩沖區(qū)溢出漏洞,該漏洞在EDB數(shù)據(jù)庫的編號(hào)為EDB?ID:30336。VUPlayer是Windows平臺(tái)下一款功能強(qiáng)大的媒體播放工具,支持多種媒體格式。該軟件2.49版本在解析.m3u的文件名時(shí)存在嚴(yán)重的緩沖區(qū)溢出漏洞。

    TaintedFuzz隨機(jī)選取簡單的樣本.m3u文件,如圖8所示,文件僅包含一條播放記錄。通過對(duì)VUplayer解析樣本.m3u文件的過程進(jìn)行動(dòng)態(tài)污點(diǎn)分析及在線安全敏感函數(shù)分析后,獲得安全敏感函數(shù)調(diào)用記錄如下:

    CALL lstrcpyA() at 0x00453313: (Dest: 0x0012eb4c, Scr: 0x00ba93e4)

    PID: 1700, MODULE: VUPlayer.exe, TID: 1696, RETADDR: 0x00453319.

    TID: 1696, StackBase: 0x00129000, StackLimit: 0x00130000.

    Writing to current stack.

    Taint(0~10)

    VUPlayer在0x00453313處通過調(diào)用lstrcpyA函數(shù)將當(dāng)前.m3u文件的文件名(第0~10字節(jié))拷入到當(dāng)前的線程棧當(dāng)中(0x0012eb4c);在對(duì)危險(xiǎn)函數(shù)lstrcpyA的參數(shù)進(jìn)行分析后,TaintedFuzz將測(cè)試點(diǎn)(第0~10字節(jié))送入到導(dǎo)向性模糊測(cè)試引擎當(dāng)中作為字符串進(jìn)行變異,模糊測(cè)試引擎成功觸發(fā)該漏洞。異常發(fā)生時(shí)上下文環(huán)境如圖9所示。

    3 結(jié) 語

    本文提出了一種基于動(dòng)態(tài)污點(diǎn)分析的二進(jìn)制程序?qū)蛐阅:郎y(cè)試技術(shù)。該技術(shù)可以根據(jù)動(dòng)態(tài)污點(diǎn)分析的結(jié)果,對(duì)安全敏感相關(guān)字段進(jìn)行有效地廣度或深度變異。同時(shí),針對(duì)未知參數(shù)類型函數(shù),特別是內(nèi)聯(lián)了安全敏感操作的模塊函數(shù),提出了一種基于輸入分域與循環(huán)復(fù)雜度的測(cè)試用例生成方法,該方法利用基于執(zhí)行跡的輸入分域方法。首先通過對(duì)目標(biāo)程序處理正常樣本過程的學(xué)習(xí),完成輸入字段的劃分;之后,為了提高漏洞發(fā)現(xiàn)的效率,根據(jù)模塊函數(shù)的循環(huán)復(fù)雜度對(duì)模塊函數(shù)進(jìn)行排序;選擇復(fù)雜度較高的模塊函數(shù),對(duì)其根據(jù)輸入分域結(jié)果進(jìn)行測(cè)試用例生成。該方法可以針對(duì)復(fù)雜模塊函數(shù)生成有效的測(cè)試用例,提高了模糊測(cè)試的效率。實(shí)現(xiàn)了基于動(dòng)態(tài)污點(diǎn)分析的二進(jìn)制模糊測(cè)試的原型系統(tǒng)TaintedFuzz,實(shí)驗(yàn)證明該系統(tǒng)針對(duì)二進(jìn)制目標(biāo)程序中的模塊函數(shù)和典型安全敏感操作可以進(jìn)行導(dǎo)向性模糊測(cè)試,能夠?qū)ΧM(jìn)制程序中存在的典型安全漏洞進(jìn)行高效地發(fā)掘。

    參考文獻(xiàn)

    [1] 文偉平,吳興麗,蔣建春.軟件安全漏洞挖掘的研究思路及發(fā)展趨勢(shì)[J].信息網(wǎng)絡(luò)安全,2009 (10):78?80.

    [2] SUTTON Michael.模糊測(cè)試:強(qiáng)制性安全漏洞發(fā)掘[M].北京:機(jī)械工業(yè)出版社,2009.

    [3] 王鐵磊.面向二進(jìn)制程序的漏洞挖掘關(guān)鍵技術(shù)研究[D].北京:北京大學(xué),2011.

    [4] SCHWARTZ E J, AVGERINOS T, BRUMLEY D. All you ever wanted to know about dynamic taint analysis and forward symbolic execution (but might have been afraid to ask) [C]// 2010 IEEE Symposium on Security and Privacy (SP). [S.l.]: IEEE, 2010: 317?331.

    [5] LIN Z, JIANG X, XU D, et al. Automatic protocol format reverse engineering through context?aware monitored execution [J]. NDSS, 2008, 8: 1?15.

    [6] LIN Z, ZHANG X, XU D. Reverse engineering input syntactic structure from program execution and its applications [J]. IEEE Transactions on Software Engineering, 2010, 36(5): 688?703.

    [7] CABALLERO J, YIN H, LIANG Z, et al. Polyglot: Automatic extraction of protocol message format using dynamic binary analysis [C]// Proceedings of the 14th ACM conference on Computer and Communications Security. [S.l.]: ACM, 2007: 317?329.

    [8] KANER C, BOND W P. Software engineering metrics: What do they measure and how do we know [J]. Methodology, 2004, 8: 6?18.

    [9] MCCABE T J. A complexity measure [J]. IEEE Transactions on Software Engineering, 1976 (4): 308?320.

    [10] HATTON L. The role of empiricism in improving the reliability of future software [J/OL]. [2012?08?29]. http://www.computer.org/csdl/.

    [11] SONG D, BRUMLEY D, YIN H, et al. BitBlaze: A new approach to computer security via binary analysis [J]. Information Systems Security: Lecture Notes in Computer Science, 2008, 5352: 1?25.

    [12] YIN H, SONG D. Temu: Binary code analysis via whole?system layered annotative execution, UCB/EECS?2010?3 [R]. Berkeley: EECS Department, University of California, 2010.

    猜你喜歡
    安全漏洞
    基于大數(shù)據(jù)技術(shù)的軟件安全漏洞自動(dòng)挖掘方法研究
    信息安全研究(2021年6期)2021-06-04 06:55:38
    計(jì)算機(jī)軟件中安全漏洞檢測(cè)技術(shù)的運(yùn)用初探
    安全漏洞國際披露政策研究
    基于模糊測(cè)試技術(shù)的軟件安全漏洞挖掘方法研究
    智能設(shè)備安全漏洞知多少
    安全漏洞太大亞馬遜、沃爾瑪和Target緊急下架這種玩具
    玩具世界(2018年6期)2018-08-31 02:36:26
    安全漏洞檢測(cè)技術(shù)在計(jì)算機(jī)軟件中的應(yīng)用
    基于安全漏洞掃描的校園網(wǎng)告警系統(tǒng)的開發(fā)與設(shè)計(jì)
    小洞不補(bǔ) 大洞吃苦安全漏洞你有嗎?
    欧美人与善性xxx| 久久午夜福利片| 一区二区三区激情视频| 久久av网站| 国产成人精品久久二区二区91 | 国产男人的电影天堂91| 国产在视频线精品| 在线观看人妻少妇| 久久人妻熟女aⅴ| av福利片在线| 午夜免费鲁丝| 亚洲国产成人一精品久久久| 国产欧美亚洲国产| 中文欧美无线码| 男女国产视频网站| 韩国av在线不卡| 人妻 亚洲 视频| 满18在线观看网站| 亚洲欧洲日产国产| 亚洲欧美一区二区三区国产| 国产精品国产av在线观看| 久久人妻熟女aⅴ| av免费在线看不卡| av电影中文网址| 国产深夜福利视频在线观看| 国产精品.久久久| 制服诱惑二区| 国产av国产精品国产| 亚洲精品中文字幕在线视频| 黄色配什么色好看| 国产麻豆69| 亚洲,一卡二卡三卡| 热re99久久精品国产66热6| 免费看不卡的av| 一级,二级,三级黄色视频| 亚洲精品国产一区二区精华液| videossex国产| 欧美成人精品欧美一级黄| 国产av一区二区精品久久| 交换朋友夫妻互换小说| 国产一区亚洲一区在线观看| 国产老妇伦熟女老妇高清| 国产日韩欧美在线精品| 久久免费观看电影| 黑人欧美特级aaaaaa片| 秋霞在线观看毛片| 精品人妻熟女毛片av久久网站| 免费高清在线观看视频在线观看| xxxhd国产人妻xxx| 久久精品国产亚洲av天美| 国产成人一区二区在线| 免费女性裸体啪啪无遮挡网站| freevideosex欧美| 久久久久精品久久久久真实原创| 日韩大片免费观看网站| 亚洲 欧美一区二区三区| 三级国产精品片| 精品人妻在线不人妻| 亚洲成人av在线免费| 午夜av观看不卡| 国产精品欧美亚洲77777| 不卡av一区二区三区| 成年av动漫网址| 老汉色av国产亚洲站长工具| 国产精品国产三级专区第一集| 婷婷色综合大香蕉| 青春草亚洲视频在线观看| 午夜福利影视在线免费观看| 蜜桃国产av成人99| 一级爰片在线观看| 国产成人午夜福利电影在线观看| 亚洲欧美精品自产自拍| 99香蕉大伊视频| 亚洲国产精品一区三区| 国产麻豆69| 国产一区二区在线观看av| 午夜激情久久久久久久| 观看美女的网站| av不卡在线播放| 欧美成人午夜精品| 18禁动态无遮挡网站| 日本欧美视频一区| 国产精品不卡视频一区二区| 丝袜美腿诱惑在线| 只有这里有精品99| 最黄视频免费看| 日韩中文字幕视频在线看片| 亚洲精品久久午夜乱码| 人妻少妇偷人精品九色| 丝瓜视频免费看黄片| 在线观看免费视频网站a站| 看十八女毛片水多多多| 亚洲一码二码三码区别大吗| 精品国产乱码久久久久久小说| 亚洲av福利一区| 日日爽夜夜爽网站| 黄网站色视频无遮挡免费观看| 天天躁狠狠躁夜夜躁狠狠躁| 一区福利在线观看| 亚洲精品日韩在线中文字幕| 91在线精品国自产拍蜜月| 欧美成人精品欧美一级黄| 岛国毛片在线播放| 国产男人的电影天堂91| 免费看av在线观看网站| 在线天堂最新版资源| 99热网站在线观看| 国产片特级美女逼逼视频| 午夜免费观看性视频| 丝袜人妻中文字幕| 亚洲成人手机| 久久婷婷青草| 波多野结衣一区麻豆| av卡一久久| 精品亚洲成a人片在线观看| 99精国产麻豆久久婷婷| av一本久久久久| 韩国高清视频一区二区三区| 欧美日韩综合久久久久久| 一本色道久久久久久精品综合| 国产片特级美女逼逼视频| 另类亚洲欧美激情| 日韩不卡一区二区三区视频在线| av电影中文网址| 国产淫语在线视频| 国产精品无大码| 国产1区2区3区精品| 欧美成人午夜免费资源| 高清黄色对白视频在线免费看| 国产片内射在线| 婷婷色av中文字幕| 日本免费在线观看一区| 黑人猛操日本美女一级片| 热re99久久精品国产66热6| 国产一区二区激情短视频 | 韩国精品一区二区三区| 免费观看av网站的网址| 丰满乱子伦码专区| 麻豆乱淫一区二区| 亚洲精品美女久久av网站| 欧美日韩一级在线毛片| 中文乱码字字幕精品一区二区三区| 久久毛片免费看一区二区三区| 91国产中文字幕| 在线观看美女被高潮喷水网站| 亚洲美女搞黄在线观看| 亚洲精品自拍成人| 丝袜美足系列| 蜜桃在线观看..| av福利片在线| 亚洲国产精品成人久久小说| 看免费成人av毛片| 免费不卡的大黄色大毛片视频在线观看| a 毛片基地| 深夜精品福利| 日韩中文字幕视频在线看片| 亚洲成人一二三区av| 黑丝袜美女国产一区| 啦啦啦在线观看免费高清www| 久久精品夜色国产| 亚洲av电影在线进入| 国产成人免费观看mmmm| 亚洲三区欧美一区| 免费播放大片免费观看视频在线观看| 少妇猛男粗大的猛烈进出视频| 在线观看人妻少妇| 18在线观看网站| 高清不卡的av网站| 久热这里只有精品99| 如日韩欧美国产精品一区二区三区| 毛片一级片免费看久久久久| 欧美变态另类bdsm刘玥| 久久这里只有精品19| www日本在线高清视频| 1024香蕉在线观看| 可以免费在线观看a视频的电影网站 | 妹子高潮喷水视频| 天堂中文最新版在线下载| 制服人妻中文乱码| 波多野结衣av一区二区av| 91午夜精品亚洲一区二区三区| 日日爽夜夜爽网站| 欧美变态另类bdsm刘玥| 日韩大片免费观看网站| 国产精品蜜桃在线观看| 欧美精品一区二区大全| 中文字幕av电影在线播放| 午夜福利视频在线观看免费| 波多野结衣一区麻豆| 亚洲欧美清纯卡通| 大香蕉久久网| 亚洲欧洲精品一区二区精品久久久 | 亚洲欧美精品综合一区二区三区 | 中文字幕最新亚洲高清| 少妇精品久久久久久久| 婷婷色综合大香蕉| 一二三四在线观看免费中文在| 黄色配什么色好看| 国产精品三级大全| 久久久国产欧美日韩av| 免费观看a级毛片全部| 免费在线观看视频国产中文字幕亚洲 | 色吧在线观看| 丰满饥渴人妻一区二区三| 色网站视频免费| 18在线观看网站| 精品久久蜜臀av无| 国产欧美日韩一区二区三区在线| 国产免费福利视频在线观看| 91精品国产国语对白视频| 精品国产一区二区三区四区第35| 久久久久精品久久久久真实原创| 麻豆精品久久久久久蜜桃| 色网站视频免费| 国产高清国产精品国产三级| 久久久久久久亚洲中文字幕| 视频区图区小说| 欧美日韩精品网址| 国产有黄有色有爽视频| 久久99热这里只频精品6学生| 免费少妇av软件| 国产精品无大码| 日本欧美国产在线视频| 免费高清在线观看日韩| 丰满迷人的少妇在线观看| 国产日韩欧美亚洲二区| 99香蕉大伊视频| 久久久久精品性色| 国产av精品麻豆| 久久午夜综合久久蜜桃| 男女无遮挡免费网站观看| 观看av在线不卡| a级毛片黄视频| 成人免费观看视频高清| 在线观看美女被高潮喷水网站| 一区二区av电影网| 妹子高潮喷水视频| 视频在线观看一区二区三区| 欧美 亚洲 国产 日韩一| 国产不卡av网站在线观看| 亚洲欧美成人综合另类久久久| 午夜激情av网站| 国产成人精品在线电影| 最近中文字幕高清免费大全6| 亚洲国产看品久久| 七月丁香在线播放| 香蕉精品网在线| 欧美精品一区二区大全| av不卡在线播放| 岛国毛片在线播放| 人人澡人人妻人| 国产色婷婷99| 一本—道久久a久久精品蜜桃钙片| 建设人人有责人人尽责人人享有的| 欧美激情高清一区二区三区 | 飞空精品影院首页| 欧美精品人与动牲交sv欧美| 欧美 亚洲 国产 日韩一| 在线天堂中文资源库| 丰满乱子伦码专区| 老女人水多毛片| 日韩中字成人| 妹子高潮喷水视频| 国产精品 国内视频| av电影中文网址| 国产欧美亚洲国产| 天美传媒精品一区二区| 日韩精品免费视频一区二区三区| 国产麻豆69| 国产无遮挡羞羞视频在线观看| 亚洲av日韩在线播放| 国产成人a∨麻豆精品| 日韩在线高清观看一区二区三区| 欧美中文综合在线视频| 久久国产精品男人的天堂亚洲| 26uuu在线亚洲综合色| 亚洲精品第二区| 亚洲欧美一区二区三区黑人 | 人成视频在线观看免费观看| 夜夜骑夜夜射夜夜干| 久久鲁丝午夜福利片| √禁漫天堂资源中文www| 久久精品国产鲁丝片午夜精品| 久久99精品国语久久久| 侵犯人妻中文字幕一二三四区| 精品国产乱码久久久久久男人| 啦啦啦在线免费观看视频4| 欧美老熟妇乱子伦牲交| 欧美另类一区| 午夜免费观看性视频| av免费在线看不卡| 伊人久久国产一区二区| av福利片在线| 中文字幕亚洲精品专区| 日本色播在线视频| 超碰97精品在线观看| 麻豆av在线久日| 久久国内精品自在自线图片| 人体艺术视频欧美日本| 国产免费一区二区三区四区乱码| 90打野战视频偷拍视频| 国产成人免费无遮挡视频| 亚洲,欧美精品.| 日本猛色少妇xxxxx猛交久久| 国产野战对白在线观看| 美女国产视频在线观看| 亚洲精品一区蜜桃| 搡女人真爽免费视频火全软件| 国产精品国产三级国产专区5o| 男的添女的下面高潮视频| 亚洲欧美清纯卡通| 你懂的网址亚洲精品在线观看| 免费观看无遮挡的男女| 岛国毛片在线播放| 久久 成人 亚洲| 中文字幕人妻丝袜一区二区 | 青春草国产在线视频| 久久久久久久久久久久大奶| 国产片特级美女逼逼视频| 一级毛片黄色毛片免费观看视频| 日韩免费高清中文字幕av| 国产免费现黄频在线看| 久久97久久精品| 欧美黄色片欧美黄色片| 黑人欧美特级aaaaaa片| 高清视频免费观看一区二区| 在线观看美女被高潮喷水网站| 久久久欧美国产精品| 亚洲精品国产一区二区精华液| 少妇精品久久久久久久| 99久久中文字幕三级久久日本| 天天躁夜夜躁狠狠躁躁| 成人国产麻豆网| 黄色 视频免费看| 久久99蜜桃精品久久| 少妇 在线观看| 人成视频在线观看免费观看| 欧美精品亚洲一区二区| 91午夜精品亚洲一区二区三区| av女优亚洲男人天堂| 大话2 男鬼变身卡| 成年人午夜在线观看视频| 永久网站在线| 五月天丁香电影| 日本免费在线观看一区| 不卡av一区二区三区| 中文字幕人妻丝袜制服| 亚洲av免费高清在线观看| 国产熟女欧美一区二区| 超碰成人久久| 纵有疾风起免费观看全集完整版| 欧美日韩精品网址| 亚洲av中文av极速乱| 欧美日韩av久久| 边亲边吃奶的免费视频| 97人妻天天添夜夜摸| 伊人亚洲综合成人网| a级毛片黄视频| 男女下面插进去视频免费观看| 国产精品嫩草影院av在线观看| 在线天堂最新版资源| 午夜福利影视在线免费观看| 寂寞人妻少妇视频99o| 日本欧美国产在线视频| 亚洲精品aⅴ在线观看| www日本在线高清视频| 国产成人精品久久久久久| 最近手机中文字幕大全| 最近最新中文字幕大全免费视频 | 精品少妇内射三级| 亚洲av电影在线进入| 热re99久久国产66热| 国产成人精品在线电影| 亚洲欧美清纯卡通| 国产成人精品无人区| 国产老妇伦熟女老妇高清| 国产成人精品久久二区二区91 | 蜜桃国产av成人99| 少妇被粗大猛烈的视频| 国产深夜福利视频在线观看| 最近最新中文字幕免费大全7| 男女午夜视频在线观看| 可以免费在线观看a视频的电影网站 | 国产精品不卡视频一区二区| 日韩成人av中文字幕在线观看| 人妻一区二区av| 人人澡人人妻人| 久久精品国产亚洲av涩爱| 久久久久久久精品精品| 美女高潮到喷水免费观看| 国产成人a∨麻豆精品| 国产成人精品在线电影| 国产精品久久久久成人av| av.在线天堂| 国产精品嫩草影院av在线观看| 午夜福利网站1000一区二区三区| 亚洲欧美日韩另类电影网站| 男女啪啪激烈高潮av片| 日韩中文字幕欧美一区二区 | 母亲3免费完整高清在线观看 | 中文字幕另类日韩欧美亚洲嫩草| 中文乱码字字幕精品一区二区三区| 交换朋友夫妻互换小说| 日韩一区二区三区影片| 亚洲色图 男人天堂 中文字幕| 女的被弄到高潮叫床怎么办| 精品国产一区二区久久| 亚洲欧美色中文字幕在线| 亚洲av福利一区| 午夜福利乱码中文字幕| 亚洲情色 制服丝袜| 欧美+日韩+精品| av在线播放精品| 成人亚洲精品一区在线观看| 一区二区三区乱码不卡18| 黄频高清免费视频| 一二三四在线观看免费中文在| 欧美亚洲 丝袜 人妻 在线| 国产无遮挡羞羞视频在线观看| 99香蕉大伊视频| 老熟女久久久| 亚洲国产av新网站| 亚洲欧美色中文字幕在线| 日韩av免费高清视频| 久久精品aⅴ一区二区三区四区 | 午夜影院在线不卡| 男女国产视频网站| 国产在线视频一区二区| 天天躁日日躁夜夜躁夜夜| 国产免费福利视频在线观看| 亚洲精品第二区| 亚洲美女黄色视频免费看| 晚上一个人看的免费电影| 菩萨蛮人人尽说江南好唐韦庄| 少妇精品久久久久久久| 伦理电影免费视频| 欧美日本中文国产一区发布| 午夜日韩欧美国产| 男女下面插进去视频免费观看| 97精品久久久久久久久久精品| 久久精品亚洲av国产电影网| 自线自在国产av| 一本色道久久久久久精品综合| 日韩精品免费视频一区二区三区| 黑人欧美特级aaaaaa片| 亚洲成色77777| 超碰成人久久| 国产精品国产三级专区第一集| 国产精品蜜桃在线观看| 最近最新中文字幕免费大全7| 久久精品熟女亚洲av麻豆精品| 国产片内射在线| 精品少妇黑人巨大在线播放| 亚洲国产欧美网| 在线看a的网站| 少妇人妻精品综合一区二区| 五月伊人婷婷丁香| 波多野结衣av一区二区av| 色视频在线一区二区三区| 18+在线观看网站| 日韩成人av中文字幕在线观看| 午夜福利在线免费观看网站| 2021少妇久久久久久久久久久| 欧美精品人与动牲交sv欧美| 精品国产超薄肉色丝袜足j| av福利片在线| 天天影视国产精品| 美女xxoo啪啪120秒动态图| 国产一区二区三区综合在线观看| av电影中文网址| 男女啪啪激烈高潮av片| 中文字幕亚洲精品专区| 日韩中文字幕视频在线看片| 欧美激情 高清一区二区三区| 中文字幕av电影在线播放| 肉色欧美久久久久久久蜜桃| 麻豆乱淫一区二区| 国产精品秋霞免费鲁丝片| 国产色婷婷99| 日本av手机在线免费观看| 久久国产精品大桥未久av| 亚洲欧美中文字幕日韩二区| 国产一区二区三区av在线| 老熟女久久久| 黑人猛操日本美女一级片| 国产欧美亚洲国产| 老司机亚洲免费影院| 亚洲av国产av综合av卡| 久久人人97超碰香蕉20202| 成年女人毛片免费观看观看9 | 99热全是精品| 精品久久久久久电影网| 人妻 亚洲 视频| 啦啦啦中文免费视频观看日本| 精品国产乱码久久久久久男人| 少妇 在线观看| 最新中文字幕久久久久| 精品国产一区二区三区四区第35| 午夜免费鲁丝| 免费女性裸体啪啪无遮挡网站| 欧美成人午夜精品| 日本vs欧美在线观看视频| 日韩欧美一区视频在线观看| 国产av国产精品国产| 永久网站在线| 999精品在线视频| 亚洲成国产人片在线观看| 免费看不卡的av| 男男h啪啪无遮挡| 久久99一区二区三区| 婷婷色av中文字幕| 国产一区亚洲一区在线观看| 国产精品二区激情视频| 春色校园在线视频观看| 久久99蜜桃精品久久| 丁香六月天网| 国产精品女同一区二区软件| 欧美日韩综合久久久久久| 在线免费观看不下载黄p国产| 欧美日韩一级在线毛片| 成年女人在线观看亚洲视频| 免费观看无遮挡的男女| 男的添女的下面高潮视频| 中文字幕制服av| 亚洲国产欧美在线一区| 国产探花极品一区二区| 国产精品久久久久成人av| 街头女战士在线观看网站| 91成人精品电影| 成人漫画全彩无遮挡| 亚洲成人av在线免费| 少妇熟女欧美另类| 日韩一卡2卡3卡4卡2021年| 久久这里有精品视频免费| 高清不卡的av网站| 母亲3免费完整高清在线观看 | 亚洲美女黄色视频免费看| 日本91视频免费播放| 久久久久人妻精品一区果冻| 国产av精品麻豆| 一区二区三区激情视频| 一本—道久久a久久精品蜜桃钙片| 尾随美女入室| 免费在线观看视频国产中文字幕亚洲 | 亚洲精品日本国产第一区| av免费观看日本| 亚洲三级黄色毛片| 91精品国产国语对白视频| 日韩人妻精品一区2区三区| 丝瓜视频免费看黄片| 多毛熟女@视频| av有码第一页| 少妇 在线观看| 久久久久久伊人网av| 久久av网站| 不卡av一区二区三区| av免费观看日本| 精品视频人人做人人爽| 久久国产亚洲av麻豆专区| 日韩av不卡免费在线播放| 精品亚洲乱码少妇综合久久| 亚洲国产精品一区三区| 亚洲欧美精品自产自拍| 久久久久久久大尺度免费视频| 欧美精品国产亚洲| 亚洲中文av在线| 欧美日韩精品网址| 精品一区二区免费观看| 国产成人一区二区在线| 五月天丁香电影| 99热国产这里只有精品6| 赤兔流量卡办理| 性色avwww在线观看| 青草久久国产| 久久狼人影院| 亚洲国产欧美网| 一区二区三区精品91| 少妇精品久久久久久久| 一区二区三区四区激情视频| 麻豆av在线久日| 在线观看人妻少妇| 日本爱情动作片www.在线观看| 伊人亚洲综合成人网| 伊人久久国产一区二区| 国产成人av激情在线播放| 交换朋友夫妻互换小说| 精品亚洲乱码少妇综合久久| 黄片播放在线免费| 人成视频在线观看免费观看| av线在线观看网站| 亚洲av电影在线观看一区二区三区| 日本-黄色视频高清免费观看| 老汉色∧v一级毛片| 有码 亚洲区| 大陆偷拍与自拍| 在线观看www视频免费| 国产亚洲欧美精品永久| 欧美最新免费一区二区三区| 国产无遮挡羞羞视频在线观看| 国产精品免费大片| 大陆偷拍与自拍| 久热久热在线精品观看| 一级毛片电影观看| 免费观看在线日韩| 18禁动态无遮挡网站| 国产视频首页在线观看| av.在线天堂| 成年av动漫网址| 久久热在线av| 交换朋友夫妻互换小说| 新久久久久国产一级毛片| 久久精品久久精品一区二区三区| 1024视频免费在线观看| 91成人精品电影| 免费观看无遮挡的男女|