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

    基于圖結(jié)構(gòu)源代碼切片的智能化漏洞檢測(cè)系統(tǒng)

    2021-11-10 13:00:06鄒德清李響黃敏桓宋翔李浩李偉明
    關(guān)鍵詞:源代碼漏洞切片

    鄒德清,李響,黃敏桓,宋翔,李浩,李偉明

    基于圖結(jié)構(gòu)源代碼切片的智能化漏洞檢測(cè)系統(tǒng)

    鄒德清1,李響2,黃敏桓2,宋翔3,李浩3,李偉明4

    (1.華中科技大學(xué)網(wǎng)絡(luò)空間安全學(xué)院,湖北 武漢 430074;2.信息系統(tǒng)安全技術(shù)重點(diǎn)實(shí)驗(yàn)室,北京 100101;3.華中科技大學(xué)軟件學(xué)院,湖北 武漢 430074;4.華中科技大學(xué)網(wǎng)絡(luò)與計(jì)算中心,湖北 武漢 430074)

    針對(duì)智能化漏洞檢測(cè),從源代碼程序依賴圖中根據(jù)漏洞特征提取圖結(jié)構(gòu)源代碼切片,將圖結(jié)構(gòu)切片信息表征后利用圖神經(jīng)網(wǎng)絡(luò)模型進(jìn)行漏洞檢測(cè)工作。實(shí)現(xiàn)了切片級(jí)的漏洞檢測(cè),并在代碼行級(jí)預(yù)測(cè)漏洞行位置。為了驗(yàn)證系統(tǒng)的有效性,分別與靜態(tài)漏洞檢測(cè)系統(tǒng)、基于序列化文本信息和基于圖結(jié)構(gòu)化信息的漏洞檢測(cè)系統(tǒng)做比較,實(shí)驗(yàn)結(jié)果表明,所提系統(tǒng)在漏洞檢測(cè)能力上有較高準(zhǔn)確性,并且在漏洞代碼行預(yù)測(cè)工作上有較好表現(xiàn)。

    漏洞檢測(cè);圖結(jié)構(gòu);代碼切片;深度學(xué)習(xí)

    1 引言

    隨著信息化進(jìn)程不斷加快,社會(huì)各個(gè)方面智能化程度越來越高,軟件在生活、生產(chǎn)、學(xué)習(xí)等方面的應(yīng)用越來越多,軟件安全保障的需求量也隨之增大,軟件安全問題日益突顯。其中,軟件源代碼漏洞檢測(cè)的高效性和準(zhǔn)確性急需提高以滿足社會(huì)需求。例如,公民個(gè)人信息與財(cái)產(chǎn)大量通過網(wǎng)絡(luò)傳輸與處理,為了保證公民信息與財(cái)產(chǎn)安全而帶來的源代碼漏洞檢測(cè)的工作量十分巨大,而依賴于軟件開發(fā)相關(guān)人員人工完成無法滿足需求,此外,人工檢測(cè)軟件源代碼漏洞受到多種因素影響,無法保證漏洞檢測(cè)工作的準(zhǔn)確性。所以,需要提高軟件漏洞檢測(cè)工作的智能化程度以保證其高效性和準(zhǔn)確性。

    目前,代碼漏洞檢測(cè)系統(tǒng)的研究主要包括傳統(tǒng)漏洞檢測(cè)方法和基于機(jī)器學(xué)習(xí)的漏洞檢測(cè)方法。傳統(tǒng)的漏洞檢測(cè)方法主要有基于規(guī)則的漏洞檢測(cè)方法和基于相似性的漏洞檢測(cè)方法,基于規(guī)則的漏洞檢測(cè)方法對(duì)于規(guī)則外漏洞存在較高漏報(bào)率,基于相似性的漏洞檢測(cè)方法局限性較大。傳統(tǒng)的將機(jī)器學(xué)習(xí)應(yīng)用于代碼漏洞檢測(cè)的方法,漏洞數(shù)據(jù)的特征依賴于領(lǐng)域?qū)<叶x,需要花費(fèi)大量人工投入,也正由于漏洞數(shù)據(jù)特征需要人工定義,對(duì)于特征的定義存在不可避免的缺失和誤差,進(jìn)而影響漏洞檢測(cè)系統(tǒng)的準(zhǔn)確率?;谏疃葘W(xué)習(xí)的漏洞檢測(cè)方法,由神經(jīng)網(wǎng)絡(luò)模型自動(dòng)學(xué)習(xí)漏洞數(shù)據(jù)特征,可以避免大量人工投入,同時(shí)神經(jīng)網(wǎng)絡(luò)可以從更深層次分析漏洞數(shù)據(jù)特征,發(fā)現(xiàn)人類未定義的代碼結(jié)構(gòu)特征,從而有效降低漏洞檢測(cè)系統(tǒng)的漏報(bào)率和誤報(bào)率。

    目前基于神經(jīng)網(wǎng)絡(luò)的漏洞檢測(cè)方法的研究工作有以下兩個(gè)方面。一方面,所使用的漏洞數(shù)據(jù)集主要是漏洞相關(guān)序列化代碼或者經(jīng)過一定處理的漏洞代碼片段,提供給神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)模型的漏洞數(shù)據(jù)集只有相關(guān)代碼的文本信息,對(duì)于漏洞代碼的依賴和調(diào)用信息沒有很好地應(yīng)用于預(yù)測(cè)源代碼漏洞。模型得到的信息十分有限,并不能全面地獲取漏洞特征,準(zhǔn)確判斷漏洞位置。另一方面,采用圖結(jié)構(gòu)表示源代碼漏洞數(shù)據(jù)可以較好地表達(dá)漏洞特征信息[1],已有相關(guān)研究將圖結(jié)構(gòu)化源代碼漏洞數(shù)據(jù)應(yīng)用到漏洞檢測(cè)工作,但主要存在如下問題。

    問題1:采用的圖結(jié)構(gòu)化數(shù)據(jù)中包含較多與漏洞無關(guān)的源代碼信息,這些信息作為神經(jīng)網(wǎng)絡(luò)模型的輸入,最終影響漏洞檢測(cè)系統(tǒng)的高效性和準(zhǔn)確性。

    問題2:有關(guān)圖神經(jīng)網(wǎng)絡(luò)模型應(yīng)用于源代碼漏洞檢測(cè)領(lǐng)域的相關(guān)研究工作在漏洞檢測(cè)粒度方面仍存在較大提升空間,不能精確定位漏洞位置,只能在較粗粒度上判斷漏洞位置,對(duì)于漏洞的定位停留在文件級(jí)或者函數(shù)級(jí)。

    本文主要構(gòu)建了一個(gè)基于圖結(jié)構(gòu)化源代碼切片的智能化漏洞檢測(cè)系統(tǒng)。首先,系統(tǒng)在源代碼漏洞數(shù)據(jù)集的預(yù)處理中采用代碼切片技術(shù),保證不會(huì)向神經(jīng)網(wǎng)絡(luò)模型輸入過多與源代碼漏洞無關(guān)的信息以提高系統(tǒng)的高效性和準(zhǔn)確性;其次,系統(tǒng)可以在切片級(jí)別預(yù)測(cè)源代碼漏洞并在代碼行級(jí)定位漏洞位置,實(shí)現(xiàn)細(xì)粒度的源代碼漏洞預(yù)測(cè)。

    2 相關(guān)工作

    2.1 傳統(tǒng)的漏洞檢測(cè)的相關(guān)工作

    傳統(tǒng)的漏洞檢測(cè)方法主要有基于規(guī)則的漏洞檢測(cè)方法和基于相似性的漏洞檢測(cè)方法。基于規(guī)則的漏洞檢測(cè)方法主要依賴定義的漏洞規(guī)則,漏洞規(guī)則的構(gòu)建主要采用領(lǐng)域?qū)<胰斯ざx和編寫程序從大量已知漏洞數(shù)據(jù)中總結(jié)兩種方法[2]。首先,這種檢測(cè)方法獲取漏洞規(guī)則的過程需要投入大量人力,資源浪費(fèi)嚴(yán)重;其次,這種檢測(cè)方法的準(zhǔn)確率基本取決于規(guī)則的完整性和正確性,而這種方法定義的漏洞規(guī)則的完整性和正確性很難得到保證。基于相似性的漏洞檢測(cè)方法主要從代碼復(fù)用的風(fēng)險(xiǎn)出發(fā)考慮可能觸發(fā)的漏洞,局限性十分明顯,對(duì)于不是代碼復(fù)用引起的漏洞的漏報(bào)率很高[3]。例如,Xiao[4]等設(shè)計(jì)的MVP漏洞檢測(cè)系統(tǒng)通過從漏洞樣本數(shù)據(jù)中提取源代碼漏洞的函數(shù)特征及其修補(bǔ)函數(shù)的特征,將提取的特征與檢測(cè)的目標(biāo)函數(shù)匹配,進(jìn)而在函數(shù)級(jí)別預(yù)測(cè)源代碼漏洞,對(duì)于其已獲取函數(shù)特征的漏洞有較好的檢測(cè)效果,但是對(duì)于未從漏洞數(shù)據(jù)中提取到漏洞特征的相關(guān)漏洞沒有實(shí)現(xiàn)有效檢測(cè)。

    2.2 基于機(jī)器學(xué)習(xí)的漏洞檢測(cè)的相關(guān)工作

    根據(jù)是否需要專家定義漏洞特征,基于機(jī)器學(xué)習(xí)的漏洞檢測(cè)研究工作主要分為兩種:一種是采用由專家定義漏洞特征的模型[5-8];另一種是采用不依賴專家定義漏洞特征的深度學(xué)習(xí)模型[2,3,9-21]。一方面,采用由專家定義漏洞特征的模型的工作,先由專家定義漏洞特征,然后采用機(jī)器學(xué)習(xí)模型從輸入數(shù)據(jù)中提取特征相關(guān)信息分析學(xué)習(xí),最后達(dá)到檢測(cè)源代碼漏洞的目的。這種方法對(duì)于漏洞檢測(cè)的效果主要依賴于專家定義的漏洞特征,具有較高的人工成本。此外,模型對(duì)于輸入的漏洞相關(guān)數(shù)據(jù),除了定義的漏洞特征相關(guān)信息外的其他漏洞信息沒有得到充分利用,從而影響漏洞檢測(cè)的準(zhǔn)確性。另一方面,采用深度學(xué)習(xí)模型的漏洞檢測(cè)工作,不需要由專家定義漏洞特征,既減少了人工參與,又可以使模型學(xué)習(xí)更深層次的漏洞特征,避免了人工定義特征帶來的信息損失。根據(jù)采用的漏洞數(shù)據(jù)的結(jié)構(gòu)不同,利用深度學(xué)習(xí)模型進(jìn)行漏洞檢測(cè)的工作主要有兩類:一類是漏洞源代碼數(shù)據(jù)采用序列化文本形式表示[2-3,9-18];另一類是采用圖結(jié)構(gòu)化的漏洞源代碼數(shù)據(jù)[19-21]。采用序列化文本形式表示漏洞源代碼數(shù)據(jù)的相關(guān)研究工作主要是將漏洞源代碼經(jīng)過預(yù)處理,得到與漏洞相關(guān)的源代碼切片、特征等信息,再將得到源代碼文本信息經(jīng)過表征后作為深度學(xué)習(xí)模型的輸入。例如,陳肇炫[2]等設(shè)計(jì)的Astor系統(tǒng)基于源代碼結(jié)構(gòu)表征實(shí)現(xiàn)了切片粒度的漏洞檢測(cè)工作;Li[3,10~11]等設(shè)計(jì)的VulDeePecker系統(tǒng)和VulDeePecker系統(tǒng)采用深度學(xué)習(xí)模型分別實(shí)現(xiàn)了函數(shù)調(diào)用類漏洞的檢測(cè)工作和多種類型漏洞的檢測(cè)工作,其設(shè)計(jì)的SySeVR系統(tǒng)和VulDeeLocator系統(tǒng)分別實(shí)現(xiàn)了切片級(jí)和代碼行級(jí)的漏洞檢測(cè)工作。這類研究在表征漏洞相關(guān)源代碼信息時(shí),對(duì)源代碼結(jié)構(gòu)信息有所缺失。為了克服模型對(duì)源代碼結(jié)構(gòu)信息學(xué)習(xí)不完整的問題,將漏洞源代碼數(shù)據(jù)采用圖結(jié)構(gòu)表示應(yīng)用于機(jī)器學(xué)習(xí)模型的訓(xùn)練可以更完整地表征源代碼的結(jié)構(gòu)信息。例如,Wang[19]等提出一個(gè)以門控圖神經(jīng)網(wǎng)絡(luò)(GGNN,gated graph sequence neural networks)為基礎(chǔ)的漏洞數(shù)據(jù)收集和漏洞檢測(cè)系統(tǒng),捕捉多種源代碼漏洞關(guān)系,提高漏洞檢測(cè)系統(tǒng)的準(zhǔn)確性;Duan[20]等設(shè)計(jì)的VulSniper系統(tǒng)將源代碼表示為代碼屬性圖,將代碼屬性圖表征為向量后輸入注意力神經(jīng)網(wǎng)絡(luò)模型以實(shí)現(xiàn)判斷源代碼是否存在漏洞;Zhou[21]等設(shè)計(jì)的Devign系統(tǒng)提取多種圖表示的源代碼特征用于構(gòu)造圖結(jié)構(gòu)化數(shù)據(jù)集并應(yīng)用于門控圖神經(jīng)網(wǎng)絡(luò),創(chuàng)新性地增加了Conv層根據(jù)節(jié)點(diǎn)特征篩選節(jié)點(diǎn),Devign系統(tǒng)實(shí)現(xiàn)了在函數(shù)級(jí)別預(yù)測(cè)源代碼漏洞。但以上研究工作在源代碼漏洞預(yù)測(cè)的粒度局限于函數(shù)級(jí),無法準(zhǔn)確定位漏洞存在的代碼行。本文設(shè)計(jì)的采用圖結(jié)構(gòu)化的代碼切片數(shù)據(jù)訓(xùn)練神經(jīng)網(wǎng)絡(luò)模型,使模型可以學(xué)習(xí)到更完整的源代碼結(jié)構(gòu)信息,并且利用模型中的注意力機(jī)制定位漏洞代碼行,提供更細(xì)粒度的漏洞檢測(cè)信息。

    3 智能化漏洞檢測(cè)系統(tǒng)設(shè)計(jì)

    本文的目標(biāo)是設(shè)計(jì)一個(gè)漏洞檢測(cè)系統(tǒng),致力于源代碼運(yùn)行時(shí)的數(shù)據(jù)和控制依賴關(guān)系的表征和學(xué)習(xí),并在低誤報(bào)率和低漏報(bào)率的基礎(chǔ)上實(shí)現(xiàn)漏洞智能檢測(cè)并預(yù)測(cè)漏洞觸發(fā)行。

    本節(jié)介紹系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)。圖1是所提漏洞檢測(cè)系統(tǒng)整體流程,首先獲取漏洞候選圖結(jié)構(gòu)化源代碼切片的過程,之后訓(xùn)練神經(jīng)網(wǎng)絡(luò)模型的工作流程。

    圖1 漏洞檢測(cè)系統(tǒng)整體流程

    Figure 1 Vulnerability detection Process of the system

    3.1 漏洞候選源代碼圖結(jié)構(gòu)化切片的獲取

    首先獲取源代碼對(duì)應(yīng)的程序依賴圖(PDG,program dependence graph),之后從源代碼PDG中獲取漏洞候選源代碼圖結(jié)構(gòu)化切片,最后,在圖結(jié)構(gòu)切片中標(biāo)記漏洞信息。

    (1)獲取源代碼PDG

    檢測(cè)系統(tǒng)的輸入為漏洞檢測(cè)目標(biāo)源代碼,分析程序源代碼的控制流、數(shù)據(jù)流等信息,得到以源代碼中函數(shù)為單位的PDG。對(duì)函數(shù)級(jí)PDG進(jìn)行信息的完善,補(bǔ)充函數(shù)中調(diào)用其他函數(shù)的相關(guān)信息,使函數(shù)運(yùn)行時(shí)發(fā)生調(diào)用函數(shù)動(dòng)作的相關(guān)信息可以追蹤,實(shí)現(xiàn)跨函數(shù)的PDG。獲得PDG中一個(gè)節(jié)點(diǎn)對(duì)應(yīng)的是源程序中一行代碼(節(jié)點(diǎn)中包含關(guān)于本節(jié)點(diǎn)源代碼語句的相關(guān)信息:語句類型,節(jié)點(diǎn)ID,在源程序中的位置,所屬函數(shù));PDG中還包含函數(shù)運(yùn)行時(shí)的控制流和數(shù)據(jù)流關(guān)系以及節(jié)點(diǎn)之間邊的關(guān)系表示。

    (2)獲取漏洞候選圖結(jié)構(gòu)切片

    根據(jù)4種漏洞語法特征:(庫/API函數(shù)調(diào)用、數(shù)組使用、指針使用和表達(dá)式定義),從上一步獲得的PDG中確定候選漏洞節(jié)點(diǎn),即節(jié)點(diǎn)對(duì)應(yīng)的代碼語句中如果符合漏洞語法特征,則確定為候選漏洞節(jié)點(diǎn)。根據(jù)候選漏洞節(jié)點(diǎn)從PDG中截取與候選漏洞節(jié)點(diǎn)存在數(shù)據(jù)依賴或者控制依賴關(guān)系的節(jié)點(diǎn)和相應(yīng)的邊構(gòu)成漏洞候選圖結(jié)構(gòu)化切片。例如,某個(gè)節(jié)點(diǎn)對(duì)應(yīng)的源代碼語句中存在指針使用,這個(gè)節(jié)點(diǎn)就會(huì)被確定為漏洞候選節(jié)點(diǎn),從這個(gè)節(jié)點(diǎn)出發(fā),尋找與其存在控制或者數(shù)據(jù)依賴關(guān)系的節(jié)點(diǎn),從上一步得到的PDG中提取出與本節(jié)點(diǎn)相關(guān)的節(jié)點(diǎn)集,同時(shí)提取出節(jié)點(diǎn)集所包含的邊組成一個(gè)PDG子圖,這個(gè)子圖本質(zhì)上就是源程序的一個(gè)切片,子圖中所包含的代碼行集合就是源程序中代碼行的一個(gè)子集,這個(gè)PDG子圖就是漏洞候選源代碼切片之一。

    (3)在圖結(jié)構(gòu)切片中標(biāo)記漏洞信息

    為了訓(xùn)練模型,系統(tǒng)的輸入源程序包含有漏洞的源程序及其修補(bǔ)程序和無漏洞的源程序,源程序已經(jīng)標(biāo)注是否有漏洞,有漏洞源程序已經(jīng)標(biāo)注漏洞觸發(fā)代碼行。上一步得到的漏洞候選源代碼切片包含的節(jié)點(diǎn)中,如果存在節(jié)點(diǎn)對(duì)應(yīng)的代碼行有標(biāo)注的漏洞觸發(fā)代碼行,則這個(gè)節(jié)點(diǎn)標(biāo)注為漏洞觸發(fā)節(jié)點(diǎn),節(jié)點(diǎn)所屬的切片標(biāo)注為存在漏洞的代碼切片。

    3.2 神經(jīng)網(wǎng)絡(luò)模型

    圖2為模型訓(xùn)練和測(cè)試階段,輸入分別為訓(xùn)練集數(shù)據(jù)或者測(cè)試集數(shù)據(jù),首先表征漏洞候選圖結(jié)構(gòu)切片,將圖信息表征為可以作為神經(jīng)網(wǎng)絡(luò)模型學(xué)習(xí)的數(shù)據(jù),之后將表征后的信息輸入神經(jīng)網(wǎng)絡(luò)模型,輸出完成訓(xùn)練的神經(jīng)網(wǎng)絡(luò)模型;測(cè)試部分則輸出測(cè)試集數(shù)據(jù)的漏洞檢測(cè)及漏洞行預(yù)測(cè)結(jié)果。

    3.2.1 漏洞候選圖結(jié)構(gòu)切片表征信息

    (1)映射代碼中的自定義符號(hào)

    訓(xùn)練集和測(cè)試集中輸入的圖結(jié)構(gòu)切片中,包含的代碼文本信息經(jīng)過表征后才能輸入神經(jīng)網(wǎng)絡(luò)模型進(jìn)行測(cè)試和訓(xùn)練。這些代碼文本信息需要表征為向量,這個(gè)過程采用相關(guān)的神經(jīng)網(wǎng)絡(luò)模型完成。而輸入數(shù)據(jù)集的代碼中包含大量軟件工程師自定義的符號(hào),如自定義的變量名、函數(shù)名等。這些人工自定義的符號(hào)與漏洞無關(guān),在表征時(shí)會(huì)被視為唯一的值,對(duì)于將代碼文本表征為向量的神經(jīng)網(wǎng)絡(luò)模型會(huì)影響其準(zhǔn)確性。所以,自定義的符號(hào)將會(huì)被映射為統(tǒng)一的符號(hào)代替。例如,變量將被映射為VAR1,VAR2……函數(shù)名將被映射為FUN1,F(xiàn)UN2……。在不同的切片中出現(xiàn)的變量、函數(shù)等可能會(huì)被映射為相同的符號(hào)代替,以此避免無限制的自定義變量對(duì)將代碼文本映射為向量準(zhǔn)確性的影響。

    圖2 模型訓(xùn)練和測(cè)試階段

    Figure 2 Model training and testphase

    (2)將映射后的代碼表征為向量

    首先,將代碼文本中的具體代碼行分為一個(gè)符號(hào)集。例如,“int VAR1,VAR2;”會(huì)被分為“int”“VAR1”“,”“VAR2”“;”。之后,為了保證每行代碼轉(zhuǎn)換后的向量長(zhǎng)度一致,將對(duì)一行代碼所對(duì)應(yīng)的符號(hào)集進(jìn)行補(bǔ)全或者截?cái)嗖僮?,使一行代碼對(duì)應(yīng)的符號(hào)集所包含的符號(hào)數(shù)量保持一致,從而保證每一行代碼轉(zhuǎn)換為向量后的長(zhǎng)度一致。本文采用Word2Vec工具將符號(hào)集轉(zhuǎn)換為向量,Word2Vec在經(jīng)過訓(xùn)練后,可以將符號(hào)一一對(duì)應(yīng)為相應(yīng)的向量,滿足本文系統(tǒng)的需要。

    (3)表征圖結(jié)構(gòu)切片

    輸入神經(jīng)網(wǎng)絡(luò)模型的圖信息主要包括切片的圖結(jié)構(gòu)信息和節(jié)點(diǎn)中的信息。節(jié)點(diǎn)對(duì)應(yīng)的代碼行內(nèi)容已經(jīng)表征為向量。切片的圖結(jié)構(gòu)信息包括:節(jié)點(diǎn)的唯一標(biāo)識(shí)信息、節(jié)點(diǎn)所屬的圖標(biāo)識(shí)信息、節(jié)點(diǎn)間關(guān)系的標(biāo)識(shí)信息、圖的分類標(biāo)識(shí)信息。節(jié)點(diǎn)中的信息包括:節(jié)點(diǎn)對(duì)應(yīng)的代碼行內(nèi)容和節(jié)點(diǎn)對(duì)應(yīng)的代碼行在源程序中的位置,

    輸入模型的數(shù)據(jù)包含多個(gè)圖(即圖結(jié)構(gòu)化切片)和多個(gè)圖對(duì)應(yīng)的許多節(jié)點(diǎn),這些節(jié)點(diǎn)的信息將一同輸入模型,因此需要對(duì)節(jié)點(diǎn)唯一標(biāo)識(shí),并標(biāo)識(shí)節(jié)點(diǎn)所屬的圖,即當(dāng)前節(jié)點(diǎn)屬于哪一個(gè)圖。節(jié)點(diǎn)的唯一標(biāo)識(shí)信息將映射為節(jié)點(diǎn)輸入模型的排序,如節(jié)點(diǎn)a的相關(guān)描述信息在輸入時(shí)排序?yàn)?,則表示節(jié)點(diǎn)a的唯一標(biāo)識(shí)為1。

    節(jié)點(diǎn)所屬的圖標(biāo)識(shí)信息將采用圖的唯一標(biāo)識(shí)對(duì)節(jié)點(diǎn)一一標(biāo)識(shí),如節(jié)點(diǎn)的圖標(biāo)識(shí)信息文件中第1行的信息為“3”,則節(jié)點(diǎn)標(biāo)識(shí)為1的節(jié)點(diǎn)屬于圖標(biāo)識(shí)為3的圖。

    輸入模型的所有圖中節(jié)點(diǎn)之間的關(guān)系也是統(tǒng)一標(biāo)識(shí)。節(jié)點(diǎn)之間關(guān)系的標(biāo)識(shí)采用鄰接矩陣的稀疏矩陣的簡(jiǎn)單表示形式,即采用邊對(duì)應(yīng)的兩個(gè)節(jié)點(diǎn)的唯一標(biāo)識(shí)來表示兩個(gè)節(jié)點(diǎn)之間的關(guān)系。例如,節(jié)點(diǎn)標(biāo)識(shí)對(duì)[1,2]表示:節(jié)點(diǎn)標(biāo)識(shí)1和節(jié)點(diǎn)標(biāo)識(shí)2所屬的圖中存在一條由節(jié)點(diǎn)1指向節(jié)點(diǎn)2的邊,節(jié)點(diǎn)所屬的圖即表明邊所屬 的圖。

    輸入模型的所有圖中節(jié)點(diǎn)對(duì)應(yīng)的代碼行將一起輸入模型。節(jié)點(diǎn)對(duì)應(yīng)的代碼行內(nèi)容被表征為向量,代碼行向量輸入的順序和節(jié)點(diǎn)的圖標(biāo)識(shí)順序一致,節(jié)點(diǎn)1對(duì)應(yīng)的代碼行向量輸入時(shí)排序?yàn)?。

    神經(jīng)網(wǎng)絡(luò)模型每次輸入包含多個(gè)圖的樣本,每次輸入的圖結(jié)構(gòu)切片統(tǒng)一編碼,每一個(gè)圖結(jié)構(gòu)切片有唯一的鍵值,圖的分類標(biāo)識(shí)輸入的順序即代表圖的唯一標(biāo)識(shí)鍵值。其中,標(biāo)識(shí)為“2”代表對(duì)應(yīng)的圖結(jié)構(gòu)切片中存在漏洞節(jié)點(diǎn),標(biāo)識(shí)為“1”代表對(duì)應(yīng)的圖結(jié)構(gòu)切片中沒有漏洞節(jié)點(diǎn)。例如,輸入順序?yàn)?的圖結(jié)構(gòu)切片分類標(biāo)識(shí)為“2”,表示圖唯一標(biāo)識(shí)為1的圖結(jié)構(gòu)切片存在漏洞節(jié)點(diǎn)。

    節(jié)點(diǎn)對(duì)應(yīng)的代碼行在源程序的位置信息的排序順序和節(jié)點(diǎn)的唯一標(biāo)識(shí)一致,可以根據(jù)節(jié)點(diǎn)的標(biāo)識(shí)信息映射到節(jié)點(diǎn)對(duì)應(yīng)的代碼行在源程序中的位置。

    總體來說,節(jié)點(diǎn)和圖的相關(guān)信息輸入順序即表示其唯一標(biāo)識(shí),如節(jié)點(diǎn)a的某個(gè)信息輸入時(shí)的排序?yàn)?,則節(jié)點(diǎn)a所有相關(guān)信息在輸入的排序均為1,圖亦是如此。

    3.2.2 神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練

    圖3為本文系統(tǒng)采用的神經(jīng)網(wǎng)絡(luò)模型架構(gòu),將圖結(jié)構(gòu)切片表征后作為神經(jīng)網(wǎng)絡(luò)模型的輸入,圖結(jié)構(gòu)切片中的每一個(gè)節(jié)點(diǎn)可以映射到源代碼中的一行代碼。

    模型采用全局池化和分層池化結(jié)合的思想,模型全局由3個(gè)“圖卷積?池化”模塊組成,每個(gè)模塊中包含圖卷積層和池化層。每個(gè)模塊池化之后的節(jié)點(diǎn)特征經(jīng)過ReadOut層聚合最終在線性層(MLP)連接進(jìn)行圖分類操作。本文系統(tǒng)采用3個(gè)“圖卷積?池化”模塊組成的主要原因是,3個(gè)模塊的漏洞檢測(cè)效果好于一個(gè)模塊或者兩個(gè)模塊組成的神經(jīng)網(wǎng)絡(luò)模型,在3個(gè)模塊的基礎(chǔ)上繼續(xù)增加組成模塊數(shù)量在漏洞檢測(cè)效果上的提升并不明顯,但是效率會(huì)隨著模塊數(shù)量的增加而逐漸降低。

    圖3 神經(jīng)網(wǎng)絡(luò)模型架構(gòu)

    Figure 3 Neural network model architecture

    圖卷積層:采用自注意力機(jī)制(self- attention),本模型中的自注意力機(jī)制是一種全局圖注意力機(jī)制(global graph attention),全局圖注意力機(jī)制即考慮全圖所有節(jié)點(diǎn)的影響,計(jì)算相鄰節(jié)點(diǎn)之間的影響,經(jīng)過多次計(jì)算后,使每個(gè)節(jié)點(diǎn)獲取圖的全局幾何結(jié)構(gòu)。圖卷積層由多次卷積操作組成,每一次卷積操作每一個(gè)節(jié)點(diǎn)都從圖中與自己相鄰的節(jié)點(diǎn)獲取其信息并據(jù)此更新自身信息,經(jīng)過多次卷積操作后,每一個(gè)節(jié)點(diǎn)可以有效感知整個(gè)圖中的所有關(guān)系和節(jié)點(diǎn)信息并完成自身節(jié)點(diǎn)信息的更新。

    池化層:根據(jù)上一次卷積層計(jì)算后更新的各個(gè)節(jié)點(diǎn)的信息篩選出對(duì)于最終漏洞預(yù)測(cè)影響較大的節(jié)點(diǎn),篩選出的節(jié)點(diǎn)組成的子圖將作為下一次循環(huán)的輸入,本次池化層計(jì)算篩選的結(jié)果會(huì)經(jīng)過ReadOut層讀出,并作為最終圖分類計(jì)算的考慮因素之一。

    經(jīng)過多次卷積、池化和ReadOut循環(huán)后,篩選后的節(jié)點(diǎn)越來越少,對(duì)于最終漏洞預(yù)測(cè)的影響越來越大,但是之前被篩選的節(jié)點(diǎn)信息并不會(huì)丟棄,而是通過每次ReadOut保存下來,經(jīng)過一定權(quán)重計(jì)算作為圖分類的依據(jù)之一。同樣,經(jīng)過多次篩選后的節(jié)點(diǎn)會(huì)更大可能預(yù)測(cè)為漏洞節(jié)點(diǎn)。以上每次ReadOut之后的結(jié)果輸入最終的多層感知機(jī)計(jì)算后做出圖分類結(jié)果。

    ReadOut之后篩選出的節(jié)點(diǎn)將結(jié)合圖分類結(jié)果,則篩選出的節(jié)點(diǎn)對(duì)應(yīng)到屬于該圖的節(jié)點(diǎn),并對(duì)應(yīng)到節(jié)點(diǎn)對(duì)應(yīng)的代碼行,即漏洞代碼行。

    3.3 神經(jīng)網(wǎng)絡(luò)模型測(cè)試

    模型的測(cè)試階段將一組源代碼數(shù)據(jù)經(jīng)過分析后,生成相應(yīng)的PDG,根據(jù)4類關(guān)注點(diǎn)提取出圖結(jié)構(gòu)切片,然后映射切片中的代碼,之后表征圖結(jié)構(gòu)切片,得到的數(shù)據(jù)作為完成訓(xùn)練模型的輸入,分析模型對(duì)于輸入數(shù)據(jù)的判斷結(jié)果。模型輸出的結(jié)果分為兩類:一類為模型判斷為沒有源代碼漏洞的圖結(jié)構(gòu)切片;另一類為模型判斷為存在源代碼漏洞的圖結(jié)構(gòu)切片,這部分?jǐn)?shù)據(jù)的輸出還會(huì)包含模型預(yù)測(cè)存在較大可能導(dǎo)致源代碼漏洞的節(jié)點(diǎn),根據(jù)節(jié)點(diǎn)信息可以映射為源代碼中具體的代碼行,分析測(cè)試結(jié)果判斷系統(tǒng)對(duì)于源代碼漏洞和具體漏洞易發(fā)代碼行預(yù)測(cè)的準(zhǔn)確性。

    模型分析節(jié)點(diǎn)對(duì)于漏洞預(yù)測(cè)結(jié)果的重要性,并充分考慮圖中全局節(jié)點(diǎn)對(duì)于預(yù)測(cè)代碼漏洞的影響。模型根據(jù)包含豐富代碼結(jié)構(gòu)信息的數(shù)據(jù)學(xué)習(xí)形成較高準(zhǔn)確率的漏洞判斷能力。

    4 實(shí)驗(yàn)設(shè)計(jì)與結(jié)果分析

    本文所設(shè)計(jì)的實(shí)驗(yàn)用于回答以下3個(gè)研究問題。

    RQ1:本文系統(tǒng)相較于采用序列化結(jié)構(gòu)源代碼切片信息的深度學(xué)習(xí)漏洞檢測(cè)系統(tǒng),本文系統(tǒng)采用圖結(jié)構(gòu)化源代碼切片信息是否有更好的漏洞檢測(cè)性能?

    RQ2:相較于其他基于圖神經(jīng)網(wǎng)絡(luò)模型的漏洞檢測(cè)系統(tǒng)是否有更好的漏洞檢測(cè)性能?

    RQ3:本文系統(tǒng)相較于靜態(tài)漏洞檢測(cè)系統(tǒng),是否有更好的漏洞檢測(cè)性能?

    4.1 評(píng)價(jià)漏洞檢測(cè)系統(tǒng)準(zhǔn)確性的標(biāo)準(zhǔn)

    本文主要采用以下指標(biāo)來評(píng)價(jià)漏洞檢測(cè)系統(tǒng)。

    精度:反映系統(tǒng)判斷為漏洞的樣本中正確預(yù)測(cè)漏洞的比例。

    召回率:反映出檢測(cè)系統(tǒng)判定存在漏洞樣本占實(shí)際存在漏洞樣本的比例。

    1值:綜合考量了準(zhǔn)確率和召回率,更加均衡地反映出系統(tǒng)的漏洞檢測(cè)性能。

    IoU值:反映系統(tǒng)檢測(cè)存在漏洞樣本中漏洞行位置的準(zhǔn)確性。本文中的IoU值為計(jì)算每個(gè)樣本的IoU值,求和取平均之后的值。

    ||值:系統(tǒng)預(yù)測(cè)樣本中漏洞行數(shù)量的平均值。

    其中,TP為系統(tǒng)判斷為存在漏洞且確實(shí)存在漏洞的樣本數(shù)量;FP為系統(tǒng)判斷為存在漏洞而沒有漏洞的樣本數(shù)量;FN為系統(tǒng)判斷沒有漏洞而真實(shí)存在漏洞的樣本數(shù)量;為存在漏洞樣本中真實(shí)的漏洞行;為系統(tǒng)定位出漏洞樣本中的漏洞行;為系統(tǒng)判斷樣本中漏洞行的總數(shù);為樣本總數(shù)。

    4.2 圖結(jié)構(gòu)化數(shù)據(jù)集的生成

    本文實(shí)驗(yàn)采用的源代碼數(shù)據(jù)集來源于SySeVR[11]中所使用的SARD(software assurance reference dataset)。SARD是由人工編寫的漏洞代碼得到的測(cè)試用例,數(shù)據(jù)集包含有漏洞的源程序、無漏洞的源程序、修補(bǔ)過漏洞的源程序,并且數(shù)據(jù)集中的漏洞源程序已經(jīng)標(biāo)識(shí)漏洞代碼行。將數(shù)據(jù)集處理為可以輸入本文系統(tǒng)神經(jīng)網(wǎng)絡(luò)模型的數(shù)據(jù)格式的過程如下。

    (1)從源程序數(shù)據(jù)獲取漏洞候選圖結(jié)構(gòu)切片

    首先基于Joern工具將源程序解析為以函數(shù)為單位的PDG圖,然后根據(jù)4種漏洞語法特征:(庫/API函數(shù)調(diào)用、數(shù)組使用、指針使用和表達(dá)式定義)確定PDG圖中的候選漏洞節(jié)點(diǎn),再根據(jù)候選漏洞節(jié)點(diǎn)選出與漏洞節(jié)點(diǎn)存在控制依賴和數(shù)據(jù)依賴的節(jié)點(diǎn),最后從PDG圖中獲取由這些節(jié)點(diǎn)組成的圖結(jié)構(gòu)切片,圖結(jié)構(gòu)切片中包含圖的結(jié)構(gòu)信息、節(jié)點(diǎn)對(duì)應(yīng)的代碼行內(nèi)容、節(jié)點(diǎn)對(duì)應(yīng)代碼行在源程序中的位置、節(jié)點(diǎn)對(duì)應(yīng)代碼行的語句類型、圖結(jié)構(gòu)切片是否包含漏洞的標(biāo)記、圖中包含的漏洞節(jié)點(diǎn)。獲取源程序PDG圖的過程是將Joern解析后的數(shù)據(jù)由Neo4j圖形數(shù)據(jù)庫讀出,然后采用Python編寫的程序通過Neo4j數(shù)據(jù)庫讀取數(shù)據(jù),完成提取漏洞候選圖結(jié)構(gòu)切片。

    (2)表征圖結(jié)構(gòu)切片信息

    本文系統(tǒng)采用Python編寫的程序?qū)崿F(xiàn)設(shè)計(jì)部分提出的映射代碼語句的機(jī)制,之后構(gòu)建Word2Vec模型將映射后的代碼符號(hào)集映射為可以輸入神經(jīng)網(wǎng)絡(luò)模型的向量格式,將代碼符號(hào)映射為向量包括如下內(nèi)容。①構(gòu)建語料庫:對(duì)實(shí)驗(yàn)數(shù)據(jù)中的漏洞候選圖結(jié)構(gòu)切片中的代碼行做分詞處理,將代碼行分成符號(hào)集,將所有的符號(hào)構(gòu)建成預(yù)料庫存。②訓(xùn)練Word2Vec模型:將語料庫輸入Word2Vec模型訓(xùn)練,本文設(shè)置了5輪迭代訓(xùn)練得到最終的模型。③將所有漏洞候選圖結(jié)構(gòu)切片中節(jié)點(diǎn)所包含代碼行通過完成訓(xùn)練的Word2Vec模型表征為向量。

    輸入神經(jīng)網(wǎng)絡(luò)模型的數(shù)據(jù)包含多個(gè)漏洞候選圖結(jié)構(gòu)切片,將其節(jié)點(diǎn)信息、節(jié)點(diǎn)關(guān)系信息、圖分類信息、節(jié)點(diǎn)?圖對(duì)應(yīng)關(guān)系信息經(jīng)過表征后分別存儲(chǔ)為一個(gè)文件,作為神經(jīng)網(wǎng)絡(luò)模型的輸入。采用設(shè)計(jì)部分描述的方法表征圖結(jié)構(gòu)信息,以上過程采用Python編寫的程序?qū)崿F(xiàn)。

    4.3 實(shí)驗(yàn)與結(jié)果分析

    實(shí)驗(yàn)采用的數(shù)據(jù)中,SARD共生成122 103個(gè)圖結(jié)構(gòu)化切片。實(shí)驗(yàn)數(shù)據(jù)中的80%用于訓(xùn)練神經(jīng)網(wǎng)絡(luò)模型,10%用于驗(yàn)證模型使用,其余的10%用于測(cè)試模型的各項(xiàng)性能數(shù)據(jù)。實(shí)驗(yàn)環(huán)境的主要配置參數(shù)如下。硬件配置:CPU為Intel Xeon E5-2620 2.40 GHz,GPU為NVIDIA GeForce GTX 1080,內(nèi)存32 GB,磁盤大小2 TB;操作系統(tǒng)為L(zhǎng)inux 4.18.0-269.el8.x86_64。實(shí)驗(yàn)主要對(duì)提出的3個(gè)研究問題進(jìn)行針對(duì)性實(shí)驗(yàn)。

    (1)針對(duì)RQ1的實(shí)驗(yàn)

    為了確定采用圖結(jié)構(gòu)表示源代碼切片信息,并基于圖神經(jīng)網(wǎng)絡(luò)模型構(gòu)建漏洞檢測(cè)系統(tǒng)能否更好地檢測(cè)源代碼漏洞,設(shè)計(jì)了本文系統(tǒng)和同樣采用源代碼切片作為神經(jīng)網(wǎng)絡(luò)模型輸入樣本的漏洞檢測(cè)系統(tǒng)SySeVR[11]作比較。SySeVR的不同點(diǎn)在于其采用序列化結(jié)構(gòu)表示源代碼切片,將源代碼切片的代碼內(nèi)容作為文本信息表征后輸入神經(jīng)網(wǎng)絡(luò)模型。

    本文系統(tǒng)采用圖神經(jīng)網(wǎng)絡(luò)模型中的3個(gè)“圖卷積?池化”模塊,每個(gè)模塊都會(huì)對(duì)圖中的節(jié)點(diǎn)按照固定比例進(jìn)行篩選,這個(gè)比例就是池化比率(pooling ratio)。為了確定最優(yōu)結(jié)果的池化篩選比例,設(shè)計(jì)了針對(duì)性實(shí)驗(yàn),比較在不同池化篩選比例下模型各項(xiàng)參數(shù)的結(jié)果,最終選擇最佳比例。

    根據(jù)表1給出的實(shí)驗(yàn)結(jié)果,綜合考慮所有評(píng)價(jià)標(biāo)準(zhǔn),選擇在池化比率為0.65條件下為本文系統(tǒng)最優(yōu)結(jié)果,后面的實(shí)驗(yàn)將采用在這一條件下的實(shí)驗(yàn)結(jié)果與其他漏洞檢測(cè)系統(tǒng)進(jìn)行對(duì)比。

    表1 本文系統(tǒng)在不同池化比率下各指標(biāo)對(duì)比結(jié)果

    表2給出了針對(duì)RQ1的實(shí)驗(yàn)結(jié)果。①本文系統(tǒng)的1值相較于SySeVR系統(tǒng)高0.4%,說明本文系統(tǒng)的判斷樣本漏洞的綜合能力相較于SySeVR有略微提升。本文系統(tǒng)的精度相比SySeVR提高8.2%,說明本文系統(tǒng)判斷樣本是否存在漏洞的精確度有明顯提升,主要原因在于本文系統(tǒng)采用圖結(jié)構(gòu)表示代碼切片,可以為神經(jīng)網(wǎng)絡(luò)模型提高更豐富的數(shù)據(jù)依賴和控制依賴關(guān)系,模型可以據(jù)此學(xué)習(xí)到多方面的漏洞特征。SySeVR采用文本形式表征代碼切片,提供給模型學(xué)習(xí)的信息十分有限,模型只能通過代碼文本信息總結(jié)漏洞特征,相對(duì)于圖神經(jīng)網(wǎng)絡(luò)模型總結(jié)的漏洞特征有所缺失,所以本文系統(tǒng)在判斷樣本是否存在漏洞時(shí)會(huì)考慮更多因素,做出更加準(zhǔn)確的判斷,有更高的精度,但同時(shí)存在一些漏洞的樣本無法被準(zhǔn)確判斷出漏洞,導(dǎo)致召回率有所降低。②本文系統(tǒng)的IoU值相較于SySeVR系統(tǒng)提高5.5%,||則由13.3降至4.7,可以在更精確位置定位漏洞,提供更加有效的漏洞預(yù)測(cè)信息。本文系統(tǒng)可以在代碼行粒度預(yù)測(cè)漏洞位置,而SySeVR只能在切片級(jí)粒度預(yù)測(cè)漏洞,且本文漏洞檢測(cè)精度較高,所以本文系統(tǒng)在定位漏洞位置方面相對(duì)于SySeVR有較大提升。

    表2 本文系統(tǒng)和SySeVR系統(tǒng)的各指標(biāo)對(duì)比結(jié)果

    (2)針對(duì)RQ2的實(shí)驗(yàn)

    為了確定本文系統(tǒng)相較于其他基于圖神經(jīng)網(wǎng)絡(luò)模型的漏洞檢測(cè)系統(tǒng)是否有更好的漏洞檢測(cè)性能,設(shè)計(jì)了本文系統(tǒng)和Devign系統(tǒng)比較。

    表3給出了針對(duì)RQ2的實(shí)驗(yàn)結(jié)果。本文系統(tǒng)相較于Devign系統(tǒng),精度和1值分別提高56.7%和36.6%,主要原因是本文在數(shù)據(jù)預(yù)處理階段,會(huì)根據(jù)4類漏洞特征提取源代碼切片,而Devign系統(tǒng)中輸入圖神經(jīng)網(wǎng)絡(luò)模型的數(shù)據(jù)是以函數(shù)單位的,對(duì)比之下,本文系統(tǒng)在輸入模型的數(shù)據(jù)中一定程度上減少了與漏洞無關(guān)的源代碼信息的輸入,提高了系統(tǒng)漏洞檢測(cè)的準(zhǔn)確性。本文系統(tǒng)利用神經(jīng)模型自注意力機(jī)制在池化階段對(duì)圖中節(jié)點(diǎn)進(jìn)行篩選,間接對(duì)一個(gè)樣本中的代碼行進(jìn)行篩選,使模型可以更加專注于學(xué)習(xí)與漏洞有關(guān)的代碼行特征,從而更加精確地判斷樣本是否包含漏洞。Devign系統(tǒng)是對(duì)函數(shù)整體進(jìn)行學(xué)習(xí),一個(gè)函數(shù)中不一定所有的代碼行都與漏洞相關(guān),相對(duì)容易學(xué)習(xí)到與漏洞無關(guān)代碼特征,這會(huì)導(dǎo)致將無漏洞樣本判斷為存在漏洞樣本。

    表3 本文系統(tǒng)和Devign各指標(biāo)對(duì)比結(jié)果

    (3)針對(duì)RQ3的實(shí)驗(yàn)

    將本文系統(tǒng)分別和以下幾種漏洞檢測(cè)系統(tǒng)做比較。①Checkmarx,一款商業(yè)的代碼靜態(tài)分析工具。②Flawfinder,一款開源的關(guān)于C/C++靜態(tài)掃描分析工具。③RATS,一款開源的代碼靜態(tài)分析工具。以上工具均可應(yīng)用于本文系統(tǒng)訓(xùn)練和測(cè)試所使用的數(shù)據(jù)集,且在源代碼靜態(tài)掃描領(lǐng)域具有較好表現(xiàn)。

    表4給出了針對(duì)RQ3的實(shí)驗(yàn)結(jié)果。根據(jù)實(shí)驗(yàn)結(jié)果可知,本文系統(tǒng)相較于對(duì)比實(shí)驗(yàn)中結(jié)果較好的靜態(tài)代碼分析工具Checkmarx,精度和召回率分別提高61.9%和43.6%,這是因?yàn)殪o態(tài)漏洞檢測(cè)系統(tǒng)主要是基于規(guī)則和重復(fù)性的漏洞檢測(cè)器,由于定義規(guī)則的不完整性,系統(tǒng)會(huì)產(chǎn)生較高的假陽率和假陰率。而采用圖神經(jīng)網(wǎng)絡(luò)模型自動(dòng)學(xué)習(xí)漏洞特征可以避免由人類專家定義漏洞特征帶來的不完整性,從而總結(jié)出更深層次的漏洞特征,提高漏洞檢測(cè)系統(tǒng)的準(zhǔn)確性。本文系統(tǒng)的1值提升至89.7%,相對(duì)于靜態(tài)檢測(cè)工具漏洞檢測(cè)綜合能力提高兩倍以上,證明將圖神經(jīng)網(wǎng)絡(luò)模型應(yīng)用于漏洞檢測(cè)檢測(cè)領(lǐng)域是可行的,并且具有較高潛力。

    表4 4種漏洞檢測(cè)系統(tǒng)的各指標(biāo)對(duì)比結(jié)果

    5 結(jié)束語

    本文提出了基于圖結(jié)構(gòu)源代碼切片的智能化漏洞檢測(cè)系統(tǒng),主要將從源代碼中獲取的圖結(jié)構(gòu)切片的信息經(jīng)過表征后,由圖神經(jīng)網(wǎng)絡(luò)模型學(xué)習(xí)漏洞相關(guān)特征,最終模型可以實(shí)現(xiàn)預(yù)測(cè)源代碼切片是否存在漏洞和預(yù)測(cè)含有漏洞的源代碼切片中的漏洞行。經(jīng)過和其他漏洞檢測(cè)工具的性能對(duì)比實(shí)驗(yàn),證實(shí)將圖神經(jīng)網(wǎng)絡(luò)模型應(yīng)用于源代碼漏洞檢測(cè)工作是一種有效的方法,且是一個(gè)十分有潛力的研究方向。

    本文提出的漏洞檢測(cè)系統(tǒng)在定位漏洞觸發(fā)行時(shí)采用模型多次按比例進(jìn)行節(jié)點(diǎn)篩選,最終篩選得到的節(jié)點(diǎn)對(duì)應(yīng)到代碼行即為預(yù)測(cè)的漏洞行。這種方法對(duì)于代碼行數(shù)量較大的檢測(cè)樣本,預(yù)測(cè)出的漏洞行也會(huì)隨之變多,未來可以針對(duì)這一問題開展研究,使漏洞行定位預(yù)測(cè)變得更加準(zhǔn)確。

    [1] 李韻, 黃辰林, 王中鋒, 等. 基于機(jī)器學(xué)習(xí)的軟件漏洞挖掘方法綜述[J]. 軟件學(xué)報(bào), 2020, 31(7): 2040-2061.

    LIY, HUANG C L, WANG Z F, et al. Survey of software vulnerability mining methods based on machine learning[J]. Journal of Software. 2020, 31(7): 2040-2061.

    [2] 陳肇炫, 鄒德清, 李珍, 等. 基于抽象語法樹的智能化漏洞檢測(cè)系統(tǒng)[J]. 信息安全學(xué)報(bào), 2020, 5(4): 1-13.

    CHEN Z X, ZOU D Q, LI Z, et al. Intelligent vulnerability detection system based on abstract syntax tree[J]. Journal of Cyber Security. 2020, 5(4): 1-13.

    [3] LI Z, ZOU D Q, XU S H, et al. VulDeePecker: a deep learning-based system for vulnerability detection[C]//The Network and Distributed System Security Symposium. 2018.

    [4] XIAO Y, CHEN B H, YU C D, et al. MVP: Detecting vulnerabilities using patch-enhanced vulnerability signatures[C]//USENIX Security Symposium. 2018.

    [5] GUSTAVO G, GUILLERMO L G, UZAL L, et al. Toward large-scale vulnerability discovery using machine learning[C]//The 6th ACM on Conference on Data and Application Security and Privacy (CODASPY'16). 2016: 85-96.

    [6] STEPHAN N, THOMAS Z, CHRISTIAN H, et al. Predicting vulnerable software components[C]//2007 ACM Conference on Computer and Communications Security (CCS'07). 2007: 529-540.

    [7] FABIAN Y, MARKUS L, KONRAD R. Generalized vulnerability extrapolation using abstract syntax trees[C]//The 28th Annual Computer Security Applications Conference. 2012: 359-368.

    [8] FABIAN Y, ALWIN M, HUGO G, et al. Automatic inference of search patterns for taint-style vulnerabilities[C]//IEEE Symposium on Security and Privacy (S&P'15). 2015: 797-812.

    [9] ZOU D Q, WANG S J, XU S H, et al.VulDeePecker: a deep learning-based system for multiclass vulnerability detection[J]. IEEE Transactions on Dependable and Secure Computing, 2021, 15(5): 2224-2236.

    [10] LI Z, ZOU D Q, XU S H, et al. VulDeeLocator: a deep learning-based fine-grained vulnerability detector[J]. IEEE Transactions on Dependable and Secure Computing, 2021.

    [11] LI Z, ZOU D Q, XU S H, et al. SySeVR: a Framework for using deep learning to detect software vulnerabilities[J]. IEEE Transactions on Dependable and Secure Computing, 2021.

    [12] LIN G J, XIAO W, ZHANG J, et al. Deep Learning-based vulnerable function detection: a benchmark[C]//The 21st International Conference on Information and Communications Security. 2019: 219-232.

    [13] LIN G J, ZHANG J, LUO W, et al. POSTER: vulnerability discovery with function representation learning from unlabeled projects[C]// ACM SIGSAC Conference on Computer and Communications Security. 2017: 2539-2541.

    [14] LIN G J, ZHANG J, LUO W, et al. Cross-project transfer representation learning for vulnerable function discovery[J]. IEEE Trans Industrial Informatics, 2018, 14(7): 329-3297.

    [15] LIU S G, LIN G J, QU L Z, et al. CD-VulD: cross-domain vulnerability discovery based on deep domain adaptation[J]. IEEE Transactions on Dependable and Secure Computing, 2020.

    [16] VAN N, TRUNG L, TUE L, et al. Deep domain adaptation for vulnerable code function identification[C]//International Joint Conference on Neural Networks. 2019: 1-8.

    [17] REBECCA R, LOUISK, LEI H, ET A L. Automated vulnerability detection in source code using deep representation learning[C]//The 17th IEEE International Conference on Machine Learning and Applications(ICMLA). 2018: 757-762.

    [18] TIM S. Machine-learning supported vulnerability detection in source code[C]//The 27th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering(ESEC/FSE). 2019: 1180-1183.

    [19] WANG H T, YE G X, TANG Z Y, et al. Combining graph-based learning with automated data collection for code vulnerability detection[J]. IEEE Transactions on Dependable and Secure Computing. 2020.

    [20] DUAN X, WU H, JI S L, et al. VulSniper: focus your attention to shoot fine-grained vulnerabilities[C]//The 28th International Joint Conference on Artificial Intelligence. 2019: 4665-4671.

    [21] ZHOU Y Q, LIU S Q, SIOW J, et al. Devign: effective vulnerability identification by learning comprehensive program semantics via graph neural networks[C]//Annual Conference on Neural Information Processing Systems(NeurIPS). 2019: 10197-10207.

    Intelligent vulnerability detection system based on graph structured source code slice

    ZOU Deqing1, LI Xiang2, HUANG Minhuan2,SONG Xiang3,LI Hao3,LI Weiming4

    1. School of Cyber Science and Engineering, Huazhong University of Science and Technology, Wuhan 430074, China 2.National Key Laboratory of Science and Technology on Information System Security,Beijing 100101, China 3.School of Software Engineering, Huazhong University of Science and Technology, Wuhan 430074, China 4. Network and Computation Center, Huazhong University of Science and Technology, Wuhan 430074, China

    For the intelligent vulnerability detection, the system extracts the graph structured source code slices according to the vulnerability characteristics from the program dependency graph of source code, and then presents the graph structured slice information to carry out vulnerability detection by using the graph neural network model. Slice level vulnerability detection was realized and the vulnerability line was located at the code line level. In order to verify the effectiveness of the system, compared with the static vulnerability detection systems, the vulnerability detection system based on serialized text information, and the vulnerability detection system based on graph structured information, the experimental results show that the proposed system has a high accuracy in the vulnerability detection capability and a good performance in the vulnerability code line prediction.

    vulnerability detection, graph structure, code slice, deep learning

    TP393

    A

    10.11959/j.issn.2096?109x.2021088

    2021?06?01;

    2021?09?10

    李響,ideal_work@163.com

    國家自然科學(xué)基金(U1936211)

    The National Nature Science Foundation of China (U1936211)

    鄒德清, 李響, 黃敏桓, 等. 基于圖結(jié)構(gòu)源代碼切片的智能化漏洞檢測(cè)系統(tǒng)[J]. 網(wǎng)絡(luò)與信息安全學(xué)報(bào), 2021, 7(5): 113-122.

    ZOU D Q, LI X, HUANG M H, et al. Intelligent vulnerability detection system based on graph structured source code slice[J]. Chinese Journal of Network and Information Security, 2021, 7(5): 113-122.

    鄒德清(1975? ),男,湖南瀏陽人,華中科技大學(xué)教授、博士生導(dǎo)師,主要研究方向?yàn)橄到y(tǒng)與軟件安全、云計(jì)算安全。

    李響(1983? ),女,河北涿州人,信息系統(tǒng)安全技術(shù)重點(diǎn)實(shí)驗(yàn)室高級(jí)工程師,主要研究方向?yàn)檐浖嗳跣苑治觥阂獯a檢測(cè)。

    黃敏桓(1971? ),男,江西萬載人,信息系統(tǒng)安全技術(shù)重點(diǎn)實(shí)驗(yàn)室研究員,主要研究方向?yàn)榇嗳跣宰詣?dòng)分析、網(wǎng)絡(luò)安全評(píng)估與驗(yàn)證。

    宋翔(1996? ),男,河南新鄉(xiāng)人,華中科技大學(xué)碩士生,主要研究方向?yàn)榫W(wǎng)絡(luò)安全。

    李浩(1995? ),男,河南駐馬店人,華中科技大學(xué)碩士生,主要研究方向?yàn)榫W(wǎng)絡(luò)安全。

    李偉明(1975? ),男,湖南株洲人,華中科技大學(xué)副教授,主要研究方向?yàn)榫W(wǎng)絡(luò)安全。

    猜你喜歡
    源代碼漏洞切片
    人工智能下復(fù)雜軟件源代碼缺陷精準(zhǔn)校正
    漏洞
    基于TXL的源代碼插樁技術(shù)研究
    軟件源代碼非公知性司法鑒定方法探析
    基于SDN與NFV的網(wǎng)絡(luò)切片架構(gòu)
    三明:“兩票制”堵住加價(jià)漏洞
    漏洞在哪兒
    揭秘龍湖產(chǎn)品“源代碼”
    腎穿刺組織冷凍切片技術(shù)的改進(jìn)方法
    高鐵急救應(yīng)補(bǔ)齊三漏洞
    久久精品人人爽人人爽视色| av天堂在线播放| 侵犯人妻中文字幕一二三四区| 97人妻天天添夜夜摸| 天天躁夜夜躁狠狠躁躁| 日本黄色日本黄色录像| 午夜免费激情av| 老司机午夜福利在线观看视频| 99国产精品99久久久久| 国产深夜福利视频在线观看| 日本精品一区二区三区蜜桃| 国产av又大| 亚洲avbb在线观看| av免费在线观看网站| 亚洲国产毛片av蜜桃av| 午夜福利免费观看在线| 性少妇av在线| 热re99久久国产66热| 老司机靠b影院| 国产精品免费一区二区三区在线| 这个男人来自地球电影免费观看| 国产aⅴ精品一区二区三区波| 国产精品国产高清国产av| 好男人电影高清在线观看| 日本精品一区二区三区蜜桃| 欧美精品一区二区免费开放| 人妻丰满熟妇av一区二区三区| 亚洲精品成人av观看孕妇| 亚洲国产精品sss在线观看 | 亚洲伊人色综图| 久久精品91蜜桃| 97人妻天天添夜夜摸| 日韩中文字幕欧美一区二区| 亚洲精品国产区一区二| 午夜a级毛片| 欧美黄色片欧美黄色片| 视频区欧美日本亚洲| 国产精品爽爽va在线观看网站 | 校园春色视频在线观看| 国产av一区在线观看免费| 丝袜美足系列| 午夜免费成人在线视频| 丝袜美腿诱惑在线| 一级片'在线观看视频| 国产精品久久久久成人av| 亚洲精品一区av在线观看| 久久久久久久午夜电影 | 波多野结衣av一区二区av| 久久久久久大精品| 久久久久久亚洲精品国产蜜桃av| 欧美国产精品va在线观看不卡| 村上凉子中文字幕在线| 亚洲一码二码三码区别大吗| 成熟少妇高潮喷水视频| 亚洲一区中文字幕在线| 91麻豆精品激情在线观看国产 | 国产精品综合久久久久久久免费 | 欧美日韩亚洲综合一区二区三区_| 久久久精品国产亚洲av高清涩受| 美国免费a级毛片| 午夜免费成人在线视频| 国产成人精品无人区| 中出人妻视频一区二区| 女同久久另类99精品国产91| 老汉色av国产亚洲站长工具| 国产欧美日韩综合在线一区二区| 亚洲av成人一区二区三| 国产男靠女视频免费网站| 亚洲精品美女久久av网站| 真人一进一出gif抽搐免费| 91老司机精品| 18禁观看日本| 欧美激情高清一区二区三区| 欧洲精品卡2卡3卡4卡5卡区| 亚洲色图av天堂| 男女下面进入的视频免费午夜 | 男女下面进入的视频免费午夜 | 巨乳人妻的诱惑在线观看| 国产伦人伦偷精品视频| 色综合欧美亚洲国产小说| 在线十欧美十亚洲十日本专区| 欧美av亚洲av综合av国产av| 一级片免费观看大全| 夫妻午夜视频| 一区二区三区激情视频| 女性生殖器流出的白浆| 操出白浆在线播放| 久久人妻av系列| 91精品国产国语对白视频| 美女国产高潮福利片在线看| 岛国视频午夜一区免费看| 欧美精品一区二区免费开放| 欧美乱码精品一区二区三区| 国产主播在线观看一区二区| 这个男人来自地球电影免费观看| 看片在线看免费视频| 韩国精品一区二区三区| 高清黄色对白视频在线免费看| 婷婷丁香在线五月| 一区二区三区激情视频| 久久久精品欧美日韩精品| 操美女的视频在线观看| 一级a爱视频在线免费观看| 国产av一区二区精品久久| 中文字幕另类日韩欧美亚洲嫩草| 免费在线观看完整版高清| 美女国产高潮福利片在线看| 老汉色∧v一级毛片| 精品人妻1区二区| 宅男免费午夜| 亚洲熟妇中文字幕五十中出 | 国产一区二区激情短视频| 亚洲久久久国产精品| 久久久久久大精品| 国产精品成人在线| 日本vs欧美在线观看视频| 亚洲精品国产色婷婷电影| 色播在线永久视频| av免费在线观看网站| 亚洲精品在线观看二区| 在线免费观看的www视频| 亚洲性夜色夜夜综合| 欧美日韩视频精品一区| 午夜久久久在线观看| 久久久久久久久中文| av福利片在线| 在线视频色国产色| 国产91精品成人一区二区三区| 国产亚洲欧美在线一区二区| 69av精品久久久久久| 国产精品美女特级片免费视频播放器 | 电影成人av| 午夜福利欧美成人| 国产亚洲精品第一综合不卡| 搡老岳熟女国产| 久久久水蜜桃国产精品网| 高清黄色对白视频在线免费看| 欧美日韩一级在线毛片| 午夜久久久在线观看| 一本综合久久免费| 色老头精品视频在线观看| 一进一出抽搐动态| 一进一出抽搐动态| 91大片在线观看| 麻豆一二三区av精品| 老熟妇乱子伦视频在线观看| 激情视频va一区二区三区| 99re在线观看精品视频| 免费在线观看黄色视频的| 搡老熟女国产l中国老女人| 久久狼人影院| tocl精华| 亚洲色图av天堂| 国产精品二区激情视频| 亚洲成国产人片在线观看| 久久国产精品影院| 日韩视频一区二区在线观看| 精品午夜福利视频在线观看一区| 老汉色∧v一级毛片| 大陆偷拍与自拍| 99久久综合精品五月天人人| 欧美一区二区精品小视频在线| 黄色视频,在线免费观看| 亚洲一区高清亚洲精品| 亚洲熟女毛片儿| 黄色视频不卡| 精品日产1卡2卡| 亚洲精品在线美女| 性色av乱码一区二区三区2| 级片在线观看| 国产精品影院久久| 国产成人影院久久av| 国产人伦9x9x在线观看| av免费在线观看网站| 91精品三级在线观看| 超色免费av| av天堂久久9| 神马国产精品三级电影在线观看 | av国产精品久久久久影院| 欧美激情久久久久久爽电影 | 天天躁夜夜躁狠狠躁躁| 亚洲国产毛片av蜜桃av| 国产精品av久久久久免费| 久久午夜亚洲精品久久| 伦理电影免费视频| 国产野战对白在线观看| 成年人黄色毛片网站| 精品国产国语对白av| 久热这里只有精品99| 亚洲av五月六月丁香网| 久热爱精品视频在线9| 久久人妻av系列| 国产乱人伦免费视频| 亚洲美女黄片视频| 国产有黄有色有爽视频| 欧美丝袜亚洲另类 | 19禁男女啪啪无遮挡网站| 香蕉国产在线看| 91麻豆av在线| 看黄色毛片网站| 亚洲精品国产区一区二| 18禁美女被吸乳视频| 黄色a级毛片大全视频| 国产亚洲精品第一综合不卡| 99香蕉大伊视频| a级毛片黄视频| 日本精品一区二区三区蜜桃| 多毛熟女@视频| 亚洲五月色婷婷综合| 欧美日韩中文字幕国产精品一区二区三区 | 在线观看午夜福利视频| 成人永久免费在线观看视频| 欧美日本中文国产一区发布| 免费av中文字幕在线| 久久人人97超碰香蕉20202| 久久久久久久精品吃奶| 精品卡一卡二卡四卡免费| 国产高清激情床上av| 日韩有码中文字幕| 黑人巨大精品欧美一区二区mp4| 久久久久久久午夜电影 | 亚洲中文av在线| 欧美日韩亚洲国产一区二区在线观看| 午夜免费成人在线视频| 99香蕉大伊视频| 久久久久国产精品人妻aⅴ院| 日本精品一区二区三区蜜桃| 日韩欧美在线二视频| 欧美+亚洲+日韩+国产| 夜夜爽天天搞| 日韩免费高清中文字幕av| 男女床上黄色一级片免费看| 国产激情久久老熟女| 午夜视频精品福利| 成人手机av| 久久精品亚洲精品国产色婷小说| 国产三级黄色录像| 人人妻人人添人人爽欧美一区卜| 他把我摸到了高潮在线观看| 大码成人一级视频| 日韩欧美国产一区二区入口| 久久久国产成人免费| 老司机在亚洲福利影院| 男女之事视频高清在线观看| 精品国产国语对白av| 精品乱码久久久久久99久播| 美女扒开内裤让男人捅视频| 涩涩av久久男人的天堂| 中文字幕人妻熟女乱码| 中文亚洲av片在线观看爽| 国产有黄有色有爽视频| 99久久99久久久精品蜜桃| 午夜福利,免费看| 国产成人欧美在线观看| 91字幕亚洲| 久久久久九九精品影院| 精品高清国产在线一区| 欧美+亚洲+日韩+国产| 伊人久久大香线蕉亚洲五| 不卡av一区二区三区| 美女大奶头视频| 国产亚洲精品久久久久5区| 无人区码免费观看不卡| 日日夜夜操网爽| 亚洲 欧美 日韩 在线 免费| 欧美老熟妇乱子伦牲交| 制服诱惑二区| 变态另类成人亚洲欧美熟女 | 久久久久久久精品吃奶| 久久青草综合色| 欧美一区二区精品小视频在线| 午夜福利免费观看在线| 久久久久久人人人人人| 日韩免费av在线播放| 国产黄a三级三级三级人| 久久久久国内视频| 两个人看的免费小视频| 精品国产亚洲在线| 国产精品一区二区三区四区久久 | 欧美日韩国产mv在线观看视频| 一二三四社区在线视频社区8| 熟女少妇亚洲综合色aaa.| 好男人电影高清在线观看| 久久精品亚洲av国产电影网| 午夜两性在线视频| www.www免费av| 老司机深夜福利视频在线观看| 成人免费观看视频高清| 一级毛片女人18水好多| 国产91精品成人一区二区三区| 一级片'在线观看视频| 亚洲精品一区av在线观看| 国产熟女午夜一区二区三区| 亚洲精品中文字幕在线视频| 亚洲人成电影观看| 女性被躁到高潮视频| 极品教师在线免费播放| 精品国产国语对白av| 久久久水蜜桃国产精品网| 国产日韩一区二区三区精品不卡| 黄色女人牲交| www.精华液| 国产在线观看jvid| aaaaa片日本免费| 亚洲精品中文字幕在线视频| 制服诱惑二区| 999精品在线视频| 久久天躁狠狠躁夜夜2o2o| 热99国产精品久久久久久7| 久久久精品欧美日韩精品| 国产精品电影一区二区三区| 一二三四社区在线视频社区8| 中文字幕最新亚洲高清| av视频免费观看在线观看| 久久久国产成人精品二区 | 精品久久久久久成人av| 一级a爱片免费观看的视频| 三级毛片av免费| 每晚都被弄得嗷嗷叫到高潮| 亚洲一卡2卡3卡4卡5卡精品中文| 亚洲精品国产区一区二| 波多野结衣一区麻豆| 国产精品98久久久久久宅男小说| 交换朋友夫妻互换小说| 热re99久久国产66热| 黄片小视频在线播放| 高清在线国产一区| 1024香蕉在线观看| 最新美女视频免费是黄的| 两个人免费观看高清视频| 一级片'在线观看视频| 成人三级黄色视频| 日本vs欧美在线观看视频| 好男人电影高清在线观看| 一级作爱视频免费观看| 欧美日韩黄片免| 桃红色精品国产亚洲av| 999久久久精品免费观看国产| 亚洲精华国产精华精| 热99国产精品久久久久久7| 中文字幕另类日韩欧美亚洲嫩草| 高清欧美精品videossex| 99国产综合亚洲精品| 一级毛片高清免费大全| 亚洲av日韩精品久久久久久密| 亚洲在线自拍视频| 宅男免费午夜| 人人澡人人妻人| 午夜免费观看网址| 91老司机精品| 日韩三级视频一区二区三区| 在线观看免费高清a一片| 成年人免费黄色播放视频| 怎么达到女性高潮| 亚洲精品美女久久av网站| 黑人欧美特级aaaaaa片| 日本黄色日本黄色录像| 麻豆一二三区av精品| 国产精品日韩av在线免费观看 | 久久人人97超碰香蕉20202| 在线观看免费午夜福利视频| 男人舔女人的私密视频| 97超级碰碰碰精品色视频在线观看| 日韩免费av在线播放| 在线观看免费午夜福利视频| 一进一出抽搐gif免费好疼 | 国产精品久久久av美女十八| 欧美另类亚洲清纯唯美| 另类亚洲欧美激情| 精品久久久久久久久久免费视频 | 多毛熟女@视频| 一区二区日韩欧美中文字幕| 午夜成年电影在线免费观看| 国产一卡二卡三卡精品| 久久国产精品人妻蜜桃| 亚洲第一青青草原| 99精品在免费线老司机午夜| 99在线人妻在线中文字幕| 国产精品电影一区二区三区| 亚洲av电影在线进入| 中文字幕av电影在线播放| 在线天堂中文资源库| 日韩大尺度精品在线看网址 | 日韩有码中文字幕| 亚洲伊人色综图| 色婷婷av一区二区三区视频| 天天影视国产精品| 美女扒开内裤让男人捅视频| 久久精品国产亚洲av香蕉五月| 亚洲男人的天堂狠狠| 欧美黑人精品巨大| 亚洲欧洲精品一区二区精品久久久| 亚洲激情在线av| 中文字幕最新亚洲高清| 亚洲精品美女久久av网站| 日日摸夜夜添夜夜添小说| 欧美日韩中文字幕国产精品一区二区三区 | 成年女人毛片免费观看观看9| 久久国产乱子伦精品免费另类| 最新在线观看一区二区三区| 国产精品久久久av美女十八| 久久伊人香网站| 国产91精品成人一区二区三区| 国产在线精品亚洲第一网站| 欧美日本中文国产一区发布| 91在线观看av| 69av精品久久久久久| 国产精品98久久久久久宅男小说| 这个男人来自地球电影免费观看| 丝袜在线中文字幕| 欧美日韩视频精品一区| 久久欧美精品欧美久久欧美| 成人国语在线视频| 80岁老熟妇乱子伦牲交| 午夜免费鲁丝| videosex国产| 国产精品乱码一区二三区的特点 | 亚洲国产中文字幕在线视频| 亚洲视频免费观看视频| 国产99久久九九免费精品| 欧美激情极品国产一区二区三区| 搡老熟女国产l中国老女人| 亚洲精品中文字幕一二三四区| 老司机在亚洲福利影院| 久久九九热精品免费| 亚洲精品中文字幕在线视频| 很黄的视频免费| 国产精品久久久av美女十八| 少妇的丰满在线观看| 国产高清视频在线播放一区| 日韩大码丰满熟妇| 男女之事视频高清在线观看| 国产一卡二卡三卡精品| a在线观看视频网站| 欧美精品啪啪一区二区三区| 99国产综合亚洲精品| 国产精品野战在线观看 | 亚洲人成伊人成综合网2020| 9191精品国产免费久久| 日日摸夜夜添夜夜添小说| 亚洲自拍偷在线| 十八禁人妻一区二区| 日日摸夜夜添夜夜添小说| 久久天堂一区二区三区四区| 大码成人一级视频| 午夜免费成人在线视频| 欧美日韩一级在线毛片| 黑人巨大精品欧美一区二区mp4| 99国产综合亚洲精品| 国产1区2区3区精品| 国产欧美日韩一区二区三| 成年女人毛片免费观看观看9| 大型黄色视频在线免费观看| 在线观看免费日韩欧美大片| 国产乱人伦免费视频| 一夜夜www| 咕卡用的链子| 成人亚洲精品一区在线观看| 黑人欧美特级aaaaaa片| 18禁国产床啪视频网站| 夜夜躁狠狠躁天天躁| 亚洲中文av在线| 免费在线观看视频国产中文字幕亚洲| 中亚洲国语对白在线视频| 亚洲精品中文字幕在线视频| 最新在线观看一区二区三区| 国产精品国产av在线观看| 99精品在免费线老司机午夜| 国产亚洲精品久久久久5区| 黄色成人免费大全| 久9热在线精品视频| 国产野战对白在线观看| 亚洲精品国产色婷婷电影| 日韩三级视频一区二区三区| 超碰成人久久| 久久性视频一级片| 新久久久久国产一级毛片| av网站在线播放免费| 亚洲av美国av| 9191精品国产免费久久| 最近最新免费中文字幕在线| 三上悠亚av全集在线观看| 桃色一区二区三区在线观看| 欧美黑人精品巨大| 啦啦啦在线免费观看视频4| 亚洲九九香蕉| 97人妻天天添夜夜摸| 麻豆国产av国片精品| 亚洲成人免费av在线播放| 亚洲成人免费电影在线观看| 国产国语露脸激情在线看| 成人三级黄色视频| 久久人人爽av亚洲精品天堂| 久久中文字幕人妻熟女| 久久香蕉精品热| 国产成人一区二区三区免费视频网站| av欧美777| 国产真人三级小视频在线观看| 国产高清videossex| 国产精品日韩av在线免费观看 | 黄色 视频免费看| 极品人妻少妇av视频| 在线观看一区二区三区| 欧美最黄视频在线播放免费 | 91精品国产国语对白视频| 久久99一区二区三区| 夜夜看夜夜爽夜夜摸 | 少妇粗大呻吟视频| 国产单亲对白刺激| 国产91精品成人一区二区三区| 国产成人精品久久二区二区免费| 一级片免费观看大全| 午夜精品国产一区二区电影| 欧美一级毛片孕妇| 老汉色av国产亚洲站长工具| 欧美精品啪啪一区二区三区| 国产欧美日韩一区二区精品| 国产真人三级小视频在线观看| 淫妇啪啪啪对白视频| 黄色视频,在线免费观看| 一级黄色大片毛片| 无人区码免费观看不卡| 黄色女人牲交| 精品国产国语对白av| 久久精品91无色码中文字幕| 亚洲全国av大片| 成熟少妇高潮喷水视频| 国产午夜精品久久久久久| 日韩国内少妇激情av| 嫁个100分男人电影在线观看| 97碰自拍视频| 亚洲欧洲精品一区二区精品久久久| 国产免费现黄频在线看| 水蜜桃什么品种好| 18禁黄网站禁片午夜丰满| 欧美黑人精品巨大| 国产成人精品久久二区二区免费| 1024视频免费在线观看| 午夜免费成人在线视频| 最近最新中文字幕大全电影3 | 亚洲精品在线观看二区| 成人影院久久| 亚洲性夜色夜夜综合| 中文亚洲av片在线观看爽| 国产区一区二久久| 亚洲久久久国产精品| 老司机亚洲免费影院| 别揉我奶头~嗯~啊~动态视频| 丁香欧美五月| 日日夜夜操网爽| av网站免费在线观看视频| 男人舔女人的私密视频| 国产av一区在线观看免费| 成在线人永久免费视频| 侵犯人妻中文字幕一二三四区| 一进一出抽搐动态| 他把我摸到了高潮在线观看| 欧美乱码精品一区二区三区| 中文欧美无线码| 免费少妇av软件| 精品国产乱子伦一区二区三区| 最近最新中文字幕大全免费视频| 午夜精品国产一区二区电影| 高清在线国产一区| 欧美日韩亚洲综合一区二区三区_| 热re99久久精品国产66热6| 中出人妻视频一区二区| 国产午夜精品久久久久久| 国产精品99久久99久久久不卡| x7x7x7水蜜桃| 18禁国产床啪视频网站| 两性午夜刺激爽爽歪歪视频在线观看 | 精品久久久精品久久久| 欧美乱妇无乱码| 国产又色又爽无遮挡免费看| 亚洲中文日韩欧美视频| 免费看十八禁软件| 日韩成人在线观看一区二区三区| 国产99久久九九免费精品| 亚洲国产欧美一区二区综合| 亚洲少妇的诱惑av| 黄色怎么调成土黄色| 高清黄色对白视频在线免费看| 亚洲专区中文字幕在线| 久久午夜综合久久蜜桃| 亚洲精品中文字幕一二三四区| 午夜精品国产一区二区电影| 亚洲欧洲精品一区二区精品久久久| 中文字幕另类日韩欧美亚洲嫩草| 成人av一区二区三区在线看| 国产精品永久免费网站| 中文字幕另类日韩欧美亚洲嫩草| 少妇粗大呻吟视频| 久久久久精品国产欧美久久久| 极品教师在线免费播放| 丝袜在线中文字幕| 男女高潮啪啪啪动态图| 欧美日韩乱码在线| 悠悠久久av| 日本三级黄在线观看| 久久人妻福利社区极品人妻图片| 国产一区二区三区视频了| 法律面前人人平等表现在哪些方面| 大陆偷拍与自拍| 亚洲成人久久性| 伦理电影免费视频| 性色av乱码一区二区三区2| 精品电影一区二区在线| 久久人妻av系列| 欧美在线一区亚洲| 久久欧美精品欧美久久欧美| 黄色a级毛片大全视频| a级毛片在线看网站| 亚洲精品一区av在线观看| 国产精品电影一区二区三区|