• <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è)方法

    2022-05-30 19:53:26楊宏宇應(yīng)樂(lè)意張良
    湖南大學(xué)學(xué)報(bào)·自然科學(xué)版 2022年4期
    關(guān)鍵詞:深度神經(jīng)網(wǎng)絡(luò)

    楊宏宇 應(yīng)樂(lè)意 張良

    摘要:目前的源代碼漏洞檢測(cè)方法大多僅依靠單一特征進(jìn)行檢測(cè),表征的維度單一導(dǎo)致方法效率低,針對(duì)上述問(wèn)題提出一種基于結(jié)構(gòu)化文本及代碼度量的漏洞檢測(cè)方法,在函數(shù)級(jí)粒度進(jìn)行漏洞檢測(cè).利用源代碼結(jié)構(gòu)化文本信息及代碼度量結(jié)果作為特征,通過(guò)構(gòu)造基于自注意力機(jī)制的神經(jīng)網(wǎng)絡(luò)捕獲結(jié)構(gòu)化文本信息中的長(zhǎng)期依賴關(guān)系,以擬合結(jié)構(gòu)化文本和漏洞存在之間的聯(lián)系并轉(zhuǎn)化為漏洞存在的概率.采用深度神經(jīng)網(wǎng)絡(luò)對(duì)代碼度量的結(jié)果進(jìn)行特征學(xué)習(xí)以擬合代碼度量值與漏洞存在的關(guān)系,并將其擬合的結(jié)果轉(zhuǎn)化為漏洞存在的概率.采用支持向量機(jī)對(duì)由上述兩種表征方式獲得的漏洞存在概率做進(jìn)一步的決策分類并獲得漏洞檢測(cè)的最終結(jié)果,為驗(yàn)證該方法的漏洞檢測(cè)性能,針對(duì)存在不同類型漏洞的11種源代碼樣本進(jìn)行漏洞檢測(cè)實(shí)驗(yàn),該方法對(duì)每種漏洞的平均檢測(cè)準(zhǔn)確率為97.96%,與現(xiàn)有基于單一表征的漏洞檢測(cè)方法相比,該方法的檢測(cè)準(zhǔn)確率提高了4.89%~12.21%,同時(shí),該方法的漏報(bào)率和誤報(bào)率均保持在10%以內(nèi).

    關(guān)鍵詞:漏洞檢測(cè);結(jié)構(gòu)化表征;抽象語(yǔ)法樹;代碼度量;深度神經(jīng)網(wǎng)絡(luò)

    中圖分類號(hào):TP393文獻(xiàn)標(biāo)志碼:A

    Vulnerability Detection Method Based on Structured Text and Code Metrics

    YANG Hongyu? YING Leyi ZHANG Liang3

    (1. College of Safety Science and Engineering,Civil Aviation University of China,Tianjin 300300,China;

    2. College of Computer Science and Technology,Civil Aviation University of China,Tianjin 300300,China;

    3. College of Information,University of Arizona,AZ 8572 USA)

    Abstract:Most of the current source code vulnerability detection methods only rely on a single feature,and the single dimension of characterization results in inefficient methods. To address the above issues,a vulnerability detection method based on structured text and code metrics is proposed to detect vulnerabilities at the function-level granularity. Using source code structured text information and code metrics as features,long-term dependencies in structured text information are captured by constructing a self-attention based neural network to fit the relationship between structured text and the existence of vulnerabilities and translate them into the probability of vulnerabilities. The deep neural network is used to learn the characteristics of the results of code metrics to fit the relationship between code metrics and the existence of vulnerabilities,and the fitted results are transformed into the probability of vulnerabilities. Support Vector Machine (SVM)is used to further classify the probabilities of vulnerabilities obtained by the above two representations and obtain the final results of vulnerability detection. To verify the vulnerability detection performance of this method,11 source code samples with different types of vulnerabilities are tested. The average detection accuracy of this method for each vulnerability is 97.96%. Compared with the existing vulnerability detection methods based on a single representation,this method improves the detection accuracy by 4.89%~12.21%,and at the same time. the false positive and false negative rates of this method are kept within 10%.

    Key words:vulnerability detection;structured representation;abstract syntax tree;code metrics;deep neural network

    計(jì)算機(jī)軟件在各個(gè)領(lǐng)域的廣泛應(yīng)用,使得軟件漏洞問(wèn)題也日益嚴(yán)重.面對(duì)多樣化的軟件漏洞類型,如何高效地進(jìn)行漏洞檢測(cè)成為當(dāng)前研究的熱點(diǎn)問(wèn)題.對(duì)源代碼進(jìn)行漏洞檢測(cè)是保障軟件安全的有效手段之一.目前,基于代碼度量和基于深度學(xué)習(xí)的方法是較為常見(jiàn)的源代碼漏洞檢測(cè)方法[1].

    代碼度量[2]被用于描述軟件代碼特性,以相關(guān)定義的數(shù)值來(lái)描述代碼的基本狀況.代碼度量雖然是一種粗粒度的源代碼表征方式,但是在一定程度上可以表征代碼的基本狀況.基于代碼度量的漏洞檢測(cè)方法通過(guò)源代碼度量工具對(duì)目標(biāo)代碼進(jìn)行代碼度量獲取對(duì)應(yīng)指標(biāo)的數(shù)值,利用機(jī)器學(xué)習(xí)算法,經(jīng)過(guò)訓(xùn)練生成漏洞檢測(cè)器.Ferenc等[3]基于代碼度量應(yīng)用機(jī)器學(xué)習(xí)算法和網(wǎng)格搜索算法構(gòu)建漏洞檢測(cè)模型并采用重采樣策略解決訓(xùn)練數(shù)據(jù)不平衡問(wèn)題.Sultana[4]利用機(jī)器學(xué)習(xí)和統(tǒng)計(jì)學(xué)方法追蹤代碼度量、代碼模式和漏洞之間的聯(lián)系,提出一種漏洞檢測(cè)方法,并利用該方法對(duì)開(kāi)源軟件進(jìn)行漏洞檢測(cè).基于代碼度量的漏洞檢測(cè)方法的主要不足是:①檢測(cè)粒度粗且可解釋性差;②精確率低且誤報(bào)率高.

    隨著深度學(xué)習(xí)在自然語(yǔ)言處理領(lǐng)域的應(yīng)用,研究人員嘗試將深度學(xué)習(xí)技術(shù)應(yīng)用于編程語(yǔ)言.當(dāng)前深度學(xué)習(xí)技術(shù)已經(jīng)普遍應(yīng)用于信息安全領(lǐng)域[5],基于深度學(xué)習(xí)的漏洞檢測(cè)方法能夠自主學(xué)習(xí)代碼文本信息與漏洞之間的關(guān)聯(lián)性以此建立漏洞檢測(cè)模型.Li 等⑹首次將深度學(xué)習(xí)技術(shù)引入漏洞檢測(cè)領(lǐng)域,提出一種VulDeePecker自動(dòng)化漏洞檢測(cè)系統(tǒng),能夠?qū)/C++語(yǔ)言編寫的源代碼進(jìn)行漏洞檢測(cè).Saccente等[7]提出Achilles漏洞檢測(cè)方法,在Java源代碼上進(jìn)行測(cè)試并取得不錯(cuò)的效果,表明基于深度學(xué)習(xí)的源代碼漏洞檢測(cè)方法能夠應(yīng)用于多種編程語(yǔ)言.上述兩種方法將源代碼完全視為線性文本,無(wú)法充分表征源代碼特征.為更加充分表征編程語(yǔ)言的語(yǔ)法和語(yǔ)義,結(jié)構(gòu)化表征方式被應(yīng)用于源代碼的表征.陳肇炫等[8]提出一種基于結(jié)構(gòu)化表征的智能化漏洞檢測(cè)系統(tǒng)Astor,在復(fù)雜且語(yǔ)法豐富的數(shù)據(jù)集中,檢測(cè)效果優(yōu)于線性表征方法.基于深度學(xué)習(xí)的漏洞檢測(cè)方法能夠完全脫離人工干預(yù)進(jìn)行漏洞檢測(cè),但仍存在不足.基于深度學(xué)習(xí)的漏洞檢測(cè)方法的主要不足有:①需要依賴大量數(shù)據(jù)進(jìn)行訓(xùn)練;②對(duì)不同類型漏洞的檢測(cè)結(jié)果波動(dòng)性較大;③精確率和召回率有待提升.

    針對(duì)計(jì)算機(jī)軟件二進(jìn)制代碼的漏洞檢測(cè)技術(shù)是一種底層的漏洞檢測(cè)技術(shù).當(dāng)無(wú)法獲取軟件高級(jí)語(yǔ)言源代碼時(shí),文獻(xiàn)[9]將反編譯軟件二進(jìn)制代碼作為特征,應(yīng)用深度學(xué)習(xí)技術(shù)進(jìn)行特征學(xué)習(xí)并構(gòu)造漏洞檢測(cè)模型,得到了較好的檢測(cè)性能.文獻(xiàn)[10]通過(guò)計(jì)算二進(jìn)制函數(shù)和漏洞二進(jìn)制函數(shù)特征庫(kù)的相似度進(jìn)行漏洞檢測(cè),該方法通過(guò)大量的訓(xùn)練后的模型準(zhǔn)確率得到提升.文獻(xiàn)[11]在經(jīng)典代碼切片技術(shù)的基礎(chǔ)上改善二進(jìn)制代碼過(guò)程間切片方式及切片粒度,使得檢測(cè)精度和效率有所提升.在無(wú)法獲取源代碼的情況下,利用二進(jìn)制代碼依舊可以進(jìn)行漏洞檢測(cè)并且有較好的檢測(cè)能力.但是基于二進(jìn)制代碼的檢測(cè)方法并不直觀且表征方式單一.

    上述工作在源代碼表征方式上,均采用了單一的表征方式,無(wú)法全面表征源代碼,因此導(dǎo)致檢測(cè)效果不佳.針對(duì)上述檢測(cè)方法表征方式單一導(dǎo)致檢測(cè)效果不佳的問(wèn)題,為進(jìn)一步提升漏洞檢測(cè)效果,本文提出一種基于結(jié)構(gòu)化文本及代碼度量的漏洞檢測(cè)方法,在現(xiàn)有研究的基礎(chǔ)上從表征方法和特征擬合兩個(gè)方面做出改進(jìn),在函數(shù)級(jí)粒度上對(duì)源代碼進(jìn)行漏洞檢測(cè).首先,深度優(yōu)先遍歷源代碼抽象語(yǔ)法樹得到結(jié)構(gòu)化文本信息,使用源代碼靜態(tài)解析工具獲取代碼度量值;其次,通過(guò)構(gòu)造基于自注意力機(jī)制的神經(jīng)網(wǎng)絡(luò)捕獲結(jié)構(gòu)化文本信息中的長(zhǎng)期依賴關(guān)系,以擬合結(jié)構(gòu)化文本和漏洞存在之間的聯(lián)系并轉(zhuǎn)化為漏洞存在的概率,采用深度神經(jīng)網(wǎng)絡(luò)對(duì)代碼度量的結(jié)果進(jìn)行特征學(xué)習(xí)以擬合代碼度量值與漏洞存在的關(guān)系,并將其擬合的結(jié)果轉(zhuǎn)化為漏洞存在的概率;最后,采用支持向量機(jī)對(duì)由上述兩種表征方式獲得的漏洞存在概率做進(jìn)一步的決策分類,并獲得漏洞檢測(cè)的最終結(jié)果.在對(duì)比實(shí)驗(yàn)中,針對(duì)存在不同類型漏洞的11種源代碼樣本進(jìn)行漏洞檢測(cè)實(shí)驗(yàn),本文方法對(duì)每種漏洞的平均檢測(cè)準(zhǔn)確率為97.96%.與現(xiàn)有基于單一表征的漏洞檢測(cè)方法相比,本文方法的檢測(cè)準(zhǔn)確率提高了4.89%~12.21%,同時(shí),本文方法的漏報(bào)率和誤報(bào)率均保持在10%以內(nèi).

    1源代碼漏洞檢測(cè)方法設(shè)計(jì)

    1.1方法設(shè)計(jì)思路

    本文方法從結(jié)構(gòu)化文本信息和代碼度量?jī)蓚€(gè)維度對(duì)源代碼進(jìn)行表征,利用表征結(jié)果和預(yù)設(shè)的標(biāo)簽對(duì)構(gòu)造的神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練.訓(xùn)練完成的神經(jīng)網(wǎng)絡(luò)模型即為漏洞檢測(cè)模型,應(yīng)用漏洞檢測(cè)模型對(duì)待檢測(cè)源代碼進(jìn)行漏洞檢測(cè)得到檢測(cè)結(jié)果.本文方法中4個(gè)部分的設(shè)計(jì)思路如下.

    1)數(shù)據(jù)預(yù)處理.為生成符合本文漏洞檢測(cè)粒度的訓(xùn)練集和測(cè)試集,在本階段對(duì)原始數(shù)據(jù)集以函數(shù)級(jí)粒度進(jìn)行切片并設(shè)置監(jiān)督學(xué)習(xí)標(biāo)簽.預(yù)處理階段的輸出為代碼的函數(shù)切片以及對(duì)應(yīng)的監(jiān)督學(xué)習(xí)標(biāo)簽.

    2)數(shù)據(jù)表征.為充分表現(xiàn)源代碼特征,從結(jié)構(gòu)化文本信息和代碼度量?jī)蓚€(gè)維度對(duì)預(yù)處理后的數(shù)據(jù)進(jìn)行表征.為從源代碼結(jié)構(gòu)化文本信息角度表征源代碼,利用AST作為中間載體,采用深度優(yōu)先遍歷機(jī)制收集源代碼文本特征并轉(zhuǎn)化為向量形式;為從代碼度量角度表征源代碼,需要定義代碼度量指標(biāo),通過(guò)源代碼靜態(tài)解析工具獲取對(duì)應(yīng)的度量值.本階段的輸出為向量形式的結(jié)構(gòu)化文本信息以及代碼度量值序列.

    3)模型構(gòu)建及訓(xùn)練.為擬合數(shù)據(jù)表征的結(jié)果和漏洞存在之間的關(guān)系,構(gòu)建合適的神經(jīng)網(wǎng)絡(luò)模型對(duì)表征結(jié)果進(jìn)行特征學(xué)習(xí).構(gòu)建的神經(jīng)網(wǎng)絡(luò)模型能對(duì)結(jié)構(gòu)化文本信息和代碼度量值進(jìn)行特征學(xué)習(xí),綜合兩種特征給出漏洞檢測(cè)結(jié)果.最后,采用表征結(jié)果和預(yù)設(shè)的標(biāo)簽對(duì)模型進(jìn)行訓(xùn)練,本階段的輸出為訓(xùn)練完成的漏洞檢測(cè)模型.

    4)源代碼漏洞檢測(cè).為在本階段應(yīng)用訓(xùn)練完成的模型進(jìn)行漏洞檢測(cè),對(duì)待檢測(cè)源代碼進(jìn)行特征提取,提取特征的方式與表征方式相同.將提取到的特征輸入訓(xùn)練完成的模型中,輸出漏洞檢測(cè)的結(jié)果.

    1.2方法架構(gòu)設(shè)計(jì)

    本文提出的源代碼漏洞檢測(cè)模型由數(shù)據(jù)預(yù)處理、數(shù)據(jù)表征、模型搭建及訓(xùn)練、源代碼漏洞檢測(cè)4個(gè)部分組成,該方法的核心框架如圖1所示.該漏洞檢測(cè)模型的4個(gè)部分的主要處理過(guò)程為

    1)數(shù)據(jù)預(yù)處理.數(shù)據(jù)預(yù)處理階段包括代碼切片和設(shè)置監(jiān)督學(xué)習(xí)標(biāo)簽兩個(gè)部分.本文方法在函數(shù)級(jí)粒度進(jìn)行漏洞檢測(cè),因此需將源代碼數(shù)據(jù)切分為函數(shù)片段并根據(jù)函數(shù)片段是否存在漏洞設(shè)置標(biāo)簽.

    2)數(shù)據(jù)表征.為充分表征函數(shù)片段的信息,分別從結(jié)構(gòu)化文本信息和代碼度量?jī)煞N維度對(duì)預(yù)處理后的數(shù)據(jù)進(jìn)行表征.利用抽象語(yǔ)法樹(Abstract Syntax Tree,AST)表征函數(shù)片段的文本信息.定義代碼度量指標(biāo)對(duì)函數(shù)片段進(jìn)行代碼度量.

    3)模型構(gòu)建及訓(xùn)練.構(gòu)建一種神經(jīng)網(wǎng)絡(luò),由該神經(jīng)網(wǎng)絡(luò)針對(duì)兩種維度表征結(jié)果的數(shù)據(jù)類型進(jìn)行特征學(xué)習(xí),利用兩種表征結(jié)果以及預(yù)設(shè)的標(biāo)簽對(duì)神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練以構(gòu)造漏洞檢測(cè)模型.

    4)源代碼漏洞檢測(cè).利用訓(xùn)練完成的漏洞檢測(cè)模型對(duì)待檢測(cè)源代碼進(jìn)行漏洞檢測(cè).待檢測(cè)源代碼的預(yù)處理和表征方式與訓(xùn)練數(shù)據(jù)相同,將表征結(jié)果輸入訓(xùn)練完成的漏洞檢測(cè)模型得到檢測(cè)結(jié)果.

    2數(shù)據(jù)處理及表征

    2.1數(shù)據(jù)預(yù)處理

    本文采用的數(shù)據(jù)集為美國(guó)國(guó)家標(biāo)準(zhǔn)與技術(shù)研究院的Juliet Test Suite數(shù)據(jù)集[12],該數(shù)據(jù)集包含118種CWE[13]類型的28 881個(gè)Java文件.由于基于深度學(xué)習(xí)的方法對(duì)于數(shù)據(jù)量的需求較大,所以在研究中選取測(cè)試用例超過(guò)1 000例的漏洞類型.雖然在本文研究中以Java語(yǔ)言源代碼作為研究對(duì)象,但本文方法并不受編程語(yǔ)言類型限制,只要被檢測(cè)程序的源代碼能夠進(jìn)行結(jié)構(gòu)化表征和代碼度量,本文方法依然適用.

    為生成符合本文檢測(cè)粒度的訓(xùn)練集和測(cè)試集,需要對(duì)收集的數(shù)據(jù)進(jìn)行預(yù)處理.數(shù)據(jù)預(yù)處理階段包括代碼切片和監(jiān)督學(xué)習(xí)標(biāo)簽設(shè)置兩部分.

    2.1.1代碼切片

    本文方法的檢測(cè)粒度是函數(shù)級(jí)別,所以對(duì)需要表征的源代碼按函數(shù)進(jìn)行切片.漏洞源代碼用例如表1所示.

    代碼切片可以從Java文件中分離出不含空行和注釋的函數(shù)代碼,代碼切片的具體過(guò)程如下.

    1)源代碼清洗.為提升源代碼的信息密度,防止無(wú)用信息被表征,以字符串匹配的方式消除代碼中的空行和注釋.

    2)函數(shù)切片.利用Java靜態(tài)解析工具Javalang[14]解析Java源文件獲得類中包含的所有函數(shù)并存儲(chǔ)在列表中.

    2.1.2監(jiān)督學(xué)習(xí)標(biāo)簽設(shè)置

    判斷源代碼函數(shù)是否存在漏洞是一個(gè)典型的二分類問(wèn)題.本文針對(duì)漏洞檢測(cè)設(shè)計(jì)的神經(jīng)網(wǎng)絡(luò)是一個(gè)二分類監(jiān)督學(xué)習(xí)模型,因此需要對(duì)訓(xùn)練數(shù)據(jù)設(shè)置標(biāo)簽.

    Juliet Test Suite數(shù)據(jù)集中,已經(jīng)在函數(shù)名稱上標(biāo)注了標(biāo)記“good”(無(wú)漏洞)或“bad”(有漏洞).采用字符匹配的方法匹配函數(shù)名稱中的標(biāo)記,標(biāo)記為“good”的函數(shù)片段設(shè)置標(biāo)簽為“0”,標(biāo)記為“bad”的函數(shù)片段設(shè)置標(biāo)簽為“1”.由于函數(shù)名稱也會(huì)作為文本信息被表征,為了不使上述標(biāo)記影響模型的訓(xùn)練效果,依據(jù)標(biāo)記添加標(biāo)簽后,將其用隨機(jī)字符替代.

    2.2數(shù)據(jù)表征

    為充分表現(xiàn)源代碼特征,從代碼結(jié)構(gòu)化表征和代碼度量?jī)蓚€(gè)不同維度對(duì)源代碼進(jìn)行表征.代碼結(jié)構(gòu)化表征可以獲得代碼結(jié)構(gòu)化的文本信息,代碼度量能夠表征代碼的基本狀況.

    2.2.1代碼結(jié)構(gòu)化表征

    編程語(yǔ)言是一種結(jié)構(gòu)化的語(yǔ)言,源代碼中的信息有明確的結(jié)構(gòu)關(guān)系.因此表征自然語(yǔ)言的方法并不能充分表征源代碼中的語(yǔ)法和語(yǔ)義.為了得到更貼合實(shí)際的源代碼特征,采用結(jié)構(gòu)化表征方法對(duì)源代碼進(jìn)行表征.結(jié)構(gòu)化表征方法包括以下三個(gè)步驟.

    步驟1:利用Java源代碼解析工具javalang解析代碼,得到抽象語(yǔ)法樹節(jié)點(diǎn)和邊的信息,根據(jù)節(jié)點(diǎn)和邊的信息生成抽象語(yǔ)法樹.

    步驟2:深度優(yōu)先遍歷抽象語(yǔ)法樹,依次收集節(jié)點(diǎn)信息.深度優(yōu)先遍歷抽象語(yǔ)法樹的結(jié)果使得樹形數(shù)據(jù)轉(zhuǎn)化為一維文本數(shù)據(jù).

    步驟3:將一維文本數(shù)據(jù)轉(zhuǎn)化為神經(jīng)網(wǎng)絡(luò)的輸入.由于神經(jīng)網(wǎng)絡(luò)的輸入是向量形式的數(shù)據(jù),因此需要進(jìn)一步處理一維的文本數(shù)據(jù).首先對(duì)文本數(shù)據(jù)作分詞處理,然后通過(guò)統(tǒng)計(jì)方法生成詞典,根據(jù)詞典將文本表示為向量.

    2.2.2代碼度量

    本文方法旨在對(duì)函數(shù)級(jí)別的源代碼進(jìn)行漏洞檢測(cè),因此需要在代碼函數(shù)級(jí)別上進(jìn)行度量.為使完全依賴數(shù)據(jù)的深度學(xué)習(xí)方法能與安全專家的先驗(yàn)知識(shí)進(jìn)行有效交互,并使檢測(cè)模型的自適應(yīng)性更強(qiáng),在代碼度量中需要人工參與定義代碼度量指標(biāo).本文方法中的代碼度量處理過(guò)程包括2個(gè)步驟.

    步驟1:度量指標(biāo)定義.對(duì)代碼度量的指標(biāo)進(jìn)行定義,在代碼度量階段使用的主要度量指標(biāo)是Chidamber&Kemerer指標(biāo)[15],與傳統(tǒng)的McCabe指標(biāo)和Halstead metrics 指標(biāo)相比,Chidamber&Kemerer指標(biāo)是專門針對(duì)面向?qū)ο蟪绦蛘Z(yǔ)言提出的,故對(duì)Java語(yǔ)言的適應(yīng)性更強(qiáng).具體的度量指標(biāo)如表2所示,其中包含函數(shù)和函數(shù)所在類的相關(guān)信息.

    步驟2:代碼度量.使用代碼度量工具[16]進(jìn)行代碼度量可得到表2所示指標(biāo)的具體量化數(shù)值.

    3深度神經(jīng)網(wǎng)絡(luò)的構(gòu)建與訓(xùn)練

    3.1神經(jīng)網(wǎng)絡(luò)總體框架

    對(duì)源代碼的表征結(jié)果分別為結(jié)構(gòu)化的文本信息和代碼度量產(chǎn)生的數(shù)字序列.因此需要設(shè)計(jì)神經(jīng)網(wǎng)絡(luò)對(duì)結(jié)構(gòu)化文本信息和數(shù)字序列進(jìn)行特征學(xué)習(xí),并綜合二者判斷結(jié)果給出最終的漏洞檢測(cè)結(jié)果.

    在本文方法中構(gòu)建的神經(jīng)網(wǎng)絡(luò)模型有三個(gè)部分:①基于自注意力(Self-Attention,SA)機(jī)制[17]的神經(jīng)網(wǎng)絡(luò);②深度神經(jīng)網(wǎng)絡(luò)(Deep Neural Networks,DNN);③支持向量機(jī)(Support Vector Machine,SVM).該神經(jīng)網(wǎng)絡(luò)的主要結(jié)構(gòu)如圖2所示.

    其中,基于SA的神經(jīng)網(wǎng)絡(luò)模型用于文本序列的特征學(xué)習(xí),DNN模型用于代碼度量結(jié)果的特征學(xué)習(xí),SVM模型用于對(duì)上述兩個(gè)模型的輸出結(jié)果進(jìn)行處理和分類并得到最終的漏洞檢測(cè)結(jié)果.

    3.2基于SA機(jī)制的神經(jīng)網(wǎng)絡(luò)模型構(gòu)建

    分析文本數(shù)據(jù)最重要的目的是捕獲其中的長(zhǎng)期依賴關(guān)系,這種依賴關(guān)系在編程語(yǔ)言中尤為關(guān)鍵.受自然語(yǔ)言語(yǔ)法和人類文字編輯習(xí)慣的影響,自然語(yǔ)言中的依賴關(guān)系在時(shí)間跨度上是有限的.但是這種依賴關(guān)系在編程語(yǔ)言中的時(shí)間跨度是不受控制的,例如定義的變量或函數(shù),在代碼中的任意位置都可能被調(diào)用.因此在對(duì)源代碼結(jié)構(gòu)化文本漏洞檢測(cè)時(shí),通過(guò)SA機(jī)制解決依賴問(wèn)題.

    SA結(jié)構(gòu)如圖3所示,對(duì)于每一個(gè)輸入的詞向量xi,SA將其表示為向量qi、ki、vi.為獲取這3個(gè)向量,分別定義3個(gè)不同的權(quán)值矩陣WQ、WK、WV,這3個(gè)矩陣在訓(xùn)練階段通過(guò)反向傳播算法不斷更新優(yōu)化.將權(quán)值矩陣與輸入矩陣X=[x x x …,xn]相乘來(lái)獲得對(duì)應(yīng)的向量集和,計(jì)算方式如公式(1)~公式(3)所示.

    式中:X為輸入詞向量X組成的矩陣,WQ為對(duì)應(yīng)的權(quán)值矩陣,Q是由向量qi組成的矩陣.

    式中:X為輸入詞向量xi組成的矩陣,WK為對(duì)應(yīng)的權(quán)值矩陣,K是由向量ki組成的矩陣.

    式中:X為輸入詞向量xi組成的矩陣,WV為對(duì)應(yīng)的權(quán)值矩陣,V是由向量vi組成的矩陣.

    SA的計(jì)算結(jié)果為:

    式中:dk為尺度標(biāo)度,與向量qi的維度相等;Q、K、V分別為公式(1)~公式(3)的計(jì)算結(jié)果,是輸入矩陣X的三種不同的表示形式.

    在公式(4)中,Q和K相乘的結(jié)果用于反映每個(gè)詞與其他詞的相關(guān)程度,但是這個(gè)結(jié)果會(huì)隨著詞向量維度的增加而不斷增大.如果Q和K相乘的結(jié)果非常大,會(huì)造成softmax結(jié)果無(wú)限接近 會(huì)使得梯度較小,從而影響參數(shù)的更新.因此需要利用dk約束計(jì)算結(jié)果的大小.softmax能夠計(jì)算詞與詞的關(guān)聯(lián)程度在句子中的比重,softmax的結(jié)果再與V相乘,相當(dāng)于一個(gè)加權(quán)求和的結(jié)果,這個(gè)結(jié)果可以反映每個(gè)詞對(duì)于句子的貢獻(xiàn)程度.在本文研究中,這個(gè)貢獻(xiàn)程度表示這個(gè)詞與漏洞存在的關(guān)聯(lián)程度.

    本文構(gòu)建的基于SA的神經(jīng)網(wǎng)絡(luò)由輸入層、SA層、全連接層、輸出層構(gòu)成,其中全連接層由128個(gè)神經(jīng)元組成.由于SA中的計(jì)算都是線性計(jì)算,加入全連接層以擬合非線性特征.為通過(guò)文本特征得到漏洞存在的概率,輸出層以Sigmoid作為激活函數(shù). Sigmoid函數(shù)如公式(5)所示.

    Sigmoid函數(shù)能將神經(jīng)網(wǎng)絡(luò)的輸出映射到[0,1] 之間,能將學(xué)習(xí)到的文本特征轉(zhuǎn)化為漏洞存在的概率.通過(guò)源代碼結(jié)構(gòu)化表征結(jié)果和預(yù)設(shè)的標(biāo)簽對(duì)基于SA的神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,在訓(xùn)練完成的神經(jīng)網(wǎng)絡(luò)中輸入源代碼結(jié)構(gòu)化文本信息,即可輸出對(duì)應(yīng)源代碼存在漏洞的概率.

    3.3DNN模型構(gòu)建

    代碼度量的結(jié)果是一段數(shù)字序列,序列中的每個(gè)元素表示對(duì)應(yīng)度量指標(biāo)的具體數(shù)值,并且度量結(jié)果各個(gè)元素之間不存在相互依賴關(guān)系.基于上述應(yīng)用場(chǎng)景,DNN相較于傳統(tǒng)機(jī)器學(xué)習(xí)算法能夠在較短的時(shí)間內(nèi)學(xué)習(xí)到序列特征.因此應(yīng)用DNN進(jìn)行代碼度量的特征學(xué)習(xí),其結(jié)構(gòu)如圖4所示,隱藏層的神經(jīng)元個(gè)數(shù)均為64.

    對(duì)輸入的代碼度量結(jié)果,在經(jīng)過(guò)兩層隱藏層擬合代碼度量特征后,利用Sigmoid函數(shù)作為激活函數(shù)將輸出結(jié)果映射到[0,1]之間.利用代碼度量結(jié)果和預(yù)設(shè)的標(biāo)簽對(duì)DNN進(jìn)行訓(xùn)練,在訓(xùn)練完成的DNN模型中輸入代碼度量結(jié)果即可輸出對(duì)應(yīng)源代碼存在漏洞的概率.

    3.4SVM模型構(gòu)建

    本文漏洞檢測(cè)模型以學(xué)習(xí)文本序列特征的基于SA的神經(jīng)網(wǎng)絡(luò)和學(xué)習(xí)代碼度量特征的DNN為基礎(chǔ)構(gòu)建.在完成上述模型的訓(xùn)練后,能夠應(yīng)用這兩種模型分別從文本信息和代碼度量?jī)蓚€(gè)維度判斷代碼是否存在漏洞.為得到更加精確的漏洞檢測(cè)結(jié)果,需要綜合上述兩種模型的輸出結(jié)果.因此本文以上述兩種模型的輸出作為特征,應(yīng)用SVM作進(jìn)一步分類,判斷代碼是否存在漏洞.

    在獲取兩種模型輸出的漏洞存在概率后,需要應(yīng)用分類算法對(duì)輸出進(jìn)行分類以盡可能消除兩種表征方式判斷出現(xiàn)分歧的部分.因此,在應(yīng)用分類算法后,檢測(cè)效果會(huì)得到明顯提升.

    選擇SVM作為這一階段的分類器主要有以下兩個(gè)原因:①SVM在分類任務(wù)中效果好,并且分類思想簡(jiǎn)單直觀,能夠準(zhǔn)確繪制其決策邊界,以直觀表現(xiàn)本文方法的可行性;②分類方式靈活,可以通過(guò)調(diào)整其核函數(shù)進(jìn)行線性分類和非線性分類.由于無(wú)法提前判斷兩種模型的輸出是否是線性可分的,SVM的分類方式相較于其他分類算法更加適合作為本階段的分類器.

    常規(guī)的SVM通過(guò)繪制最大間隔的超平面進(jìn)行分類,但這種方法無(wú)法進(jìn)行非線性分類.由于基于SA 的神經(jīng)網(wǎng)絡(luò)和DNN的輸出結(jié)果可能出現(xiàn)線性不可分的情況,設(shè)置SVM的核函數(shù)以進(jìn)行非線性分類.本方法構(gòu)建的SVM模型利用線性核(linear)、多項(xiàng)式核(poly)和高斯核(rbf)對(duì)基于SA的神經(jīng)網(wǎng)絡(luò)和DNN 的輸出結(jié)果進(jìn)行分類.在訓(xùn)練完成的SVM模型中,輸入基于SA的神經(jīng)網(wǎng)絡(luò)和DNN輸出的漏洞存在概率,輸出漏洞檢測(cè)的最終結(jié)果.

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

    4.1評(píng)價(jià)指標(biāo)

    本文采用準(zhǔn)確率、精確率、召回率、F1-Score、誤報(bào)率、漏報(bào)率6個(gè)指標(biāo)對(duì)提出的漏洞檢測(cè)模型進(jìn)行評(píng)價(jià).為計(jì)算上述6個(gè)評(píng)價(jià)指標(biāo),需要在實(shí)驗(yàn)中收集以下4種數(shù)據(jù):①真正類(True Positive,TP)即被正確分類的有漏洞樣本數(shù)量;②假正類(False Positive,F(xiàn)P)即不含漏洞樣本被誤報(bào)的數(shù)量;③假負(fù)類(False Negative,F(xiàn)N)即未被成功檢測(cè)的漏洞樣本數(shù)量;④真負(fù)類(True Negative,TN)即不存在漏洞的樣本被準(zhǔn)確判斷的數(shù)量.6個(gè)評(píng)價(jià)指標(biāo)的定義如下.

    1)準(zhǔn)確率A :準(zhǔn)確分類的樣本占總樣本的比例.

    2)精確率P在所有被判斷為存在漏洞的樣本中,判斷正確的樣本比例.

    3)召回率R:被成功檢測(cè)出的漏洞樣本占所有漏洞樣本的比例.

    4)F 1-Score:精確率和召回率的調(diào)和平均值,反映模型整體表現(xiàn)情況.

    5)誤報(bào)率FPR:無(wú)漏洞樣本被誤報(bào)的比例.

    6)漏報(bào)率FNR:漏洞樣本中未被檢測(cè)出的樣本所占比例,F(xiàn)NR=1-R.

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

    為驗(yàn)證本文方法的性能,將本文方法與基于源代碼文本結(jié)構(gòu)化表征的漏洞檢測(cè)方法[8]、基于文本線性表征的漏洞檢測(cè)方法[7]和基于代碼度量的漏洞檢測(cè)方法[3]進(jìn)行對(duì)比實(shí)驗(yàn).具體實(shí)驗(yàn)環(huán)境配置如表3所示.

    4.2.1檢測(cè)模型構(gòu)建及性能評(píng)估

    本文提出的基于結(jié)構(gòu)化文本及代碼度量的漏洞檢測(cè)方法,綜合了源代碼文本的結(jié)構(gòu)化表征和代碼度量?jī)煞N表征方式.因此模型的構(gòu)造需要分三步進(jìn)行:①基于SA的神經(jīng)網(wǎng)絡(luò)訓(xùn)練及測(cè)試;②DNN模型訓(xùn)練及測(cè)試;③SVM模型訓(xùn)練及測(cè)試,其中SVM模型的輸出結(jié)果是本文檢測(cè)方法的最終結(jié)果.訓(xùn)練及測(cè)試所需數(shù)據(jù)集如表1所示,將表1中收集的測(cè)試用例進(jìn)行分割,得到訓(xùn)練集和測(cè)試集.

    1)基于SA的神經(jīng)網(wǎng)絡(luò)訓(xùn)練及測(cè)試.本文利用基于SA的神經(jīng)網(wǎng)絡(luò)進(jìn)行代碼結(jié)構(gòu)化文本特征的學(xué)習(xí).為驗(yàn)證SA機(jī)制在捕獲代碼結(jié)構(gòu)化文本長(zhǎng)期依賴能力優(yōu)于其他神經(jīng)網(wǎng)絡(luò),與其他4種神經(jīng)網(wǎng)絡(luò)進(jìn)行對(duì)比實(shí)驗(yàn),分別為:CNN、LSTM、BLSTM、GRU.對(duì)上述模型進(jìn)行訓(xùn)練,經(jīng)過(guò)測(cè)試分別得到5種模型的性能指標(biāo),實(shí)驗(yàn)結(jié)果如圖5~圖10所示.

    由圖5~圖10可見(jiàn),基于SA的神經(jīng)網(wǎng)絡(luò)在測(cè)試集上的準(zhǔn)確率和精確率較高且誤報(bào)率較低,這說(shuō)明與采用其他4種神經(jīng)網(wǎng)絡(luò)模型相比,基于SA的神經(jīng)網(wǎng)絡(luò)模型對(duì)源代碼的結(jié)構(gòu)化文本特征擬合效果更好.并且基于SA的神經(jīng)網(wǎng)絡(luò)F 1-Score保持在較高的水平,這說(shuō)明該神經(jīng)網(wǎng)絡(luò)在利用結(jié)構(gòu)化文本特征進(jìn)行漏洞檢測(cè)時(shí)的整體表現(xiàn)優(yōu)于其他模型.由圖6~ 圖11的曲線趨勢(shì)可見(jiàn),基于SA的神經(jīng)網(wǎng)絡(luò)在面對(duì)不同漏洞類型的表現(xiàn)也較為穩(wěn)定.綜上可知,基于SA 的神經(jīng)網(wǎng)絡(luò)能夠充分?jǐn)M合源代碼結(jié)構(gòu)化文本和漏洞存在之間的聯(lián)系,比其他神經(jīng)網(wǎng)絡(luò)更加適合基于文本結(jié)構(gòu)化表征的漏洞檢測(cè)任務(wù).

    2)DNN測(cè)試及訓(xùn)練.針對(duì)代碼度量特征,采用DNN構(gòu)建一個(gè)漏洞檢測(cè)模型,其在測(cè)試數(shù)據(jù)上的實(shí)驗(yàn)結(jié)果如表4所示.

    實(shí)驗(yàn)結(jié)果表明,基于代碼度量的方式雖然準(zhǔn)確率較高,但漏報(bào)率極高.例如,在對(duì)CWE129的檢測(cè)準(zhǔn)確率達(dá)到81.93%的前提下,漏報(bào)率達(dá)到69.09%.表明代碼度量表征方法對(duì)存在漏洞的代碼表征效果不好,導(dǎo)致檢測(cè)結(jié)果出現(xiàn)偏差.可見(jiàn),采用這種粗粒度的表征方式只適用于粗略判斷源代碼是否存在漏洞,不能準(zhǔn)確檢測(cè)源代碼的漏洞.因此代碼度量在一定程度上能夠判斷代碼的健康狀況,但僅依靠代碼度量不能充分表示漏洞代碼的特性.

    3)SVM模型訓(xùn)練及測(cè)試.在前序?qū)嶒?yàn)中,通過(guò)對(duì)結(jié)構(gòu)化文本特征和代碼度量特征訓(xùn)練,得到2種不同維度的檢測(cè)模型.在本實(shí)驗(yàn)中,將測(cè)試數(shù)據(jù)輸入2 種檢測(cè)模型分別得出源代碼存在漏洞的概率,以2個(gè)神經(jīng)網(wǎng)絡(luò)檢測(cè)模型的輸出作為新的特征,采用SVM進(jìn)行決策分類,得到最終檢測(cè)結(jié)果,即判斷漏洞是否存在.通過(guò)調(diào)整核函數(shù)利用SVM進(jìn)行線性分類和非線性分類.本文分別使用線性核(linear)、多項(xiàng)式核(poly)和高斯核(rbf)對(duì)上述兩種檢測(cè)模型的輸出作進(jìn)一步分類.以CWE113漏洞為例說(shuō)明分類過(guò)程,不同核函數(shù)的SVM決策邊界如圖11所示.

    圖11(a)是基于SA的檢測(cè)模型和DNN檢測(cè)模型的輸出散點(diǎn)圖,圖1(a)~圖11(d)中的每一個(gè)點(diǎn)表示測(cè)試數(shù)據(jù)集中的一個(gè)函數(shù)片段,圓點(diǎn)表示該函數(shù)真實(shí)存在漏洞,“x”點(diǎn)表示該函數(shù)不存在漏洞.圖中橫坐標(biāo)表示基于結(jié)構(gòu)化文本特征的檢測(cè)模型輸出的漏洞存在概率,縱坐標(biāo)表示基于代碼度量的檢測(cè)模型輸出的漏洞存在概率.例如靠近右上角的點(diǎn)表示基于SA的檢測(cè)模型和DNN檢測(cè)模型都判斷該函數(shù)有很大概率存在漏洞.圖11(1))~圖11(d)分別表示SVM中3種不同核函數(shù)的決策邊界.SVM模型的具體評(píng)估結(jié)果如表5~表7所示.

    由表5~表7可見(jiàn),經(jīng)過(guò)SVM的進(jìn)一步分類決策,漏洞檢測(cè)的各項(xiàng)指標(biāo)均有大幅提升,但是對(duì)于不同核函數(shù)的SVM分類結(jié)果相差不大.出現(xiàn)這種現(xiàn)象的原因是,在CWE113測(cè)試數(shù)據(jù)中,基于SA的神經(jīng)網(wǎng)絡(luò)和DNN的輸出是線性可分的.但是本文方法在應(yīng)用過(guò)程中,由于漏洞類型的多樣性和源代碼的復(fù)雜性,無(wú)法保證基于SA的神經(jīng)網(wǎng)絡(luò)和DNN的輸出都是線性可分的,因此本文方法采用三種不同核函數(shù)進(jìn)行分類.對(duì)比表4-表7以及圖5~圖10中的數(shù)據(jù)可見(jiàn),本文方法在結(jié)構(gòu)化表征方法和代碼度量方法的基礎(chǔ)上,提高了準(zhǔn)確率、精確率和召回率.

    4.2.2對(duì)比檢測(cè)實(shí)驗(yàn)

    為驗(yàn)證本文提出方法的優(yōu)越性,將本文方法和基于文本結(jié)構(gòu)化表征的漏洞檢測(cè)方法[8]、基于代碼度量的漏洞檢測(cè)方法[3]、基于線性文本表征的漏洞檢測(cè)方法Achilles[7]進(jìn)行對(duì)比實(shí)驗(yàn).其中基于結(jié)構(gòu)化文本的方法采用的是基于SA機(jī)制的神經(jīng)網(wǎng)絡(luò)模型、基于代碼度量的方法采用DNN模型、基于線性文本的方法采用LSTM模型.分別搭建上述4種檢測(cè)模型,在相同數(shù)據(jù)集下進(jìn)行訓(xùn)練和測(cè)試,4種模型的漏洞檢測(cè)準(zhǔn)確率對(duì)比結(jié)果如圖12所示.

    從圖12可見(jiàn),基于代碼度量的方法、基于結(jié)構(gòu)化表征的方法和Achilles對(duì)不同漏洞的檢測(cè)平均準(zhǔn)確率分別為85.75%、93.07%和92.18%,本文方法對(duì)不同漏洞的檢測(cè)平均準(zhǔn)確率為97.96%,均高于其他3種方法.本文方法能夠取得較好的漏洞檢測(cè)效果,有以下兩個(gè)原因:①本文方法從源代碼結(jié)構(gòu)文本信息以及代碼度量?jī)蓚€(gè)維度對(duì)源代碼進(jìn)行表征,相比于單一表征方法,本文的表征方法更加全面;②文本信息特征是漏洞檢測(cè)過(guò)程中較為重要的特征,本文所構(gòu)建的基于SA的神經(jīng)網(wǎng)絡(luò),能夠較好地捕捉文本信息中的長(zhǎng)期依賴關(guān)系.

    5結(jié)束語(yǔ)

    為進(jìn)一步提高源代碼漏洞檢測(cè)準(zhǔn)確率,降低誤報(bào)率,本文提出一種基于結(jié)構(gòu)化文本及代碼度量的漏洞檢測(cè)方法.通過(guò)代碼度量和結(jié)構(gòu)化文本兩種表征方法對(duì)源代碼進(jìn)行表征,利用神經(jīng)網(wǎng)絡(luò)模型進(jìn)行特征學(xué)習(xí)以構(gòu)造漏洞檢測(cè)模型,進(jìn)行漏洞檢測(cè).實(shí)驗(yàn)結(jié)果表明本文提出的方法有較好的檢測(cè)效果.

    本文方法僅從兩個(gè)維度對(duì)源代碼進(jìn)行表征,考慮的表征維度仍不夠全面.未來(lái)的工作重點(diǎn)是發(fā)掘更多適合漏洞檢測(cè)的源代碼表征方式,改進(jìn)表征方式以獲得更優(yōu)的檢測(cè)性能.

    參考文獻(xiàn)

    [1] LI Z J,SHAO Y. A survey of feature selection for vulnerability prediction using feature-based machine learning [C]//Proceedings of the 2019 11th International Conference on Machine Learning and Computing-ICMLC,19. New York:ACM Press,2019:36-42.

    [2] HORCH J W. Metrics and models in software quality engineering [J]. Control Engineering Practice,1996,4(9):1333-1334.

    [3] FERENC R,HEGEDUS P,GYIMESI P,et al. Challenging machine learning algorithms in predicting vulnerable JavaScript functions [C]//2019 IEEE/ACM 7th International Workshop on Realizing Artificial Intelligence Synergies in Software Engineering (RAISE). Montreal,QC,Canada:IEEE,2019:8-14.

    [4] SULTANA K Z. Towards a software vulnerability prediction model using traceable code patterns and software metrics[ C]//2017 32ndIEEE/ACM International Conference on Automated Software Engineering (ASE). Urbana,IL,USA:IEEE,2017:1022-1025.

    [5] YANG H Y,ZENG R Y,XU G Q,et al. A network security situation assessment method based on adversarial deep learning[J].Applied Soft Computing,202 102:107096.

    [6]LI Z,ZOU D Q,XU S H,et al.VulPecker:an automated vulnerability detection system based on code similarity analysis[C]//Proceedings of the 32nd Annual Conference on Computer Security Applications. New York:ACM,2016:201-213.

    [7] SACCENTE N,DEHLINGER J,DENG L,et al. Project Achilles:a prototype tool for static method-level vulnerability detection of Java source code using a recurrent neural network[ C]//2019 34th IEEE/ACM International Conference on Automated Software Engineering Workshop(ASEW)San Diego,CA,USA:IEEE,2019:114-121

    [8]陳肇炫,鄒德清,李珍,等.基于抽象語(yǔ)法樹的智能化漏洞檢測(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 (In Chinese)

    [9]ZHENG J Y,PANG J M,ZHANG X C,et al. Recurrent neural network based binary code vulnerability detection[C]//Proceedings of the 2019 2nd International Conference on Algorithms,Computing and Artificial Intelligence New York:ACM,2019:160-165

    [10]楊鑫.基于語(yǔ)義學(xué)習(xí)的二進(jìn)制漏洞代碼克隆檢測(cè)[D].北京:清華大學(xué),2019.

    YANG X Semantic learning based binary vulnerability code clone detection[D]. Beijing:Tsinghua University,2019.(In Chinese)

    [11]梅瑞,嚴(yán)寒冰,沈元,等.二進(jìn)制代碼切片技術(shù)在惡意代碼檢測(cè)中的應(yīng)用研究[J].信息安全學(xué)報(bào),202 6(3):125-140.

    MEI R,YAN H B,SHEN Y,et al Application research of slicing technology of binary executables in malware detection[J] Journal of Cyber Security,202 6(3):125-140 (In Chinese)

    [12] BOLAND JR F E,BLACK P E. Juliet 1.1 C/C++ and Java test suite[OL].[Accessed:May 2021]. https://www.nist.gov/publications/juliet-11-cc-and-java-test-suite.

    [13] MITRE. MITRE Common Weakness Enumeration (CWE)[OL]. [Accessed:May 2019] . https://cwe.mitre.org/.

    [14] THUNES C.Javalang 0.13.0 [OL]. [Accessed:May-2020] https://github.com/c2nes/javalang.

    [15]劉煒.基于機(jī)器學(xué)習(xí)的代碼漏洞檢測(cè)機(jī)制研究與應(yīng)用[D].成都:電子科技大學(xué),2018.

    LIU W Research and application of machine learning based code vulnerability detection mechanism[D] Chengdu:University of Electronic Science and Technology of China,2018 (In Chinese)

    [16] MAURICIO A. CK[OL]. [Accessed:May 2021] . https://github. com/mauricioaniche/ck.

    [17] VASWANI A,SHAZEER N,PARMAR N,et al. Attention is all you need [C]//Advances in Neural Information Processing Systems. 2017:5998-6008.

    猜你喜歡
    深度神經(jīng)網(wǎng)絡(luò)
    基于多注意力多尺度特征融合的圖像描述生成算法
    基于深度卷積神經(jīng)網(wǎng)絡(luò)的交通流量預(yù)測(cè)數(shù)學(xué)模型設(shè)計(jì)
    基于改進(jìn)SIFT特征和神經(jīng)網(wǎng)絡(luò)結(jié)合的場(chǎng)景識(shí)別
    軟件工程(2019年5期)2019-07-03 02:31:14
    基于Kaldi的語(yǔ)音識(shí)別算法
    深度神經(jīng)網(wǎng)絡(luò)在船舶自動(dòng)舵中的應(yīng)用
    基于深度神經(jīng)網(wǎng)絡(luò)的低延遲聲源分離方法
    基于大數(shù)據(jù)網(wǎng)絡(luò)的運(yùn)動(dòng)損傷評(píng)估模型研究
    試論基于深度神經(jīng)網(wǎng)絡(luò)的汽車車型識(shí)別問(wèn)題
    深度神經(jīng)網(wǎng)絡(luò)的發(fā)展現(xiàn)狀
    基于深度神經(jīng)網(wǎng)絡(luò)的身份識(shí)別研究
    九色国产91popny在线| 久久久国产欧美日韩av| 九色国产91popny在线| 制服诱惑二区| 中文字幕人妻丝袜一区二区| 五月玫瑰六月丁香| 一边摸一边做爽爽视频免费| 国产亚洲精品综合一区在线观看 | 亚洲国产高清在线一区二区三| 成人一区二区视频在线观看| 99久久国产精品久久久| 99久久无色码亚洲精品果冻| 国产精品日韩av在线免费观看| 精品人妻1区二区| 国产一区二区三区视频了| 亚洲国产日韩欧美精品在线观看 | 三级国产精品欧美在线观看 | 国产激情偷乱视频一区二区| 亚洲国产欧美网| 在线观看日韩欧美| 欧美日韩亚洲综合一区二区三区_| 欧美又色又爽又黄视频| 亚洲国产欧美网| 欧美一级毛片孕妇| 欧美成人一区二区免费高清观看 | 欧美激情久久久久久爽电影| 国产男靠女视频免费网站| e午夜精品久久久久久久| 哪里可以看免费的av片| 午夜激情福利司机影院| 黄片小视频在线播放| 此物有八面人人有两片| 国产精品国产高清国产av| 50天的宝宝边吃奶边哭怎么回事| av福利片在线| 日日干狠狠操夜夜爽| 欧美午夜高清在线| 亚洲专区字幕在线| 午夜成年电影在线免费观看| 在线观看免费午夜福利视频| 国产成人精品久久二区二区91| www.999成人在线观看| 国产成人系列免费观看| 变态另类成人亚洲欧美熟女| 日本一本二区三区精品| aaaaa片日本免费| 亚洲国产欧美一区二区综合| 国产黄a三级三级三级人| 此物有八面人人有两片| 日韩精品中文字幕看吧| 久久久久久久久中文| 一卡2卡三卡四卡精品乱码亚洲| 精品熟女少妇八av免费久了| 久久人妻福利社区极品人妻图片| 国产黄a三级三级三级人| 日韩 欧美 亚洲 中文字幕| 亚洲精品在线观看二区| 精品国产超薄肉色丝袜足j| 99精品在免费线老司机午夜| 很黄的视频免费| 嫁个100分男人电影在线观看| videosex国产| 欧美黄色片欧美黄色片| 日本 av在线| 男女午夜视频在线观看| 身体一侧抽搐| 三级男女做爰猛烈吃奶摸视频| 韩国av一区二区三区四区| av国产免费在线观看| 亚洲一区二区三区色噜噜| www日本在线高清视频| 中文字幕久久专区| 精品久久久久久成人av| 无人区码免费观看不卡| 亚洲五月天丁香| 亚洲精品国产精品久久久不卡| 欧美黑人精品巨大| 男女下面进入的视频免费午夜| 全区人妻精品视频| 99国产精品99久久久久| 亚洲成a人片在线一区二区| 真人一进一出gif抽搐免费| 18美女黄网站色大片免费观看| 亚洲国产欧美人成| 免费电影在线观看免费观看| 亚洲乱码一区二区免费版| 夜夜看夜夜爽夜夜摸| 亚洲最大成人中文| 日日爽夜夜爽网站| 在线播放国产精品三级| e午夜精品久久久久久久| 热99re8久久精品国产| 91国产中文字幕| 欧美zozozo另类| 琪琪午夜伦伦电影理论片6080| 精品乱码久久久久久99久播| 亚洲成人中文字幕在线播放| 人妻夜夜爽99麻豆av| 欧美日韩精品网址| 可以在线观看毛片的网站| 很黄的视频免费| 久久香蕉激情| 中出人妻视频一区二区| 欧美成人一区二区免费高清观看 | 国产精品一区二区精品视频观看| 91九色精品人成在线观看| 国内久久婷婷六月综合欲色啪| 国产真实乱freesex| 少妇裸体淫交视频免费看高清 | 中文字幕人成人乱码亚洲影| 一进一出抽搐gif免费好疼| 成年版毛片免费区| 人人妻人人看人人澡| 中文在线观看免费www的网站 | 国产视频一区二区在线看| 一级毛片女人18水好多| 老司机午夜福利在线观看视频| 国产av又大| videosex国产| 久久99热这里只有精品18| 99久久久亚洲精品蜜臀av| 午夜激情av网站| 波多野结衣巨乳人妻| 高清在线国产一区| 国产69精品久久久久777片 | 免费人成视频x8x8入口观看| 亚洲av美国av| 午夜福利欧美成人| 日本免费一区二区三区高清不卡| 777久久人妻少妇嫩草av网站| 精品高清国产在线一区| 国产aⅴ精品一区二区三区波| 好男人在线观看高清免费视频| 日本 欧美在线| 国产精品精品国产色婷婷| 亚洲国产欧洲综合997久久,| 亚洲欧美日韩无卡精品| 人妻夜夜爽99麻豆av| 亚洲精品在线美女| 在线十欧美十亚洲十日本专区| 日日爽夜夜爽网站| www.熟女人妻精品国产| bbb黄色大片| 国产成人影院久久av| 国产精品 国内视频| 日日干狠狠操夜夜爽| 亚洲18禁久久av| 无遮挡黄片免费观看| 久久国产精品影院| 国产av麻豆久久久久久久| 高清在线国产一区| 在线看三级毛片| 少妇的丰满在线观看| 午夜激情福利司机影院| 精品一区二区三区四区五区乱码| 国产三级中文精品| 久久久久精品国产欧美久久久| 99久久综合精品五月天人人| 桃色一区二区三区在线观看| 精品无人区乱码1区二区| 好男人在线观看高清免费视频| 1024手机看黄色片| 亚洲五月婷婷丁香| 91国产中文字幕| 别揉我奶头~嗯~啊~动态视频| 免费在线观看黄色视频的| 亚洲人成电影免费在线| 久久久久九九精品影院| 中亚洲国语对白在线视频| 欧美成人一区二区免费高清观看 | 欧美性猛交╳xxx乱大交人| 香蕉丝袜av| 国产精品久久久久久人妻精品电影| 夜夜爽天天搞| 99国产精品一区二区蜜桃av| 最近最新免费中文字幕在线| 18美女黄网站色大片免费观看| 又大又爽又粗| 久久久久国内视频| 99riav亚洲国产免费| 亚洲黑人精品在线| 色播亚洲综合网| 国模一区二区三区四区视频 | 亚洲欧美一区二区三区黑人| 舔av片在线| 极品教师在线免费播放| av在线天堂中文字幕| 亚洲av第一区精品v没综合| 一夜夜www| 久久亚洲真实| 国产97色在线日韩免费| 亚洲一区高清亚洲精品| 久久久久性生活片| 在线看三级毛片| 很黄的视频免费| 免费看日本二区| 国产成人欧美在线观看| 蜜桃久久精品国产亚洲av| 亚洲人成伊人成综合网2020| 久久久久性生活片| 亚洲免费av在线视频| 无人区码免费观看不卡| 欧美成狂野欧美在线观看| 亚洲人成电影免费在线| 18禁黄网站禁片午夜丰满| www.www免费av| 后天国语完整版免费观看| 香蕉国产在线看| 1024手机看黄色片| 中文字幕精品亚洲无线码一区| 国产69精品久久久久777片 | 俺也久久电影网| 久久午夜亚洲精品久久| 欧美色视频一区免费| 久久久久性生活片| 久久久久国产一级毛片高清牌| 夜夜躁狠狠躁天天躁| 亚洲av中文字字幕乱码综合| 日本熟妇午夜| 亚洲人成网站在线播放欧美日韩| 麻豆久久精品国产亚洲av| 国内少妇人妻偷人精品xxx网站 | 大型黄色视频在线免费观看| 亚洲欧美日韩无卡精品| 国产精品久久久久久精品电影| 十八禁网站免费在线| 精品久久久久久久毛片微露脸| 中亚洲国语对白在线视频| 亚洲成人久久爱视频| 特大巨黑吊av在线直播| 国产久久久一区二区三区| 一级毛片女人18水好多| 熟妇人妻久久中文字幕3abv| 黑人巨大精品欧美一区二区mp4| 我的老师免费观看完整版| 免费看a级黄色片| 黄色女人牲交| a级毛片a级免费在线| 免费搜索国产男女视频| 别揉我奶头~嗯~啊~动态视频| 欧美成人免费av一区二区三区| 久久国产精品人妻蜜桃| 国产亚洲精品一区二区www| 婷婷精品国产亚洲av| 久久婷婷成人综合色麻豆| 夜夜看夜夜爽夜夜摸| 久久久久久久久免费视频了| 搞女人的毛片| 国产精品一区二区三区四区久久| 丝袜美腿诱惑在线| 免费高清视频大片| 最近最新中文字幕大全免费视频| 欧美在线一区亚洲| 亚洲成人久久爱视频| 国产人伦9x9x在线观看| 黄色毛片三级朝国网站| 一二三四在线观看免费中文在| www.自偷自拍.com| 美女午夜性视频免费| 老汉色av国产亚洲站长工具| 成人午夜高清在线视频| 午夜老司机福利片| xxx96com| 欧美日韩精品网址| 久久婷婷成人综合色麻豆| 久久久国产欧美日韩av| 美女黄网站色视频| 中文字幕熟女人妻在线| а√天堂www在线а√下载| 毛片女人毛片| xxxwww97欧美| 欧美日韩亚洲国产一区二区在线观看| 怎么达到女性高潮| 欧美日韩国产亚洲二区| 国产精品99久久99久久久不卡| 日韩欧美 国产精品| 婷婷精品国产亚洲av在线| 久久精品国产亚洲av香蕉五月| 欧美性猛交黑人性爽| 亚洲精华国产精华精| 久久这里只有精品19| 精品久久久久久成人av| 日日摸夜夜添夜夜添小说| 日本熟妇午夜| 精品少妇一区二区三区视频日本电影| 国产精品影院久久| 久久精品国产亚洲av香蕉五月| 亚洲熟妇熟女久久| 午夜亚洲福利在线播放| 后天国语完整版免费观看| 可以免费在线观看a视频的电影网站| 九色国产91popny在线| 又黄又爽又免费观看的视频| 亚洲 国产 在线| 他把我摸到了高潮在线观看| 国产三级黄色录像| cao死你这个sao货| 99久久国产精品久久久| 久久久久精品国产欧美久久久| 日韩欧美在线乱码| 曰老女人黄片| 神马国产精品三级电影在线观看 | 国产精品精品国产色婷婷| 黄片大片在线免费观看| 国产v大片淫在线免费观看| 欧美一级a爱片免费观看看 | 久久婷婷人人爽人人干人人爱| av在线天堂中文字幕| 久久九九热精品免费| 亚洲avbb在线观看| 看黄色毛片网站| 久久中文看片网| 亚洲国产欧洲综合997久久,| av超薄肉色丝袜交足视频| 成人国语在线视频| 黄色毛片三级朝国网站| 777久久人妻少妇嫩草av网站| 国产三级在线视频| 久久精品国产清高在天天线| 精品国产乱码久久久久久男人| 制服诱惑二区| 女人被狂操c到高潮| 一级毛片精品| 女同久久另类99精品国产91| 亚洲欧美日韩无卡精品| 天堂动漫精品| 麻豆av在线久日| 久久久久国产一级毛片高清牌| 窝窝影院91人妻| 国产精品亚洲一级av第二区| 午夜免费成人在线视频| 变态另类丝袜制服| 亚洲五月婷婷丁香| 免费在线观看成人毛片| 日日夜夜操网爽| 久热爱精品视频在线9| 国产成人系列免费观看| 老汉色av国产亚洲站长工具| 国产精品久久视频播放| 首页视频小说图片口味搜索| 免费一级毛片在线播放高清视频| 小说图片视频综合网站| 国产真人三级小视频在线观看| 精品国产乱码久久久久久男人| 一进一出抽搐动态| 国产1区2区3区精品| 国产精品久久久久久久电影 | 两人在一起打扑克的视频| 精品第一国产精品| 又黄又粗又硬又大视频| 亚洲精品在线观看二区| 老汉色av国产亚洲站长工具| 啪啪无遮挡十八禁网站| 欧美中文综合在线视频| 国内精品一区二区在线观看| 欧美午夜高清在线| 久久久国产精品麻豆| 十八禁人妻一区二区| 亚洲avbb在线观看| 成人永久免费在线观看视频| 亚洲专区中文字幕在线| 2021天堂中文幕一二区在线观| 亚洲精品色激情综合| 人成视频在线观看免费观看| 免费在线观看成人毛片| 国产久久久一区二区三区| 一级毛片高清免费大全| 成人特级黄色片久久久久久久| 日韩 欧美 亚洲 中文字幕| 国产亚洲欧美在线一区二区| 久久久久国内视频| 精品欧美一区二区三区在线| 成人精品一区二区免费| 精品一区二区三区视频在线观看免费| 他把我摸到了高潮在线观看| 久久精品91无色码中文字幕| 亚洲精品国产一区二区精华液| 日韩国内少妇激情av| 亚洲精品在线观看二区| 亚洲av电影在线进入| 操出白浆在线播放| 国产探花在线观看一区二区| 麻豆成人av在线观看| 少妇被粗大的猛进出69影院| 欧美成人性av电影在线观看| 麻豆成人午夜福利视频| 国产av一区在线观看免费| 国产亚洲av高清不卡| 国产蜜桃级精品一区二区三区| 99riav亚洲国产免费| 一卡2卡三卡四卡精品乱码亚洲| 亚洲自偷自拍图片 自拍| 2021天堂中文幕一二区在线观| 久久中文字幕一级| 国产成人精品久久二区二区91| 国模一区二区三区四区视频 | 特大巨黑吊av在线直播| 手机成人av网站| 亚洲男人天堂网一区| 亚洲欧美日韩高清专用| 99精品在免费线老司机午夜| 波多野结衣高清无吗| 国产高清有码在线观看视频 | 欧美乱色亚洲激情| 亚洲国产看品久久| 国产精品 国内视频| 亚洲国产精品久久男人天堂| 又紧又爽又黄一区二区| 国产精品一区二区三区四区久久| 毛片女人毛片| 午夜日韩欧美国产| 亚洲国产精品sss在线观看| 黄频高清免费视频| 亚洲男人的天堂狠狠| 久久香蕉精品热| 精品国产美女av久久久久小说| 青草久久国产| 一级毛片精品| www日本黄色视频网| 一个人观看的视频www高清免费观看 | 久久久久久久久免费视频了| 在线十欧美十亚洲十日本专区| 欧美在线黄色| 日韩高清综合在线| xxx96com| 色哟哟哟哟哟哟| 国产亚洲欧美在线一区二区| 久久香蕉激情| 国产激情欧美一区二区| 久久精品人妻少妇| 亚洲精品中文字幕一二三四区| 老汉色av国产亚洲站长工具| 午夜福利欧美成人| 久久久水蜜桃国产精品网| 亚洲第一欧美日韩一区二区三区| 欧美三级亚洲精品| 中文字幕人妻丝袜一区二区| 欧美日韩精品网址| 中文字幕av在线有码专区| 久久久国产欧美日韩av| 亚洲aⅴ乱码一区二区在线播放 | 国产高清videossex| 在线观看66精品国产| 99久久精品热视频| 禁无遮挡网站| 亚洲av片天天在线观看| 亚洲自拍偷在线| 国产精品久久视频播放| 精品国内亚洲2022精品成人| 亚洲真实伦在线观看| 成人午夜高清在线视频| 国产在线精品亚洲第一网站| 亚洲精品在线观看二区| 免费人成视频x8x8入口观看| 蜜桃久久精品国产亚洲av| 亚洲成人免费电影在线观看| 九色成人免费人妻av| 又爽又黄无遮挡网站| 亚洲欧美精品综合一区二区三区| 久久天堂一区二区三区四区| 久久久精品国产亚洲av高清涩受| 欧美激情久久久久久爽电影| 一二三四社区在线视频社区8| 桃色一区二区三区在线观看| 亚洲午夜精品一区,二区,三区| 国产精品免费一区二区三区在线| 免费在线观看黄色视频的| 国产成+人综合+亚洲专区| 亚洲片人在线观看| 制服诱惑二区| 99国产精品一区二区三区| 宅男免费午夜| 亚洲人成伊人成综合网2020| 国产精品一区二区精品视频观看| 国产一区二区在线av高清观看| 亚洲一区高清亚洲精品| 精品一区二区三区视频在线观看免费| 国产精品精品国产色婷婷| 伦理电影免费视频| 日韩欧美 国产精品| 国产亚洲精品久久久久5区| 国产成人啪精品午夜网站| 欧美三级亚洲精品| 国产精品精品国产色婷婷| 正在播放国产对白刺激| 久久久久亚洲av毛片大全| 亚洲精华国产精华精| 啦啦啦韩国在线观看视频| 午夜a级毛片| 中文字幕精品亚洲无线码一区| 精品福利观看| 19禁男女啪啪无遮挡网站| 老司机午夜福利在线观看视频| 久久香蕉精品热| 亚洲人成77777在线视频| 午夜久久久久精精品| 国产精品影院久久| a级毛片在线看网站| 国产av麻豆久久久久久久| 国产精品av视频在线免费观看| 美女 人体艺术 gogo| 亚洲欧美精品综合一区二区三区| 国产精品爽爽va在线观看网站| 成人三级黄色视频| 日本 欧美在线| 国产成+人综合+亚洲专区| 国产黄a三级三级三级人| 可以免费在线观看a视频的电影网站| 老汉色∧v一级毛片| 国产高清有码在线观看视频 | 国产亚洲av高清不卡| 国产精品爽爽va在线观看网站| 午夜成年电影在线免费观看| av天堂在线播放| 十八禁人妻一区二区| 无限看片的www在线观看| 久久精品影院6| 国产v大片淫在线免费观看| 亚洲中文字幕一区二区三区有码在线看 | 高潮久久久久久久久久久不卡| 18禁黄网站禁片免费观看直播| 成人手机av| 亚洲专区字幕在线| 国产亚洲欧美在线一区二区| svipshipincom国产片| 午夜影院日韩av| 精品欧美国产一区二区三| 国产精品98久久久久久宅男小说| 亚洲av日韩精品久久久久久密| 成人18禁高潮啪啪吃奶动态图| 一a级毛片在线观看| 午夜激情福利司机影院| 午夜两性在线视频| 欧美成人性av电影在线观看| 久久久久久久久中文| 婷婷精品国产亚洲av在线| 两个人视频免费观看高清| 成人18禁在线播放| 国产高清视频在线播放一区| a级毛片在线看网站| 香蕉久久夜色| 老汉色av国产亚洲站长工具| 黄色丝袜av网址大全| 国产野战对白在线观看| 制服诱惑二区| 精品少妇一区二区三区视频日本电影| 51午夜福利影视在线观看| 中文资源天堂在线| 黄色视频不卡| 欧美一级a爱片免费观看看 | 久久久精品国产亚洲av高清涩受| 国产一区二区三区视频了| 中国美女看黄片| 国产精品98久久久久久宅男小说| 亚洲国产欧美人成| 91老司机精品| 亚洲国产看品久久| 99精品久久久久人妻精品| 亚洲va日本ⅴa欧美va伊人久久| 五月玫瑰六月丁香| 亚洲国产精品久久男人天堂| 啦啦啦免费观看视频1| 99久久综合精品五月天人人| 五月伊人婷婷丁香| 亚洲免费av在线视频| 亚洲精品一区av在线观看| 97超级碰碰碰精品色视频在线观看| 亚洲一区二区三区色噜噜| 日韩大码丰满熟妇| 又紧又爽又黄一区二区| 99久久无色码亚洲精品果冻| 老司机在亚洲福利影院| 搡老妇女老女人老熟妇| 在线十欧美十亚洲十日本专区| 久久人妻福利社区极品人妻图片| 日韩欧美在线乱码| 天天添夜夜摸| 真人做人爱边吃奶动态| 欧美一区二区国产精品久久精品 | 婷婷精品国产亚洲av| 日韩av在线大香蕉| 曰老女人黄片| 久久天躁狠狠躁夜夜2o2o| 色老头精品视频在线观看| 久久久久久久午夜电影| 麻豆一二三区av精品| 国产精品爽爽va在线观看网站| 亚洲午夜理论影院| 久久精品综合一区二区三区| 丁香六月欧美| 久久久精品欧美日韩精品| 国产伦在线观看视频一区| 丝袜美腿诱惑在线| 91九色精品人成在线观看| 黄色视频不卡| 免费一级毛片在线播放高清视频| 国产亚洲欧美在线一区二区| 男男h啪啪无遮挡| 亚洲人成77777在线视频| 香蕉久久夜色| 成人午夜高清在线视频| 国产精品99久久99久久久不卡| 国产精品久久视频播放| 国语自产精品视频在线第100页| 亚洲一码二码三码区别大吗| 亚洲最大成人中文| 人成视频在线观看免费观看| 午夜激情av网站| 麻豆av在线久日| 亚洲熟女毛片儿| 最近在线观看免费完整版| 我的老师免费观看完整版| 18禁黄网站禁片午夜丰满| 亚洲真实伦在线观看| 亚洲欧美精品综合久久99|