999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于定向模糊測試的軟件漏洞挖掘平臺的研究與設(shè)計

2019-01-18 01:11:46錢龍楊萌萌王理

◆錢龍楊萌萌王理

?

基于定向模糊測試的軟件漏洞挖掘平臺的研究與設(shè)計

◆錢 龍1楊萌萌2王 理1

(1.信息工程大學(xué) 河南 450001;2.清華大學(xué) 北京 100000)

軟件安全問題追溯根源是因為安全漏洞的存在。模糊測試作為一種基于缺陷注入的自動化軟件測試技術(shù),與許多其他漏洞挖掘技術(shù)相比,具備更智能更高效的特點,本文研究與設(shè)計的軟件漏洞挖掘平臺,在模糊測試技術(shù)的基礎(chǔ)上進(jìn)行改進(jìn),能夠自動識別目標(biāo)軟件的瓶頸分支,在提高代碼覆蓋率的同時,又加入了測試的定向性,測試結(jié)果表明,改進(jìn)的平臺能夠幫助測試人員對特殊敏感區(qū)域的代碼進(jìn)行定向測試,快速挖掘漏洞。

軟件安全;漏洞挖掘;模糊測試

0 引言

近年來,利用軟件漏洞進(jìn)行的攻擊行為層出不窮,軟件安全作為網(wǎng)絡(luò)空間安全的重要分支,其意義也愈來愈重要。隨著人們對軟件安全問題關(guān)注度的不斷提升,漏洞挖掘逐漸成為安全圈的熱點研究內(nèi)容。其中,模糊測試[1]利用隨機(jī)生成的樣本去挖掘軟件中的漏洞,相比其他漏洞挖掘技術(shù)更簡單,更高效。本文介紹的基于定向模糊測試的軟件漏洞挖掘平臺,在AFL(AmericanFuzzingLop)[2]測試技術(shù)的基礎(chǔ)上進(jìn)行研究并改進(jìn),能夠自動識別目標(biāo)軟件中瓶頸分支,在提高代碼覆蓋率的同時,又加入了測試的定向性,能夠幫助測試人員對特殊敏感區(qū)域的代碼實現(xiàn)定向測試,快速挖掘漏洞。

1 基于定向模糊測試的軟件漏洞挖掘平臺的主要研究內(nèi)容

1.1 研究分析現(xiàn)有模糊測試技術(shù)現(xiàn)狀及不足

基于代碼覆蓋率的模糊測試[3]通過修改具有合法格式的輸入來生成新的測試輸入,該方法很少考慮輸入合法性,由于目標(biāo)程序采用版本號、特殊字節(jié)、校驗和等檢查方式以防止惡意輸入對程序造成破壞,因此在實際測試中,僅有少數(shù)的變異輸入會執(zhí)行程序控制流中更深層的代碼,間接影響了代碼覆蓋率[4]。作為衡量測試效率的一重要指標(biāo),代碼覆蓋率在一定程度上反映目標(biāo)程序代碼執(zhí)行的充分度。AFLfast[5]的研究工作者發(fā)現(xiàn)單純的通過增加測試輸入的數(shù)量來占用更多的計算、時間資源難以保證代碼覆蓋率的提高。Vuzzer[6]提取控制流與數(shù)據(jù)流特征來作為應(yīng)用程序的基本特征,但該方法無法解決程序內(nèi)存在校驗和檢查問題。隨著程序處理的數(shù)據(jù)類型不斷增多,數(shù)據(jù)格式規(guī)范愈加完善,所采用的校驗和算法復(fù)雜度也不斷提高。因而通過程序內(nèi)部的檢測,間接提高模糊測試效率是一項重要挑戰(zhàn)。

1.2 自動識別瓶頸分支技術(shù)

針對如何提高代碼覆蓋率的問題,我們首先定義了目標(biāo)程序控制流中具有特殊字節(jié)、校驗和等檢查功能的執(zhí)行分支為瓶頸分支。為了自動識別瓶頸分支,該平臺在進(jìn)行目標(biāo)程序源碼編譯時,利用程序插樁技術(shù)將覆蓋率信息采集模塊植入被測程序。在測試過程中,該采集模塊將記錄控制流中每條分支被執(zhí)行情況。測試結(jié)束后,瓶頸分支識別模塊利用程序靜態(tài)分析技術(shù),同時結(jié)合運行時分支執(zhí)行記錄結(jié)果,定位瓶頸分支。

1.3 定向模糊測試技術(shù)

該平臺利用距離計算模塊測量控制流中所有分支與瓶頸分支的相對距離,并將距離信息也插入目標(biāo)程序。在定向測試過程中,根據(jù)輸入執(zhí)行路徑上所有分支與瓶頸分支的平均距離,為該輸入動態(tài)分配能量,進(jìn)而調(diào)整該輸入的變異次數(shù),實現(xiàn)針對控制流中瓶頸分支的定向模糊測試。

2 基于定向模糊測試的軟件漏洞挖掘平臺的主要設(shè)計

該平臺主要包含四部分模塊,下面按照測試過程中執(zhí)行順序介紹各模塊。

2.1 覆蓋率信息采集模塊

覆蓋率信息采集模塊主要基于AFL測試技術(shù)上改進(jìn),在進(jìn)行目標(biāo)源碼編譯時,該模塊在程序基本塊中插入分支信息采集指令,實現(xiàn)功能如圖1所示。

(1) cur_loc = ; 為當(dāng)前基本塊分配隨機(jī)值(2) key = XOR(cur_loc ^ prev_loc); 計算當(dāng)前執(zhí)行分支鍵值key(3) shared_mem[key]++; 更新共享內(nèi)存中該分支執(zhí)行位圖(4) prev_loc = cur_loc >> 1; 將cur_loc值右移1位,參與后續(xù)分支鍵值計算

shared_mem數(shù)組存儲在64KB共享內(nèi)存區(qū)域,數(shù)組中的元素代表執(zhí)行分支在測試過程中被執(zhí)行次數(shù)。為了不影響運行時測試效率,數(shù)組將在測試結(jié)束時被一次性記入文件中。

2.2 瓶頸分支定位模塊

瓶頸分支定位模塊基于IDA_Python實現(xiàn),通過靜態(tài)分析獲取程序控制流,同時結(jié)合shared_mem信息,定位瓶頸分支。具體算法如圖2所示。

輸入1:Target_program輸入2:shared_mem(1) CFG(Target_program)->cfg; 獲取程序控制流(2) Get_loc(Target_program)->(loc); 獲取基本塊中隨機(jī)值(3) FOR(BB in cfg); 遍歷控制流中的每個基本塊IF BB have two son BB1,BB2; 判斷基本塊BB是否有兩個子節(jié)點BB1,BB2edge1=XOR((BB_loc>>1),BB1); 計算與兩個子節(jié)點之間分支鍵值edge2=XOR((BB_loc>>1),BB1);IF sharedd_mem[edge1]>>shared_mem[edge2] 分支1執(zhí)行頻率遠(yuǎn)大于or sharedd_mem[edge1]<

2.3 距離度量模塊

距離度量模塊將以瓶頸分支作為目標(biāo),計算控制流中每條分支到目標(biāo)分支的所有路徑的平均距離。在這里我們定義兩條分支E1, E2之間的距離為E1到E2之間的分支個數(shù)。

2.4 定向模糊測試模塊

定向模糊測試模塊將距離信息插入目標(biāo)程序,同時采用AFLGO[7]的逼近思想,利用模擬退火算法根據(jù)測試輸入執(zhí)行路徑情況為其分配能量,具體策略如圖3所示。AFLGO測試目標(biāo)為基本塊,而該平臺性能更佳,測試目標(biāo)為瓶頸分支,同時也可以將若干相鄰分支組合作為測試目標(biāo),極大地通過定向策略提高代碼覆蓋率。

(1) REPEAT(2) input=CHOOSE(isInteresting_queue); 從測試隊列中按順序選取輸入(3) P = ASSIGN_ENERGY(input); 根據(jù)測試輸入執(zhí)行情況為其分配能量P(4) for i from 1 to P; 對測試輸入執(zhí)行P次變異(5) input’=MUTATE(input);(6) if Target_program crashes;(7) ADD input’ to crash_queue;(8) else if isInteresting(input’);(9) ADD seed’s to isInteresting_queue;(10)end if(11) end for

3 基于定向模糊測試的軟件漏洞挖掘平臺的創(chuàng)新點

(1)自動識別瓶頸分支

本平臺在對目標(biāo)程序擁有零知識的前提下,充分把握了瓶頸分支運行時特征,在AFL輕量級插樁基礎(chǔ)上進(jìn)行改進(jìn),在不影響運行時效率的前提下記錄覆蓋率信息,同時利用靜態(tài)分析相結(jié)合的策略自動識別瓶頸分支。

(2)針對瓶頸分支定向模糊測試以提高代碼覆蓋率

基于覆蓋率的模糊測試以能否提高代碼覆蓋率為性能標(biāo)準(zhǔn)。本平臺定位瓶頸分支為待測目標(biāo),并對瓶頸分支及后續(xù)分支實施定向測試,在提高代碼覆蓋率的同時減少無關(guān)分支測試,節(jié)省了計算資源,縮短了漏洞發(fā)現(xiàn)時耗。

4 實驗結(jié)果

(1)樣本程序測試

我們采用Docker技術(shù)將該平臺搭建在Ubuntu操作系統(tǒng)中,為了驗證該平臺針對瓶頸分支測試的有效性,我們最初編寫三個目標(biāo)程序樣本,并在代碼中分別加入一種程序檢查方式:特殊字節(jié)校驗、文件大小識別以及校驗和檢查,同時在每個樣本中植入一個已知漏洞。同時采用AFL作為測試基準(zhǔn)進(jìn)行比較。

考慮到模糊測試隨機(jī)性特征[8],我們共進(jìn)行30次獨立測試,每次測試8小時,使用相同初始輸入。如圖4所示,在針對特殊字節(jié)樣本測試中,該平臺在平均時長1-2小時便可觸發(fā)漏洞,而AFL需要4-5小時。

圖4 針對特殊字節(jié)識別樣本測試對比

而在針對文件大小檢查樣本的測試中,該平臺需要3-4小時,而AFL需要6-7小時,如圖5所示。

圖5 針對文件大小檢查樣本測試對比

圖6所示,針對算法更復(fù)雜,檢查更嚴(yán)格的校驗和檢查樣本,AFL沒有在預(yù)定時間內(nèi)觸發(fā)漏洞,而我們平臺需要6-7小時。

圖6 針對校驗和檢查樣本的測試對比

(2)真實程序測試

為了檢驗該平臺在實際環(huán)境中的測試性能,我們還對五款常用真實程序pngfix,tiffinfo,magick,tcpflow, tiffset最新版本進(jìn)行測試,同時采用AFL作對比,進(jìn)行30次獨立測試,每次測試24小時,取單次最佳測試結(jié)果,如表1所示,表格中數(shù)值為測試過程中發(fā)現(xiàn)的unique crash數(shù)量。對比中發(fā)現(xiàn),該平臺在相同測試時間內(nèi),漏洞挖掘效率高于AFL。

表1 真實程序測試效果

5 結(jié)論

基于定向模糊測試的軟件漏洞挖掘平臺通過輕量級程序插樁與靜態(tài)分析相結(jié)合的方法,自動識別瓶頸分支,同時又加入了測試的定向性。實驗結(jié)果表明該平臺在提高代碼覆蓋率的同時還能觸發(fā)更深層次程序路徑中的漏洞,在未來漏洞挖掘工作中,該平臺對幫助測試人員解決瓶頸分支導(dǎo)致代碼覆蓋率受限,快速挖掘深層代碼中潛在漏洞具有極大幫助。

[1]李紅輝,齊佳,劉峰,楊芳南.模糊測試技術(shù)研究.中國科學(xué) : 信息科學(xué)2014年 第44卷 第10期 :1305–1322.

[2]Michal Zalewski. American fuzzy lop[EB/OL]. http://lcamtuf.coredump.cx/afl/.

[3]Wu Z Y, Wang H C, Sun L C, et al. Survey on Fuzzing. Appl Res Comput, 2010: 830–831 吳志勇, 王紅川, 孫樂昌,等. Fuzzing 技術(shù)綜述. 計算機(jī)應(yīng)用研究, 2010: 830–831].

[4]Wang T,Wei T,Gu G,et al.Taintscope:A A survey of coverage directed fuzzing tool for automatic software vulnerability detection[C]//Security and privacy (SP),2010 IEEE symposium on.[S.l.]:IEEE,2010:497􀌢512.

[5]B?hme M,Pham V T,Roychoudhury A.Coverage-based greybox fuzzing as markov chain [C]//Proceedings of the 2016 ACM SIGSAC Conference on Computer and Communications Security.[S.l.]:ACM,2016:1032–1043.

[6]Rawat S,Jain V,Kumar A,et al.Vuzzer:Application-aware evolutionary fuzzing[C]//Proceedings of the Network and Distributed System Security Symposium (NDSS).[S.l.:s.n.], 2017.

[7]B?hme M,Pham V T,Nguyen M D,et al.Directed greybox fuzzing[C]//Proceedings of the 2017 ACM SIGSAC Conference on Computer and Communications Security (CCS17).[S.l.: s.n.],2017.

[8]George Klees, Andrew Ruef, Benji Cooper,Shiyi Wei,and Michael Hicks.2018.Evaluating Fuzz Testing.ACM SIGSAC Conference on Computer and Communications Security (CCS 18).

清華大學(xué)NISL實驗室:基于學(xué)習(xí)的智能化漏洞挖掘關(guān)鍵技術(shù)研究。

主站蜘蛛池模板: 在线亚洲精品福利网址导航| 国产成人亚洲无码淙合青草| 手机精品视频在线观看免费| 欧美午夜小视频| 国产尤物在线播放| 91九色国产porny| 最新国产高清在线| 国产成人综合亚洲网址| 秋霞午夜国产精品成人片| 人妻精品全国免费视频| 2021亚洲精品不卡a| 亚洲欧洲日韩综合色天使| 亚洲中文无码h在线观看| 99久久免费精品特色大片| 国产一级一级毛片永久| 亚洲欧洲日产国码无码av喷潮| 中日韩一区二区三区中文免费视频| 天堂va亚洲va欧美va国产| www.99在线观看| 中国精品久久| 亚洲妓女综合网995久久| 亚洲嫩模喷白浆| 久久国产精品影院| 六月婷婷激情综合| 国产精品久久久久无码网站| www.亚洲国产| 亚洲第一黄片大全| 一本一道波多野结衣一区二区 | 亚洲欧美国产视频| 国产91丝袜在线播放动漫| 国产精品永久在线| 日本高清在线看免费观看| 无码一区二区波多野结衣播放搜索| 欧美69视频在线| 91青青草视频| 国产成人久视频免费| 又爽又大又光又色的午夜视频| 亚洲综合九九| 国产免费a级片| 一区二区三区高清视频国产女人| 日本免费一级视频| 亚洲中文字幕精品| AV片亚洲国产男人的天堂| 中国精品久久| 精品视频在线观看你懂的一区| 青草视频久久| 免费精品一区二区h| 免费中文字幕一级毛片| www.亚洲一区二区三区| 欧美午夜一区| 扒开粉嫩的小缝隙喷白浆视频| 美女被操91视频| 内射人妻无码色AV天堂| 99久久国产综合精品2020| 国产精品自在在线午夜| 欧美在线中文字幕| 亚洲成人一区在线| 五月婷婷丁香综合| 中文字幕在线日本| 91色综合综合热五月激情| 四虎永久免费地址| 久久国产精品嫖妓| 久久久久国产一级毛片高清板| 欧美一区二区三区国产精品| 视频国产精品丝袜第一页| 九色在线观看视频| 99精品免费欧美成人小视频| 国产一区二区三区免费| 日韩人妻精品一区| 国产麻豆精品在线观看| 久无码久无码av无码| 色网站在线免费观看| 狠狠综合久久| 毛片免费高清免费| 国产精品香蕉| 亚洲V日韩V无码一区二区| 中文字幕66页| 人妻精品全国免费视频| 天天躁狠狠躁| 日韩国产综合精选| 噜噜噜综合亚洲| 午夜免费视频网站|