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

    ADFuzz:使用異常檢測篩選低頻路徑高效模糊測試

    2023-08-15 02:54:14李航宇方浩然曲彥文
    計算機研究與發(fā)展 2023年8期
    關(guān)鍵詞:測試用例覆蓋率變異

    李航宇 方浩然 曲彥文 郭 帆

    (江西師范大學(xué)計算機信息工程學(xué)院 南昌 330022)(yu@jxnu.edu.cn)

    目前最有效的自動化漏洞挖掘技術(shù)依然是模糊測試(Fuzzing)[1-2].隨著軟件規(guī)模日益龐大,結(jié)構(gòu)復(fù)雜精妙,靜態(tài)程序分析的成本變得越來越高,效果不盡人意.近幾年來,F(xiàn)uzzing憑借其自動化程度高、漏洞挖掘高效、不依賴程序源碼等優(yōu)點,受到安全研究員的青睞.截至2021年,著名的Google’s OSS-Fuzz[3]服務(wù)在650個開源程序上發(fā)現(xiàn)了超40 500個bugs,這是其他漏洞挖掘技術(shù)所不可比擬的.

    如圖1所示的Fuzzing基本框架圖,F(xiàn)uzzing只需要持續(xù)地對目標(biāo)程序輸入畸形的測試用例,通過追蹤收集覆蓋率的信息,變異出能夠增加程序覆蓋或觸發(fā)漏洞(crash)的種子,將種子繼續(xù)輸入至目標(biāo)程序,監(jiān)測目標(biāo)程序狀態(tài),捕獲目標(biāo)程序的異常行為來發(fā)現(xiàn)程序漏洞.Fuzzing挖掘漏洞的關(guān)鍵在于探索到更深的程序行為,發(fā)現(xiàn)更多的程序狀態(tài).目前,許多改進的模糊測試工具(如 Fuzzer)在種子選擇[4-7]、種子變異[8-11]、種子能量分配[4,12]等模塊進行優(yōu)化,通過利用污點分析技術(shù)[5,13-16]、符號執(zhí)行技術(shù)[17-20]來指導(dǎo)Fuzzing產(chǎn)生更高的程序覆蓋率.盡管這些優(yōu)化極大地提高了程序覆蓋率,但是隨著時間的增加,F(xiàn)uzzing運行了相當(dāng)多無覆蓋率增加的測試用例,導(dǎo)致Fuzzer追蹤了許多無意義種子的反饋信息,造成了極大的性能開銷.

    Fig.1 Fuzzing framework圖1 Fuzzing框架

    為了減少性能開銷,Untracer[21]通過對源程序二進制插樁,生成2種不同的目標(biāo)程序.每個基本塊前插樁1個中斷指令的Oracle[21]目標(biāo)程序,以及覆蓋率收集的tracer[21]目標(biāo)程序.如圖2所示,Untracer先將生成的測試用例運行在帶有中斷的Oracle文件上,當(dāng)Untracer捕獲到中斷信號時,才會將該測試用例輸入到tracer目標(biāo)程序中,并追蹤該測試用例的覆蓋率信息,由此將傳統(tǒng)主流的邊覆蓋變成了Untracer的基本塊覆蓋.雖然Untracer極大地減少了測試用例追蹤的開銷,提升了Fuzzing的運行速度,但是由于其基本塊覆蓋的局限性,只追蹤產(chǎn)生新基本塊覆蓋的測試用例,導(dǎo)致Untracer錯誤地丟棄了許多能夠產(chǎn)生新路徑覆蓋的種子,遺失了許多挖掘漏洞的潛力.

    Fig.2 Untracer framework圖2 Untracer框架

    為了解決以上問題,本文提出了一種基于深度學(xué)習(xí)異常檢測[22]模型的Fuzzing框架——ADFuzz,首次將異常檢測模型用于指導(dǎo)Fuzzing,很大程度上解決了AFL (American fuzzy lop)的開銷問題,也彌補了Untracer精度上的不足,做到了在速度和精度上的平衡.本文將異常檢測的思想結(jié)合到Fuzzing中,將程序的低頻路徑作為異常點,這些異常點根據(jù)路徑頻率的劃分非常容易收集.本文評估了ADFuzz對于傳統(tǒng)主流的Fuzzer的優(yōu)勢(以AFL為代表),在相同覆蓋率的情況下最多減少了78%的運行開銷;在相同時間下最高提升了42.9%的運行速度,最多產(chǎn)生25.8%的覆蓋率.

    綜上所述,本文的主要貢獻有3方面:

    1)提出將異常檢測模型與Fuzzing相結(jié)合,將運行低頻路徑種子視為異常點;

    2)通過異常檢測模型篩選出低頻路徑種子,使得Fuzzing持續(xù)朝著低頻路徑方向探索,減少無效種子的追蹤運行,提高Fuzzing效率;

    3)開發(fā)了原型工具ADFuzz,并且通過實驗證明了ADFuzz的有效性.

    1 相關(guān)背景

    1.1 基于覆蓋反饋的 Fuzzing

    覆蓋率引導(dǎo)的Fuzzing是目前使用最廣泛且最有效的自動化漏洞挖掘技術(shù).覆蓋率引導(dǎo)的Fuzzing主要是通過覆蓋率的變化來區(qū)分不同的輸入,以產(chǎn)生的新覆蓋作為追蹤運行的信號,進而篩選測試用例.最著名的覆蓋率引導(dǎo)的Fuzzer是2013年由谷歌安全研究員Zalewski[23]研發(fā)的AFL,AFL通過在目標(biāo)程序編譯期間對代碼輕量級插樁,記錄代碼覆蓋率,然后將輸入隊列的初始種子按一定順序進行確定性變異和破壞性變異.確定性變異對輸入進行小范圍、局部的有規(guī)則的變異,如位翻轉(zhuǎn)、字節(jié)加減、字節(jié)替換;破壞性變異則是對輸入進行大范圍的無序變異.AFL將變異生成的新輸入丟入目標(biāo)程序運行、監(jiān)視程序行為、收集產(chǎn)生新覆蓋以及觸發(fā)程序異常行為的輸入,并且按照種子的運行時間、運行的路徑深度給予不同的變異能量,變異能量用于指導(dǎo)下一次變異的次數(shù),最后將種子放入隊列,以此往復(fù).

    整個流程以覆蓋率變化作為篩選種子到隊列的標(biāo)準(zhǔn),并作為變異能量分配的依據(jù),也是整個AFL的變異方向.但是隨著時間的推移,擁有更多變異能量的種子將會產(chǎn)生更多的輸入,并且始終主導(dǎo)著目標(biāo)程序運行.當(dāng)這個方向的路徑已經(jīng)探索完全后,覆蓋率不再變化,陷入局部最優(yōu)解,使得后續(xù)的Fuzzing變得低效.

    1.2 異常檢測

    異常檢測[22],又稱為離群點檢測,是指能夠檢測出明顯偏離大部分數(shù)據(jù)的過程.異常檢測主要是檢測那些少數(shù)的、不可預(yù)測的、罕見的數(shù)據(jù),這些數(shù)據(jù)往往充滿著不確定性、多樣性和稀有性.近幾十年,異常檢測一直是一個活躍的研究領(lǐng)域,在許多領(lǐng)域都有應(yīng)用,比如網(wǎng)絡(luò)安全中的入侵檢測、信用卡詐騙檢測、癌細胞檢測等.通過研究異常點,研究人員可以獲取到許多重要的知識,有助于做出更好的數(shù)據(jù)決策.

    基于深度學(xué)習(xí)的異常檢測模型旨在學(xué)習(xí)數(shù)據(jù)的低維潛在特征,即?(X)→Z和1個異常分數(shù)函數(shù)τ(X),異常數(shù)據(jù)通常由異常分數(shù)以及特征區(qū)分.但是由于異常數(shù)據(jù)難以收集,使得異常檢測模型檢測性能不高.針對異常數(shù)據(jù)難以收集、樣本數(shù)據(jù)不平衡的問題,近年來使用自編碼器[24]( AutoEncoder,AE) 這種特征學(xué)習(xí)方法,通過對正常數(shù)據(jù)進行訓(xùn)練,學(xué)習(xí)正常數(shù)據(jù)到潛在特征空間的映射關(guān)系,并且通過潛在特征進行數(shù)據(jù)重構(gòu),使重構(gòu)數(shù)據(jù)具有較小的重構(gòu)誤差,并將重構(gòu)誤差用來作為異常評分篩選異常數(shù)據(jù).

    基于生成對抗網(wǎng)絡(luò)[25](generative adversarial network,GAN)的異常檢測模型一經(jīng)問世,便迅速成為了最受歡迎的方法.這種方法主要基于對抗性特征學(xué)習(xí)的思想,生成網(wǎng)絡(luò)學(xué)習(xí)給定數(shù)據(jù)的潛在特征表示,與判別器進行對抗訓(xùn)練,然后將真實數(shù)據(jù)與生成數(shù)據(jù)之間的誤差,以及判別器誤差定義為異常評分.GAN在生成數(shù)據(jù)方面表現(xiàn)出眾,增強了模型對異常實例的檢測能力.基于GAN的異常檢測模型將在后續(xù)相關(guān)工作進行分析介紹.

    在Fuzzing中,觸發(fā)程序異常行為的輸入顯然可以作為異常點進行檢測,但是能夠觸發(fā)漏洞的輸入樣本十分稀少,且與其他漏洞沒有關(guān)聯(lián)性,并不能夠指導(dǎo)漏洞挖掘.如果僅僅將產(chǎn)生漏洞的輸入作為異常點,對異常檢測模型進行訓(xùn)練,顯然是無意義的.

    2 研究動機

    2.1 運行冗余

    目前,學(xué)術(shù)界涌現(xiàn)出各式各樣覆蓋率引導(dǎo)的Fuzzer.這些Fuzzer在突破路徑約束,增大覆蓋率、漏洞挖掘上已經(jīng)變得非常完善且有效.基于覆蓋率引導(dǎo)的Fuzzer需要對所有測試用例的覆蓋率信息進行跟蹤分析.Fuzzer通過分析是否增加覆蓋率、是否觸發(fā)程序異常,來給予種子一定的變異能量.然而隨著時間的流逝,覆蓋率的增長逐漸平緩,增加覆蓋率的測試用例將遠小于總測試用例.根據(jù)統(tǒng)計分析,所有測試用例的執(zhí)行路徑頻數(shù)、發(fā)現(xiàn)程序路徑的執(zhí)行次數(shù)并不是均勻的,它們主要集中在程序的高頻路徑[4].Fuzzer對于每個種子有著不同的能量分配策略,更多的變異能量帶來了更多的變異運行的機會,但是并不是每次變異都是有效的變異(產(chǎn)生新覆蓋),大部分變異后的測試用例路徑與原種子路徑一致,導(dǎo)致高頻路徑始終保持高次數(shù)運行;然而高頻路徑的冗余跟蹤運行將會帶來大量的開銷,并且使得低頻路徑缺乏足夠的變異能量進行路徑突破.

    2.2 丟失變異方向

    Untracer[21]以及該團隊后續(xù)的CSI-Fuzz[26]、國內(nèi)清華大學(xué)的Zeror[27]都是通過盡可能地減少冗余測試用例的跟蹤運行,以節(jié)省系統(tǒng)開銷和縮短時間成本來加快發(fā)現(xiàn)新覆蓋和crash.以Untracer為例,在目標(biāo)程序的二進制文件上的每一個基本塊頭部都插入1個int3中斷指令,F(xiàn)uzzer先將測試用例運行在插入中斷指令的文件.當(dāng)Fuzzer監(jiān)控到產(chǎn)生了中斷或者程序異常信息時,則把該測試用例運行在另一個代碼覆蓋追蹤文件.Zeror則有多個不同程度的目標(biāo)程序二進制插樁文件,根據(jù)貝葉斯公式選擇相對低開銷的目標(biāo)程序二進制文件運行,以此減少運行開銷.當(dāng)確定發(fā)現(xiàn)了新覆蓋時,保留該種子到隊列中,進行下一輪的變異,并且新目標(biāo)程序二進制文件移除相應(yīng)基本塊頭部的中斷指令.然而Untracer是以基本塊頭部中斷指令作為信息反饋,如圖3所示,當(dāng)前2個測試用例經(jīng)過ABD,ACE新路徑時,Untracer將會把ABCDE基本塊前的中斷移除,中斷被移除后,如果有測試用例經(jīng)過ABE或者ACD時,由于沒有觸發(fā)中斷,Untracer便錯誤地認為測試用例沒有產(chǎn)生新的覆蓋率而丟棄它.針對此問題,后續(xù)CSI-Fuzz以及Zeror通過不同方法在各條邊上插入中斷來減少錯誤丟棄運行交叉路徑種子.盡管如此,當(dāng)所有的中斷都被擦除后,很難再引導(dǎo)種子的變異方向,依然會導(dǎo)致高頻路徑過量運行,帶來不必要的運行開銷.

    Fig.3 Cross paths圖3 交叉路徑

    2.3 解決思路

    如何在路徑識別精度與運行速度之間取得平衡,盡可能篩選出有效種子是解決此類問題的關(guān)鍵.根據(jù)RED-QUEEN[15]中提及的input-to-state correspondece思想,程序的狀態(tài)與輸入數(shù)據(jù)是有某種對應(yīng)關(guān)系.比如輸入流中的某些特定字節(jié)能夠突破判斷條件到達一些新的路徑,而程序中有許多條件語句,如:

    在這些條件語句的共同作用下產(chǎn)生了不同路徑,而輸入流中的特定字節(jié)就是產(chǎn)生不同路徑的key-byte,這些key-byte也就是輸入的潛在特征.

    通過Fuzzing隨機生成的輸入能夠覆蓋大多數(shù)的路徑,此時如果覆蓋率不再增加,則可以通過符號執(zhí)行的方法來求解路徑約束.但是其計算復(fù)雜,導(dǎo)致求解效率低下,還會引發(fā)路徑爆炸等問題.那么如何在覆蓋率不增加的情況下篩選出更有潛力的輸入,以及決定Fuzzing的后續(xù)變異方向是本文的研究關(guān)鍵.Ankou[28]中提出,種子選擇函數(shù)首先能夠區(qū)別每個測試用例,并且能夠量化不同輸入導(dǎo)致的程序差異.Ankou[28]引入了一種基于距離的種子選擇函數(shù),通過衡量二次程序的分支組合來量化2個程序輸入的相似度,并且使用動態(tài)PCA[28]進行降維,把每一個種子輸入到種子選擇函數(shù)進行計算,篩選出低于閾值的種子,即更有可能產(chǎn)生新覆蓋的種子.但是傳統(tǒng)機器學(xué)習(xí)的PCA算法,以及Ankou改進的動態(tài)PCA算法仍然有許多弊端,如效率低下,對于輸入數(shù)據(jù)的潛在特征把握不夠精確,丟失數(shù)據(jù)潛在信息等.

    受到文獻研究的啟發(fā),本文提出使用異常檢測模型GANomaly[29]來求解輸入數(shù)據(jù)的潛在特征與路徑之間的關(guān)系.ADFuzz結(jié)構(gòu)如圖4所示.首先將ADFuzz運行一段時間,收集一定數(shù)量跟蹤運行后的測試用例,根據(jù)測試用例的Hash值分別放入不同的文件夾,將高頻路徑測試用例作為模型的訓(xùn)練數(shù)據(jù).編碼器、解碼器通過數(shù)據(jù)集的分布,學(xué)習(xí)真實數(shù)據(jù)到潛在特征Z之間的映射,以及重建從潛在特征Z到數(shù)據(jù)的關(guān)系.然后將低頻路徑與觸發(fā)crash的種子作為異常點,以及加上少許高頻路徑的種子作為模型的測試集來優(yōu)化模型參數(shù).因為模型學(xué)習(xí)高頻路徑種子的潛在特征,且低頻路徑的種子以及觸發(fā)crash的種子并不適合該潛在特征,以至于模型能夠篩選出這些異常種子,減少高頻路徑種子的運行開銷,節(jié)省時間成本及加速Fuzzing.最重要的是,異常檢測模型能夠持續(xù)地引導(dǎo)Fuzzer朝著低頻路徑的方向運行.

    Fig.4 ADFuzz framework圖4 ADFuzz框架

    Untracer[21],CSI-Fuzz[26],Zeror[27]這3個加速Fuzzer都將運行和追蹤階段分開.先是運行只有中斷的二進制文件,觸發(fā)中斷之后,再將該種子運行在有覆蓋追蹤標(biāo)記的二進制文件上,實際花費的時間是一次運行時間、一次追蹤時間、開關(guān)forkserver[21]和去掉中斷指令時間的總和.隨著時間推移,后期能夠觸發(fā)新覆蓋的種子相當(dāng)少,大部分只需要一次運行時間.而ADFuzz實際花費的時間是一次運行追蹤時間和模型推理時間之和,大部分是一次推理時間.因為高頻路徑種子占比逐漸增大,在模型訓(xùn)練完成后都將被過濾,使得ADFuzz速度具有高于其他加速Fuzzer速度的潛力.

    3 ADFuzz框架及實現(xiàn)

    ADFuzz基本工作流程以及主要部分如圖4所示,ADFuzz采用C和Python混合編程.相比傳統(tǒng)AFL類工具而言,增加了異常檢測模型指導(dǎo)Fuzzing,本框架能夠與其他非加速類Fuzzer工具對接,所以在后續(xù)的實驗中,本文以比較AFL為主,如果ADFuzz有效,則對于其他AFL類工具也是有同等效益的.通常來說,深度學(xué)習(xí)模型包括模型的訓(xùn)練、模型的測試以及模型的推理階段,如何使得Fuzzer與深度學(xué)習(xí)高效地交互是提高工具效率的關(guān)鍵.本節(jié)將介紹ADFuzz的各個功能,包括數(shù)據(jù)集采集策略、緩沖區(qū)算法、能量調(diào)度模塊以及靈活的模型訓(xùn)練策略.

    3.1 數(shù)據(jù)集采樣策略

    模型的訓(xùn)練階段是模型的基礎(chǔ),數(shù)據(jù)集是否豐富決定了模型的訓(xùn)練好壞,如何有效地生成一個高質(zhì)量的數(shù)據(jù)集是一個難點.目前,并沒有針對Fuzzing的一個公共通用的程序數(shù)據(jù)集,所以ADFuzz在每個被測程序上都生成了一個數(shù)據(jù)集.首先將Fuzzer單獨運行一段時間,收集一定數(shù)量跟蹤運行后的種子.由于確定性變異的種子之間差異較?。◣讉€比特,字節(jié)位的翻轉(zhuǎn)),所以只收集Fuzzing破壞性變異階段的種子,防止模型過擬合.根據(jù)input-to-state correspondence[15]思想,程序的輸入與程序路徑存在某種對應(yīng)關(guān)系,所以將收集到的種子按bitmap的Hash值來作為路徑標(biāo)識分別放到不同的文件夾下,并篩選出高頻路徑的種子作為模型的訓(xùn)練集,低頻路徑的種子作為模型的測試集.數(shù)據(jù)集收集完成后,有2個策略:1)停止Fuzzer運行,等待模型的訓(xùn)練完成后再繼續(xù)Fuzzing.這樣會導(dǎo)致Fuzzer受到模型訓(xùn)練時間的影響,效率低下.2)不停止Fuzzer運行,將Fuzzer和模型的訓(xùn)練分別用不同的進程開啟,互不影響之間的效率.由于Fuzzer和模型訓(xùn)練同時運行的情況下有可能存在不在數(shù)據(jù)集下的新路徑,這些路徑并不會影響模型的準(zhǔn)確率,所以本文采取第2種策略.

    3.2 緩沖區(qū)算法

    當(dāng)模型訓(xùn)練完成后,開啟模型的推理階段,需要將Fuzzing變異生成后的種子在跟蹤運行前交給模型進行判斷.考慮到模型與Fuzzer之間的交互效率,以及GPU并行計算的特點,本文不采用將單個種子輸入到模型,而是采用將一批次的種子輸入到模型中進行并行計算,使用共享內(nèi)存進行Fuzzer與模型之間的信息交互.通過設(shè)置1個共享內(nèi)存,將Fuzzer生成的一批次種子存放在共享內(nèi)存中.當(dāng)共享內(nèi)存存滿后,一次性輸入到異常檢測模型中,并將結(jié)果通過共享內(nèi)存返回給Fuzzer.盡管如此,ADFuzz的運行速度仍然受到模型推理的效率限制,以及GPU檔次的影響.當(dāng)模型推理時間大于種子跟蹤運行時間時,ADFuzz的效率將大打折扣,使得ADFuzz局限于只能夠運行在單次運行時間較長的程序上.通過采用緩沖區(qū)算法,ADFuzz跳過共享內(nèi)存種子的跟蹤運行階段,不等待模型的推理結(jié)果,繼續(xù)跟蹤運行新的種子,并且緩沖區(qū)算法還能夠減少異常檢測模型錯誤丟棄種子的情況.

    算法1.緩沖區(qū)算法.

    輸入:種子s,模型訓(xùn)練標(biāo)志success_train,變異次數(shù)mutate_num,種子計數(shù)seed_count,共享內(nèi)存地址shm_addr,共享內(nèi)存數(shù)量shm_num;

    輸出:模型推理結(jié)果.

    ① foriinmutate_num

    ②S=mutate(s);

    ③ if(success_train)/*判斷模型訓(xùn)練*/

    ④seed_count++;

    ⑤ if(seed_count%shm_num==0)

    ⑥InitShmAddr(shm_addr[0]);/*初始化共享內(nèi)存*/

    ⑦copy(shm_addr[0],S);/*將種子拷貝到共享內(nèi)存*/

    ⑧ if(model_infer())

    ⑨ fornuminshm_num/*取出共享內(nèi)存的種子*/

    ⑩copy(buf,shm_addr[num]);

    ?run_target(buf);/*運行種子*/

    ? end for

    ? end if

    ? else

    ?temp_num=seed_count%shm_num;

    ?InitShmAddr(shm_addr[temp_num]);

    ?copy(shm_addr[temp_num],S);

    ? end if

    ? else

    ?run_target(s);

    ? end if

    ? end for

    3.3 能量調(diào)度模塊

    傳統(tǒng)的AFL[23]能量調(diào)度策略中并沒有考慮程序不同執(zhí)行路徑頻率的差異,使得種子的能量分配極不合理,種子的能量分配決定了整個Fuzzing的變異方向.在Fuzzing一段時間后,能量多的種子得到了更多的變異機會,產(chǎn)生大量的測試用例,而這些測試用例很難再產(chǎn)生新路徑,導(dǎo)致高頻路徑的無意義運行次數(shù)增多;部分低頻路徑種子卻只有少量的變異能量,變異產(chǎn)生的測試用例過少,執(zhí)行頻率過低,使得低頻路徑得不到足夠變異次數(shù)進行路徑突破.長時間的Fuzzing使得低頻路徑對應(yīng)的種子需要更多的變異能量,所以本文對傳統(tǒng)能量調(diào)度策略進行了改進.對于模型預(yù)測出的異常點種子,如果其產(chǎn)生了新路徑,將給予更多的能量,使得低頻路徑種子有更多變異機會,從而引導(dǎo)Fuzzer朝著低頻路徑方向變異,增大程序覆蓋.

    3.4 模型訓(xùn)練策略

    由于修改后的能量調(diào)度策略對于模型預(yù)測成功,且真實產(chǎn)生新覆蓋的種子給予更多的變異能量,用于突破低頻路徑的旁路.當(dāng)Fuzzing一段時間后,程序的路徑頻率發(fā)生變化,低頻路徑的頻數(shù)逐漸增加,新的路徑頻率分布已經(jīng)改變,之前訓(xùn)練的模型不再適用,需要重新訓(xùn)練合適的模型.如果路徑長時間未發(fā)生變化或變化不大時,那么可以重新開啟模型訓(xùn)練,使得ADFuzz能夠靈活、及時地朝著低頻路徑方向Fuzzing.

    算法2.模型訓(xùn)練調(diào)度策略.

    輸入:種子s,破壞性變異階段havoc_stage,訓(xùn)練完成標(biāo)志finish_flag,數(shù)據(jù)集收集完成標(biāo)志collect_flag,路徑活躍時間live_time;

    輸出:數(shù)據(jù)集.

    ① while True:

    ②run_target(s);

    ③ if(hacov_stage&&!finish_flag)/*收集種子,只收集havoc階段的種子*/

    ④collect_flag=collect_dataset();

    ⑤ end if

    ⑥ if(collect_flag)/*收集完成后訓(xùn)練模型*/

    ⑦train_model();

    ⑧collect_flag=False;

    ⑨ end if

    ⑩ if(isfile(model_weights))/*模型的參數(shù)文件生成,說明模型已經(jīng)訓(xùn)練完成*/

    ?finish_flag=True;

    ? end if

    ? if(last_new_path>live_time)/*當(dāng)last_new_path的時間大于所給定的時間時,說明路徑已經(jīng)很久沒增加了,需要重新訓(xùn)練模型*/

    ?kill_model_process();/*殺掉之前的模型進程,開啟新的模型訓(xùn)練*/

    ?finish_flag=False;

    ? end if

    ? end while

    4 實驗與評估

    4.1 實驗環(huán)境

    本文實現(xiàn)了工具ADFuzz,整體框架主要通過C和Python實現(xiàn),使用異常檢測模型GANomaly,所有實驗均在CPU Intel i7-6 700,16GB內(nèi)存,NVIDIA GeForce GTX 1 660,操作系統(tǒng)為64位Ubuntu 20.04.本文選擇的被測程序均來自Untracer的FoRTE-FuzzBench[30].為了減少實驗的偶然性,額外補充4個目標(biāo)程序,這些被測程序的輸入覆蓋了大型文本、圖像、音頻、視頻等格式,這些復(fù)雜的輸入結(jié)構(gòu)使得工具更具有通用性和代表性.盡管更長時間的Fuzzing對ADFuzz更加有利,本文仍然將所有實驗的運行時間設(shè)定在24 h.本文通過實驗嘗試回答3個方面的問題:

    1)精度.ADFuzz能否發(fā)現(xiàn)更多的路徑覆蓋以及漏洞數(shù)量.

    2)速度.對于全追蹤運行模式下的AFL類Fuzzer以及選擇性追蹤運行模式下的Untracer,ADFuzz平均運行速度如何.

    3)開銷.ADFuzz的性能以及額外開銷如何.

    4.2 實驗結(jié)果

    為了證明ADFuzz的有效性,本文將FoRTE-Fuzz-Bench與AFL,Untracer進行比較.所有程序均由aflclang[31]編譯插樁,運行24h.由于確定性變異階段產(chǎn)生的測試用例之間差異較小,只有局部的比特和字節(jié)變化,使得ADFuzz過濾了大部分的測試用例,因此ADFuzz在確定性變異階段運行速度得到巨大提升,但是也會降低ADFuzz的覆蓋率精度.為了平衡精度與速度,所有Fuzzer只進行破壞性變異,即運行命令加入-d選項.由于被測程序的多樣性,被測程序的測試用例通常有文本、圖像、音頻、視頻等格式,對于不同格式的測試用例采取統(tǒng)一的格式作為模型的輸入,將輸入流按一定的字節(jié)行列展開(8的倍數(shù))成二維矩陣,即輸入流圖,方便使用GANomaly來提取輸入樣本的特征.

    4.2.1 ADFuzz的代碼覆蓋以及漏洞挖掘能力比較

    如圖5所示,本文統(tǒng)計了ADFuzz與AFL在FoRTEFuzzBench上24h的覆蓋率情況.可以看出ADFuzz在12個程序上的覆蓋率均有明顯提升,ADFuzz發(fā)現(xiàn)新路徑的速度以及數(shù)量都持續(xù)領(lǐng)先于AFL,說明ADFuzz相比于AFL能夠更加高效地發(fā)現(xiàn)新路徑,并且對于結(jié)構(gòu)明顯的程序輸入效果更好,其中mp42acc覆蓋增加最多,增加了25.8%.

    Fig.5 24 h path coverage圖5 24 h 路徑覆蓋

    Zeror[27]是目前最新的加速Fuzzer,由于Zeror沒有公開源碼,本文直接與文獻[27]中的結(jié)果進行比較.如表1所示,本文統(tǒng)計了Zeror,ADFuzz,CSI-Fuzz,Untracer在各自benchmark的平均覆蓋率,相比于AFL分別增加10.14%,11.78%,7.7%和降低10.7%.因此,ADFuzz覆蓋率高于其他加速Fuzzer,并且發(fā)現(xiàn)ADFuzz與Zeror在各自benchmark上有2個共同目標(biāo)程序libjpeg和libarchive.Zeror相比于AFL分別增加路徑條數(shù)493[27]和410[27],而ADFuzz分別增加路徑條數(shù)626和656,可以看出在相同目標(biāo)程序下,ADFuzz比Zeror能夠覆蓋更多的程序路徑,具有更強的代碼覆蓋能力.

    Table 1 Improvement of Average Coverage Rate Compared with AFL表1 相比AFL的平均覆蓋率提升%

    如表2所示,對于24h crash發(fā)現(xiàn)數(shù)量,8個FoRTEFuzzBench程序中只有binutils,poppler,audiofile這3個程序在AFL,ADFuzz,Untracer下發(fā)現(xiàn)了crash,以及額外4個補充程序.圖6是被測程序發(fā)現(xiàn)漏洞的時序圖.可以看出ADFuzz相比于AFL,crash挖掘數(shù)量更多,且在poppler程序上AFL與Untracer均未發(fā)現(xiàn)crash,足以說明ADFuzz發(fā)現(xiàn)crash的能力更強.當(dāng)異常檢測模型將高頻路徑篩選出后,ADFuzz朝著低頻路徑的方向Fuzzing,許多crash隱藏在這些低頻路徑中,使得ADFuzz具有更強的發(fā)現(xiàn)crash的能力.

    Table 2 The Number of crash表2 crash數(shù)量

    Fig.6 Number of crashes圖6 漏洞數(shù)量

    Zeror,Untracer,CSI-Fuzz這3類加速Fuzzer的基本原理相同,都是只追蹤觸發(fā)中斷的測試用例,并且對于觸發(fā)中斷的測試用例給予更多的變異能量,這決定了整個Fuzzing的方向.但是隨著時間的推移,當(dāng)測試用例不再觸發(fā)新中斷后,F(xiàn)uzzer將會丟失變異方向,導(dǎo)致很難對種子進行更好地篩選和變異,這是這類加速Fuzzer的缺陷.如果長時間的Fuzzing不會帶來更多的程序覆蓋,單純地運行無意義的測試用例只會增加Fuzzing的成本,將導(dǎo)致整個Fuzzing變得不再高效.ADFuzz高效的關(guān)鍵在于異常檢測模型能夠持續(xù)、智能地引導(dǎo)Fuzzer,將異常檢測模型的推理結(jié)果作為種子的適應(yīng)度函數(shù)[28],對種子進行有效地篩選,給予變異運行的方向,即低頻路徑方向,使得長時間的Fuzzing ADFuzz依然能夠有效地發(fā)現(xiàn)新覆蓋.

    4.2.2 ADFuzz的單例執(zhí)行速度比較

    如圖5所示,可以明顯發(fā)現(xiàn)在Fuzzing早期、模型訓(xùn)練期間,ADFuzz與AFL的路徑數(shù)量基本一致,說明并行運行Fuzzing以及模型訓(xùn)練不影響Fuzzing的效率.當(dāng)模型訓(xùn)練完成,開啟模型推理后,ADFuzz均更快、更早地發(fā)現(xiàn)了新路徑.只有audiofile和cjson在早期就已經(jīng)很難發(fā)現(xiàn)新路徑.當(dāng)在更長時間(大于24 h)的Fuzzing下,ADFuzz的路徑逐漸收斂,此時需要重新收集新的高頻路徑數(shù)據(jù),并且開啟模型訓(xùn)練,及時引導(dǎo)Fuzzing朝著低頻路徑的方向運行.

    表3統(tǒng)計了AFL,ADFuzz,Untracer單個測試用例的平均運行時間(根據(jù)總生成的測試用例以及24 h運行時間算出),可以看出ADFuzz與Untracer互有高低,并且單個測試用例時間均小于AFL.ADFuzz相比于AFL,平均速度提升23.8%.

    Table 3 Average Running Time for Each Testcase表3 單個測試用例的平均運行時間μs

    鑒于文獻[27]中,各Fuzzer采用tmpfs[27],導(dǎo)致AFL與Untracer以及Zeror單個測試用例的平均運行時間大幅度增大,如果單純與AFL對比提升的幅度則不太公平,所以本文將速度以Untracer為基準(zhǔn)(加速Fuzzer中Untracer速度最快)進行對比.Zeror相比于Untracer速度減少0.46%[27],ADFuzz相比于Untracer減少2.4%,可以看出ADFuzz平均速度稍慢于Zeror.但是對于運行時間稍長的程序poppler,audiofile,ADFuzz采取的過濾不追蹤策略使得速度有明顯提升,運行速度均高于最快的Untracer.

    Untracer類加速Fuzzer,包括Zeror和CSI-Fuzz只追蹤運行觸發(fā)中斷的種子,不觸發(fā)中斷的測試用例只運行不追蹤其軌跡.當(dāng)已知路徑的中斷指令被移除后,丟失變異方向的Untracer便會節(jié)省很多路徑的追蹤運行時間,以至于Untracer運行速度更快.與Untracer的運行不追蹤不同,ADFuzz過濾大部分高頻冗余的測試用例,既不追蹤也不運行,節(jié)省了大部分測試用例的運行與追蹤開銷,使得ADFuzz在長運行時間的程序下快于Untracer類Fuzzer.

    4.2.3 ADFuzz的性能以及開銷比較

    在覆蓋率引導(dǎo)的Fuzzer中,追蹤運行測試用例為共同的開銷成本.在Fuzzing過程中,相比于AFL,Untracer和Zeror增加了開關(guān)forkserver開銷,去除中斷指令開銷.而在ADFuzz中,只引入了額外的模型訓(xùn)練推理開銷.在相同條件下,與AFL相比, ADFuzz通過過濾部分冗余種子,節(jié)省了大量的種子運行和追蹤運行開銷.這些節(jié)省下來的時間成本,使得Fuzzer能夠快速切換至種子的生成階段,利于更多的種子生成,經(jīng)過模型篩選出的種子,有較高的概率產(chǎn)生新覆蓋,以此提高Fuzzing的有效性.圖7顯示了ADFuzz過濾的種子數(shù)量,即節(jié)省的Fuzzing開銷,其表示在不影響覆蓋率增加的情況下,減少Fuzzer對種子的追蹤運行開銷.圖8顯示的是ADFuzz相比于AFL所提升的性能比較,即生成的總種子數(shù).

    Fig.7 The filtration ratio of seeds圖7 過濾種子比

    Fig.8 Total number of seeds圖8 總種子數(shù)

    結(jié)果分析表明,在運行的24 h內(nèi),ADFuzz通過異常檢測模型過濾了大部分無意義的高頻路徑種子,這些被過濾掉的種子并不需要跟蹤運行程序狀態(tài),相比于AFL節(jié)省了大量的追蹤運行開銷.這些節(jié)省下來的運行開銷分別配給了模型推理,以及追蹤運行額外多生成的種子.通過對所有過濾種子占比進行統(tǒng)計分析發(fā)現(xiàn),ADFuzz相比于AFL模型節(jié)省的平均開銷為43%,平均多生成33.4%的種子數(shù)量,可以得出模型訓(xùn)練和推理所占開銷為9.6%.額外的種子生成提高了發(fā)現(xiàn)新覆蓋種子的概率,使得ADFuzz精度有所保證.

    4.3 實驗結(jié)果

    實驗結(jié)果分析發(fā)現(xiàn):1)在運行速度上,ADFuzz明顯快于AFL,并且有著超越Untracer速度的潛力;2)在覆蓋率上,ADFuzz相比于AFL平均覆蓋率提升了11.78%,其得益于ADFuzz的速度提升以及持續(xù)引導(dǎo)低頻路徑方向Fuzzing;3)在漏洞數(shù)量上,ADFuzz漏洞發(fā)現(xiàn)數(shù)量高于AFL和Untracer,并且在AFL和Untracer都沒有發(fā)現(xiàn)的poppler上發(fā)現(xiàn)了2個新的crash,更加證明了ADFuzz挖掘漏洞的潛力.

    本文對12個程序的隊列種子進行了標(biāo)記,發(fā)現(xiàn)在模型開啟后,90%以上的隊列種子都是由模型篩選出的,說明異常檢測模型能夠篩選出覆蓋率增加的種子,也證明了異常檢測模型的有效性.

    可能影響工具效果的原因包括:1)數(shù)據(jù)集的豐富性.在訓(xùn)練模型時,數(shù)據(jù)集的豐富性會影響模型的準(zhǔn)確率,由于各個程序沒有公開的數(shù)據(jù)集,所以只能邊Fuzzing,邊收集訓(xùn)練的數(shù)據(jù)集,并且只收集破壞性變異階段產(chǎn)生的種子.2)推理時間的長短.推理時間受顯卡檔次決定,當(dāng)顯卡更好時,推理時間降低,使得ADFuzz能夠更快地篩選種子,提高運行速度.當(dāng)模型的推理時間小于測試用例在目標(biāo)程序的運行時間時,ADFuzz的速度將會大幅度提升.3)異常檢測模型參數(shù)選擇.模型參數(shù)的選擇主要影響模型訓(xùn)練時間,模型訓(xùn)練時間過長容易導(dǎo)致模型不適合當(dāng)前的路徑分布,使模型準(zhǔn)確率降低.

    5 相關(guān)工作

    5.1 Fuzzing

    目前國內(nèi)外研究者針對AFL的各個模塊優(yōu)化,衍生了大量的Fuzzer工具.比如, Learn&Fuzz[32]使用了RNN來學(xué)習(xí)同樣具有生成性的統(tǒng)計輸入模型,根據(jù)學(xué)習(xí)模型的概率分布生成新的輸入;GANFuzz[33]通過SeqGAN算法學(xué)習(xí)工控協(xié)議的語法,生成能夠通過協(xié)議的高質(zhì)量測試用例;FuzzGen[34]通過分析整個系統(tǒng),依據(jù)抽象API依賴圖生成有效的“Fuzzer stub”;NEUTAINT[13]使用神經(jīng)網(wǎng)絡(luò),分析種子與路徑之間的關(guān)系,找出種子的關(guān)鍵字節(jié)進行變異,減少變異的冗余,提高變異的效率;Ankou[28]引入了一種基于距離的種子選擇函數(shù),通過動態(tài)PCA算法來減少種子選擇函數(shù)的計算,篩選出高質(zhì)量種子;MPBFuzzer[35]使用邏輯回歸函數(shù)建立路徑預(yù)測模型,通過熵不確定性公式來計算種子是否執(zhí)行的閾值,如果高于閾值,代表種子對模型具有很高的不確定性,表示該種子極有可能產(chǎn)生新的路徑,從而過濾掉低于閾值的種子;Angora[16]采用字節(jié)級污點追蹤,只變異影響路徑走向的字節(jié),并且使用梯度下降的方法求解路徑約束;AFLFast[4]和EcoFuzz[12]通過建模Fuzzing的過程,靈活地調(diào)整能量分配策略;CollAFL[5]通過解決Hash邊沖突問題,盡可能增大覆蓋率;RED-QUEEN[15]發(fā)現(xiàn)input-to-state corre-spondence,輸入與程序的狀態(tài)同步,利用這種關(guān)系來處理程序的magic numbers和checksums問題.這類Fuzzer尋求突破路徑約束來增大覆蓋率,確實取得了不錯的效果,但是會浪費大量的時間去追蹤無意義的輸入.Untracer以及后續(xù)的CSI-Fuzz分別插入基本塊中斷和邊中斷,只追蹤這些能夠觸發(fā)中斷的種子,極大地提升了Fuzzing速度和減少追蹤開銷.

    5.2 異常檢測

    近幾年,GAN[25]已經(jīng)成為異常檢測領(lǐng)域最受歡迎的方法.通過訓(xùn)練生成網(wǎng)絡(luò)G的潛在特征空間,使?jié)撛诳臻g能夠很好地捕捉到給定數(shù)據(jù)的分布,然后將實際樣本和生成樣本之間的殘差定義為異常評分.首先使用這種方法的是AnoGAN[36],通過生成網(wǎng)絡(luò)G學(xué)習(xí)正常數(shù)據(jù)的分布,然后在生成網(wǎng)絡(luò)G的潛在特征空間里隨機生成向量z,使得G(z)與正常數(shù)據(jù)x盡可能地相似,判別網(wǎng)絡(luò)D通過辨別G(z)與x的差異來更新參數(shù)z.但是它的一個明顯缺陷是每次有新的圖像出現(xiàn)都需要不斷地去更新參數(shù)z,使得計算成本增加且浪費大量時間.解決這個問題的一種方法是額外添加一個網(wǎng)絡(luò)來學(xué)習(xí)數(shù)據(jù)到潛在空間的映射,比如EBGAD[37].盡管如此,額外的網(wǎng)絡(luò)也帶來不少的計算量.如圖2所示,GANomaly[29]進一步改進生成網(wǎng)絡(luò)G,將生成網(wǎng)絡(luò)改成編碼解碼再編碼的網(wǎng)絡(luò),使得生成網(wǎng)絡(luò)能夠更好地捕獲到訓(xùn)練數(shù)據(jù)以及潛在特征空間的分布,進一步提升性能,并且取得了更好的效果.路徑頻率是隨著時間變化的,如果模型訓(xùn)練時間過長,會導(dǎo)致模型已經(jīng)不適合新的路徑分布,這樣模型的有效性就會大幅度降低,所以本文選取GANomaly作為指導(dǎo)Fuzzing的異常檢測模型,不僅因為它檢測效果好,更重要的是模型訓(xùn)練時間遠小于其他異常檢測模型.

    6 總結(jié)與展望

    隨著神經(jīng)網(wǎng)絡(luò)的發(fā)展,越來越多的人工智能模型運用于安全領(lǐng)域,比如IOT安全[38]、5G安全[39]、區(qū)塊鏈安全[40]等.本文提出了一種基于深度學(xué)習(xí)異常檢測模型的高效Fuzzing方法,并且實現(xiàn)了該工具ADFuzz.通過實驗發(fā)現(xiàn),ADFuzz的運行速度更快,覆蓋率以及漏洞挖掘的能力有所提升,并且證明了異常檢測模型持續(xù)指導(dǎo)Fuzzing朝著低頻路徑方向變異的有效性.

    下一步工作,我們將繼續(xù)提高異常檢測模型的準(zhǔn)確率,對數(shù)據(jù)作更加細膩的處理,比如在收集數(shù)據(jù)集時,統(tǒng)計路徑頻數(shù)后,只抽取大于10次的路徑作為數(shù)據(jù)集訓(xùn)練,使得模型更加穩(wěn)定準(zhǔn)確;添加低頻路徑種子生成模塊,通過異常檢測模型學(xué)習(xí)到的潛在特征,經(jīng)解碼器重建種子做種子生成,輔助當(dāng)前的變異算法,直接產(chǎn)生能夠運行低頻路徑的種子,加快變異效率以及更加準(zhǔn)確地指導(dǎo)變異方向;減少錯誤地丟棄高頻路徑能夠產(chǎn)生crash的種子,學(xué)習(xí)Untracer的方法,將模型篩選出的高頻路徑種子只運行在沒有插樁的目標(biāo)程序上,不追蹤覆蓋率信息,提高發(fā)現(xiàn)crash的能力.

    作者貢獻聲明:李航宇提出論文思路、完成工具開發(fā)和實驗、撰寫論文;方浩然提出實現(xiàn)意見;曲彥文和郭帆提出指導(dǎo)意見并修改論文.

    猜你喜歡
    測試用例覆蓋率變異
    民政部等16部門:到2025年村級綜合服務(wù)設(shè)施覆蓋率超80%
    我國全面實施種業(yè)振興行動 農(nóng)作物良種覆蓋率超過96%
    基于SmartUnit的安全通信系統(tǒng)單元測試用例自動生成
    變異危機
    變異
    基于混合遺傳算法的回歸測試用例集最小化研究
    基于噴丸隨機模型的表面覆蓋率計算方法
    變異的蚊子
    百科知識(2015年18期)2015-09-10 07:22:44
    基于依賴結(jié)構(gòu)的測試用例優(yōu)先級技術(shù)
    基于覆蓋率驅(qū)動的高性能DSP指令集驗證方法
    計算機工程(2014年6期)2014-02-28 01:28:03
    久久久精品欧美日韩精品| 女人十人毛片免费观看3o分钟| 国产av不卡久久| 少妇人妻久久综合中文| 日本-黄色视频高清免费观看| 网址你懂的国产日韩在线| 欧美日本视频| 尾随美女入室| 黄色日韩在线| 国产成人精品福利久久| 亚洲精品中文字幕在线视频 | 97在线视频观看| 亚洲欧美日韩无卡精品| 日韩欧美精品v在线| 精品久久久久久久久亚洲| 亚洲av.av天堂| av免费观看日本| 午夜福利在线观看免费完整高清在| 美女高潮的动态| 白带黄色成豆腐渣| 99久久精品一区二区三区| 免费人成在线观看视频色| a级一级毛片免费在线观看| 久久精品熟女亚洲av麻豆精品| 国产伦理片在线播放av一区| 日韩av在线免费看完整版不卡| 色吧在线观看| 高清欧美精品videossex| 免费黄网站久久成人精品| 不卡视频在线观看欧美| 久久精品国产自在天天线| 在线观看国产h片| 插阴视频在线观看视频| 黄色视频在线播放观看不卡| 69人妻影院| av在线播放精品| 亚洲婷婷狠狠爱综合网| 男男h啪啪无遮挡| 久久久久久伊人网av| 中文欧美无线码| 亚洲av中文av极速乱| 国产一区二区三区av在线| 99久久精品热视频| 一本色道久久久久久精品综合| 精品熟女少妇av免费看| 一级毛片黄色毛片免费观看视频| 国产av码专区亚洲av| 1000部很黄的大片| 欧美精品人与动牲交sv欧美| 日本午夜av视频| 观看美女的网站| 人妻系列 视频| 中文资源天堂在线| 美女主播在线视频| 一区二区三区免费毛片| 国产日韩欧美在线精品| 男人舔奶头视频| 中文精品一卡2卡3卡4更新| 2021少妇久久久久久久久久久| 日本一本二区三区精品| 人人妻人人爽人人添夜夜欢视频 | 欧美日本视频| 国产探花极品一区二区| av福利片在线观看| av在线观看视频网站免费| 97超视频在线观看视频| 国产片特级美女逼逼视频| 天堂网av新在线| 国产免费福利视频在线观看| 又粗又硬又长又爽又黄的视频| 在现免费观看毛片| 欧美老熟妇乱子伦牲交| 日韩中字成人| 美女cb高潮喷水在线观看| 真实男女啪啪啪动态图| 亚洲精品自拍成人| 午夜亚洲福利在线播放| 久久精品国产a三级三级三级| 免费看不卡的av| 国产又色又爽无遮挡免| 亚洲在久久综合| 国产伦在线观看视频一区| 精品一区二区三卡| 欧美97在线视频| 尾随美女入室| 在线天堂最新版资源| 国产精品福利在线免费观看| 搡女人真爽免费视频火全软件| 欧美少妇被猛烈插入视频| 激情五月婷婷亚洲| 久久综合国产亚洲精品| 色播亚洲综合网| 国产片特级美女逼逼视频| 欧美3d第一页| 亚洲人成网站高清观看| 久久久亚洲精品成人影院| 国产亚洲最大av| 国产 精品1| 亚洲不卡免费看| 亚洲av在线观看美女高潮| 国产一区有黄有色的免费视频| 久久精品熟女亚洲av麻豆精品| 国产日韩欧美在线精品| 日日摸夜夜添夜夜添av毛片| 欧美区成人在线视频| 欧美精品人与动牲交sv欧美| 91久久精品电影网| 国产精品一区二区性色av| 国产一区二区三区av在线| 亚洲国产欧美在线一区| av在线天堂中文字幕| 国产免费视频播放在线视频| 免费黄网站久久成人精品| 国产老妇女一区| 亚洲国产欧美在线一区| 亚洲精品中文字幕在线视频 | 免费黄色在线免费观看| 国产精品.久久久| 久久久成人免费电影| 国产成人免费无遮挡视频| 亚洲欧美中文字幕日韩二区| 韩国高清视频一区二区三区| 人妻系列 视频| 99久久人妻综合| 高清视频免费观看一区二区| 波野结衣二区三区在线| 国产 一区精品| 一边亲一边摸免费视频| 99久久精品国产国产毛片| 三级国产精品片| 一本色道久久久久久精品综合| 五月玫瑰六月丁香| 日本爱情动作片www.在线观看| 久久久久九九精品影院| 美女视频免费永久观看网站| 亚洲欧美日韩东京热| 久久久久久伊人网av| 亚洲最大成人手机在线| 免费av观看视频| 婷婷色综合大香蕉| 亚洲国产最新在线播放| 一级毛片aaaaaa免费看小| 国产永久视频网站| 男男h啪啪无遮挡| 国产日韩欧美在线精品| 国产真实伦视频高清在线观看| 亚洲国产精品成人综合色| 中文在线观看免费www的网站| 91久久精品电影网| 久久韩国三级中文字幕| 小蜜桃在线观看免费完整版高清| 一区二区av电影网| 少妇熟女欧美另类| 你懂的网址亚洲精品在线观看| 国产精品三级大全| 一级av片app| 欧美最新免费一区二区三区| av一本久久久久| 美女视频免费永久观看网站| 亚洲精品aⅴ在线观看| 国产高清国产精品国产三级 | 特级一级黄色大片| 五月玫瑰六月丁香| 婷婷色综合www| 国产69精品久久久久777片| 日本一二三区视频观看| 亚洲精品日本国产第一区| 蜜桃亚洲精品一区二区三区| 国产欧美日韩精品一区二区| 岛国毛片在线播放| 男的添女的下面高潮视频| 精品一区二区免费观看| 色视频在线一区二区三区| 国产黄色视频一区二区在线观看| 又爽又黄a免费视频| 伦精品一区二区三区| 精品人妻偷拍中文字幕| 在线观看免费高清a一片| 又黄又爽又刺激的免费视频.| 日日啪夜夜撸| 午夜福利视频精品| 国产精品伦人一区二区| 91精品一卡2卡3卡4卡| 日本黄大片高清| 国产精品秋霞免费鲁丝片| 18禁在线播放成人免费| 水蜜桃什么品种好| 又爽又黄a免费视频| 另类亚洲欧美激情| 亚洲av欧美aⅴ国产| 在线观看一区二区三区| 丰满乱子伦码专区| 亚洲国产色片| 日本三级黄在线观看| 国产 一区 欧美 日韩| 在线精品无人区一区二区三 | 亚洲丝袜综合中文字幕| 成人高潮视频无遮挡免费网站| 汤姆久久久久久久影院中文字幕| 中国三级夫妇交换| 在线观看免费高清a一片| 晚上一个人看的免费电影| 国产成人精品福利久久| 嫩草影院精品99| 久久精品国产a三级三级三级| 在线观看av片永久免费下载| 最近手机中文字幕大全| 天天一区二区日本电影三级| 啦啦啦在线观看免费高清www| 女人被狂操c到高潮| 夫妻性生交免费视频一级片| 亚洲综合色惰| 亚洲aⅴ乱码一区二区在线播放| 国产精品熟女久久久久浪| 国产精品久久久久久精品古装| 男人添女人高潮全过程视频| 高清午夜精品一区二区三区| 国产伦精品一区二区三区视频9| 成人漫画全彩无遮挡| 国产精品一二三区在线看| 另类亚洲欧美激情| 国产精品秋霞免费鲁丝片| 少妇 在线观看| 女人久久www免费人成看片| 日本猛色少妇xxxxx猛交久久| 啦啦啦啦在线视频资源| 成年女人在线观看亚洲视频 | 亚洲综合色惰| 我要看日韩黄色一级片| 国语对白做爰xxxⅹ性视频网站| 最近最新中文字幕大全电影3| 国产高清不卡午夜福利| 亚洲综合色惰| 国内精品宾馆在线| 夫妻性生交免费视频一级片| 听说在线观看完整版免费高清| 女人被狂操c到高潮| 99re6热这里在线精品视频| 熟女电影av网| 五月伊人婷婷丁香| 国产高清有码在线观看视频| 男人狂女人下面高潮的视频| 人妻制服诱惑在线中文字幕| 黄片无遮挡物在线观看| 欧美一区二区亚洲| 日韩一区二区三区影片| 看免费成人av毛片| 精品一区二区免费观看| 欧美极品一区二区三区四区| 国产真实伦视频高清在线观看| 男人爽女人下面视频在线观看| 成人免费观看视频高清| 日本爱情动作片www.在线观看| 国产欧美日韩精品一区二区| 搡女人真爽免费视频火全软件| 久久韩国三级中文字幕| 亚洲不卡免费看| 国产又色又爽无遮挡免| av.在线天堂| 久久久久久久久大av| 亚洲国产最新在线播放| 久久国内精品自在自线图片| 中文在线观看免费www的网站| 国产高清不卡午夜福利| 男人舔奶头视频| 观看美女的网站| 嘟嘟电影网在线观看| 亚洲,欧美,日韩| 中文天堂在线官网| 国产成人福利小说| 国产精品一二三区在线看| 亚洲国产高清在线一区二区三| 国产高清有码在线观看视频| 久久亚洲国产成人精品v| 国产一区亚洲一区在线观看| 久久久久久久久久久丰满| 日韩欧美精品v在线| 简卡轻食公司| 边亲边吃奶的免费视频| 国语对白做爰xxxⅹ性视频网站| 久久鲁丝午夜福利片| 久久ye,这里只有精品| 久久久a久久爽久久v久久| 国产一区二区在线观看日韩| 亚洲精品456在线播放app| 亚洲精品视频女| 久久久精品欧美日韩精品| 特大巨黑吊av在线直播| 国产一区二区三区av在线| 亚洲精品影视一区二区三区av| 99热这里只有是精品50| 丰满人妻一区二区三区视频av| 国产精品蜜桃在线观看| 久久久午夜欧美精品| 亚洲精品日本国产第一区| 国产老妇女一区| 一二三四中文在线观看免费高清| 伊人久久精品亚洲午夜| 校园人妻丝袜中文字幕| 十八禁网站网址无遮挡 | 久久久久久伊人网av| 中文字幕亚洲精品专区| 少妇被粗大猛烈的视频| 蜜桃亚洲精品一区二区三区| 精品人妻视频免费看| 亚洲精品成人av观看孕妇| 身体一侧抽搐| 中文乱码字字幕精品一区二区三区| 亚洲av二区三区四区| 色视频在线一区二区三区| 国产精品人妻久久久久久| 中文精品一卡2卡3卡4更新| 新久久久久国产一级毛片| 免费观看a级毛片全部| 国产乱来视频区| 日韩av不卡免费在线播放| 亚洲av免费高清在线观看| 伊人久久精品亚洲午夜| 国产一区亚洲一区在线观看| 韩国av在线不卡| 亚洲最大成人中文| 国产真实伦视频高清在线观看| 男男h啪啪无遮挡| 99热这里只有是精品50| 日韩欧美 国产精品| 97在线视频观看| 建设人人有责人人尽责人人享有的 | 欧美精品国产亚洲| 日本黄色片子视频| 男女边摸边吃奶| 亚洲精品日本国产第一区| 肉色欧美久久久久久久蜜桃 | 男的添女的下面高潮视频| 91精品伊人久久大香线蕉| 精品久久久噜噜| 国内少妇人妻偷人精品xxx网站| 一级二级三级毛片免费看| 亚洲久久久久久中文字幕| 色网站视频免费| 欧美另类一区| 啦啦啦啦在线视频资源| 熟女电影av网| 青春草亚洲视频在线观看| 午夜精品国产一区二区电影 | 日本色播在线视频| 嫩草影院精品99| 久热久热在线精品观看| 色综合色国产| 一本色道久久久久久精品综合| 99热全是精品| 亚洲av二区三区四区| 亚洲内射少妇av| 国产色婷婷99| 国产一区二区亚洲精品在线观看| 亚洲人成网站在线观看播放| 国产高清国产精品国产三级 | 国内少妇人妻偷人精品xxx网站| 久久久久网色| 91久久精品电影网| 少妇 在线观看| 男女边摸边吃奶| 欧美xxxx性猛交bbbb| 日韩av不卡免费在线播放| 亚洲欧美一区二区三区国产| 蜜臀久久99精品久久宅男| 51国产日韩欧美| 22中文网久久字幕| 韩国av在线不卡| 欧美亚洲 丝袜 人妻 在线| 人妻系列 视频| 亚洲真实伦在线观看| a级毛色黄片| 日日啪夜夜撸| 一级av片app| 婷婷色综合大香蕉| 99久久人妻综合| 免费av毛片视频| 国产综合懂色| 国产国拍精品亚洲av在线观看| 联通29元200g的流量卡| 91久久精品国产一区二区三区| 亚洲av中文字字幕乱码综合| 99九九线精品视频在线观看视频| 日韩,欧美,国产一区二区三区| 久久久久久久精品精品| 成年版毛片免费区| 18禁裸乳无遮挡免费网站照片| 插逼视频在线观看| 好男人在线观看高清免费视频| av在线蜜桃| 国产老妇伦熟女老妇高清| av网站免费在线观看视频| 国产美女午夜福利| 欧美亚洲 丝袜 人妻 在线| 国产69精品久久久久777片| 精品人妻视频免费看| 亚洲国产成人一精品久久久| 少妇人妻久久综合中文| 国产免费又黄又爽又色| 亚洲国产欧美人成| 日韩成人伦理影院| 日日摸夜夜添夜夜爱| .国产精品久久| 成人无遮挡网站| 免费观看av网站的网址| 在线免费十八禁| 亚洲精品自拍成人| 嘟嘟电影网在线观看| 99热国产这里只有精品6| 亚洲久久久久久中文字幕| 亚洲综合色惰| 成人一区二区视频在线观看| 综合色av麻豆| 真实男女啪啪啪动态图| 国产一区二区在线观看日韩| 简卡轻食公司| 色综合色国产| 国产av不卡久久| 亚洲国产成人一精品久久久| 日韩av不卡免费在线播放| 欧美日韩国产mv在线观看视频 | 在线播放无遮挡| 亚洲av成人精品一二三区| 国语对白做爰xxxⅹ性视频网站| 熟女av电影| 亚洲av福利一区| 高清毛片免费看| av在线蜜桃| 能在线免费看毛片的网站| 国产一区二区三区综合在线观看 | 少妇人妻 视频| 最近最新中文字幕大全电影3| 亚洲欧洲国产日韩| 97精品久久久久久久久久精品| 国产精品一区二区在线观看99| 爱豆传媒免费全集在线观看| 香蕉精品网在线| 亚洲av欧美aⅴ国产| 一级毛片我不卡| 国产探花极品一区二区| 亚洲精品国产成人久久av| 亚洲人成网站高清观看| 久久久久久伊人网av| 国产爽快片一区二区三区| 亚洲真实伦在线观看| 好男人在线观看高清免费视频| 久久久久久久久久久免费av| 亚洲av电影在线观看一区二区三区 | 搞女人的毛片| 夫妻午夜视频| 极品少妇高潮喷水抽搐| av在线观看视频网站免费| 91久久精品国产一区二区成人| 熟女av电影| 视频中文字幕在线观看| 色网站视频免费| 一个人观看的视频www高清免费观看| 麻豆成人av视频| 久久97久久精品| 九九在线视频观看精品| 免费黄色在线免费观看| 久久精品久久久久久噜噜老黄| 老女人水多毛片| 高清av免费在线| 在线免费十八禁| av.在线天堂| 最后的刺客免费高清国语| 黄色日韩在线| 简卡轻食公司| av国产免费在线观看| 乱码一卡2卡4卡精品| 日韩av免费高清视频| 人人妻人人爽人人添夜夜欢视频 | av免费观看日本| 中文字幕人妻熟人妻熟丝袜美| 啦啦啦在线观看免费高清www| 97超碰精品成人国产| 国产成人免费无遮挡视频| 亚洲第一区二区三区不卡| 久久人人爽人人片av| 男女下面进入的视频免费午夜| 亚洲人成网站高清观看| 欧美性感艳星| 精品国产露脸久久av麻豆| 水蜜桃什么品种好| 久久精品久久久久久噜噜老黄| 99热这里只有是精品50| 一级二级三级毛片免费看| 欧美最新免费一区二区三区| 欧美xxxx性猛交bbbb| 日韩伦理黄色片| 欧美一级a爱片免费观看看| 亚洲国产欧美人成| 色综合色国产| av卡一久久| 久久女婷五月综合色啪小说 | 国产爽快片一区二区三区| 国产精品无大码| 欧美3d第一页| 国产黄频视频在线观看| 精品人妻熟女av久视频| 我的老师免费观看完整版| 亚洲va在线va天堂va国产| 国产高清不卡午夜福利| 好男人视频免费观看在线| 精品酒店卫生间| 色播亚洲综合网| 国产白丝娇喘喷水9色精品| 国精品久久久久久国模美| 看免费成人av毛片| 亚洲av一区综合| 国产精品人妻久久久久久| 2018国产大陆天天弄谢| videos熟女内射| 高清日韩中文字幕在线| 在线观看人妻少妇| 久久99热这里只有精品18| 亚洲精品乱码久久久v下载方式| 少妇人妻 视频| 亚洲不卡免费看| 日韩伦理黄色片| 在线亚洲精品国产二区图片欧美 | 啦啦啦在线观看免费高清www| 国产免费又黄又爽又色| 在线观看三级黄色| 黄色欧美视频在线观看| 又粗又硬又长又爽又黄的视频| 搞女人的毛片| 色婷婷久久久亚洲欧美| 美女主播在线视频| 久久精品熟女亚洲av麻豆精品| 一区二区三区四区激情视频| 91久久精品电影网| 九九爱精品视频在线观看| 国产成人福利小说| 成人亚洲精品一区在线观看 | 国产一级毛片在线| 又粗又硬又长又爽又黄的视频| 亚洲欧美日韩东京热| 亚洲综合精品二区| 国内精品美女久久久久久| 一本一本综合久久| 成年女人看的毛片在线观看| 一区二区三区免费毛片| 大香蕉久久网| 日韩强制内射视频| 午夜视频国产福利| 一级片'在线观看视频| 久久这里有精品视频免费| 亚洲精品国产色婷婷电影| 久久亚洲国产成人精品v| 少妇裸体淫交视频免费看高清| 十八禁网站网址无遮挡 | 国产精品一及| 中国美白少妇内射xxxbb| 春色校园在线视频观看| 亚洲精品日韩av片在线观看| 大又大粗又爽又黄少妇毛片口| 国产av国产精品国产| 午夜福利网站1000一区二区三区| 国产精品久久久久久久久免| 国产黄a三级三级三级人| 色综合色国产| 久久久久国产精品人妻一区二区| 亚洲av.av天堂| 久久久久久久久久成人| 成年人午夜在线观看视频| 美女主播在线视频| 精品久久久久久久人妻蜜臀av| 国模一区二区三区四区视频| 中文欧美无线码| 中文字幕久久专区| av卡一久久| 国产亚洲5aaaaa淫片| 最近最新中文字幕大全电影3| 校园人妻丝袜中文字幕| 久久久久久九九精品二区国产| 久久精品国产a三级三级三级| 亚洲av电影在线观看一区二区三区 | 在线观看美女被高潮喷水网站| 日本免费在线观看一区| 欧美 日韩 精品 国产| 国国产精品蜜臀av免费| 九九在线视频观看精品| 91精品国产九色| 九色成人免费人妻av| 亚洲成色77777| 美女高潮的动态| 少妇的逼好多水| 老司机影院毛片| 亚洲成人一二三区av| 精品久久久久久久久av| 欧美最新免费一区二区三区| 热re99久久精品国产66热6| 午夜激情久久久久久久| 久久精品国产亚洲av涩爱| 亚洲婷婷狠狠爱综合网| 我的老师免费观看完整版| 青春草国产在线视频| 欧美bdsm另类| 老女人水多毛片| 久久久国产一区二区| 久久亚洲国产成人精品v| 啦啦啦中文免费视频观看日本| 网址你懂的国产日韩在线| 日本欧美国产在线视频| 日日啪夜夜撸| 久久久久久久国产电影| 免费在线观看成人毛片| 亚洲国产av新网站| 少妇的逼水好多| 国精品久久久久久国模美| 欧美日韩一区二区视频在线观看视频在线 | 最近手机中文字幕大全| 天天躁夜夜躁狠狠久久av|