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

    基于雙向數(shù)據(jù)流分析與圖抽象嵌入的漏洞檢測方法

    2025-07-28 00:00:00曹子亨何立風(fēng)賈鷗張夢穎劉玉郭奕辰
    計算機應(yīng)用研究 2025年7期
    關(guān)鍵詞:深度學(xué)習(xí)網(wǎng)絡(luò)安全

    關(guān)鍵詞:深度學(xué)習(xí);漏洞檢測;數(shù)據(jù)流分析;圖神經(jīng)網(wǎng)絡(luò);網(wǎng)絡(luò)安全

    中圖分類號:TP319 文獻標(biāo)志碼:A 文章編號:1001-3695(2025)07-034-2176-08

    doi:10.19734/j. issn.1001-3695.2024.10.0436

    Abstract:Ascyberatacksandcybercrimesbecome increasinglysevere,theaccuracyandcomprehensivenessofsoftware vulnerabilitydetection faces significant challenges.To addressissuessuch as the dificultyofcapturing complex semanticsof interproceduralVulnerabilies,theincompleteanalysisofdataflowinformation,andthechallengesinextractingvulnerability paternfeatures,thispaperintroducedabidirectionaldataflowanalysis vulnerabilitydetectionmethodbasedonLLVMIRand Bi-GGNN—BiG-BiD(Bi-GGNNbasedonbidirectionalDFA).Firstly,it generatedLLVMIRbycompiling sourcecode with LLVM,andconstructedanICFG(interproceduralcontrolflowgaph)toincorporateinterproceduralvulnerabilitysemantics.In addition,this paper proposeda novelICFG abstract embedding method,called DLAE (DFA line-level abstract embedding), combiningabstractdataflowwithLLVMIRline-levelvulnerabilityfeatureembeddngtoaccuratelyrepresenpotentialvulnerabilitypatersinhecode.Finally,ittrainedBi-GGNNtodynamicallsimulatereachingdefinitionanalysisandlivevariable analysis withintheICFG,enableddynamic propagationandupdatingof abstractdataflows.ExperimentalresultsontheBigVul and Reveal public datasets show that BiG-BiD achieves a recall rate of 73.7% ,outperforming existing static analysis tools and deep learning-based vulnerability detection models by 5%~38% . Additionally,this method successfully detects 23 CVE vulnerabilitiesacrossfouropen-source projects,,thathaveneverseenbefore,,1Oof the vulnerabilitiesremainunpatched,demonstrating the effctivenessand generalization of the proposed method on vulnerability detection tasks.

    KeyWords:deep learning;vulnerability detection;data flow analysis;GNN;cyber security

    0 引言

    近年來,高級持續(xù)性威脅(APT)攻擊頻發(fā)\",網(wǎng)絡(luò)空間安全已然成為國家安全不可或缺的核心部分,更是推動新時代經(jīng)濟高質(zhì)量發(fā)展的戰(zhàn)略基石。軟件漏洞作為威脅軟件系統(tǒng)安全的首要隱患,往往是構(gòu)成各類重大安全事件的根源[2,3]。如何高效、精準(zhǔn)地檢測軟件代碼中的潛在漏洞,已成為網(wǎng)絡(luò)安全領(lǐng)域亟待攻克的前沿難題和研究焦點。

    早期漏洞檢測主要依賴于傳統(tǒng)程序分析方法。這些方法[4.5]主要包括靜態(tài)分析、動態(tài)分析與符號執(zhí)行。比如,Luo等人[4提出了一種上下文敏感的跨過程靜態(tài)污點分析工具TChecker,可用于檢測PHP應(yīng)用程序中的污點式漏洞。Mues等人5提出了一種基于Java程序的動態(tài)符號執(zhí)行框架Jaint,通過用戶定義的動態(tài)污點分析實現(xiàn)更靈活的漏洞檢測。Jaint引入了領(lǐng)域特定語言,使得用戶能夠為JavaWeb應(yīng)用程序定義特定基于污點的安全分析規(guī)則。盡管傳統(tǒng)方法在一定程度上能夠揭示程序中的潛在漏洞,但也存在著諸如人工自定義復(fù)雜規(guī)則、漏洞模式難以捕獲等諸多局限性。

    隨著人工智能技術(shù)的迅猛發(fā)展,基于深度學(xué)習(xí)的漏洞檢測模型在漏洞語義特征提取與檢測方面顯現(xiàn)出巨大的潛力[6\~8],因其無須專家手動定義漏洞檢測規(guī)則、檢測效率高等優(yōu)勢[9,10],迅速引起了研究人員與安全廠商的廣泛關(guān)注。通過廣泛收集代碼中的漏洞樣本構(gòu)建數(shù)據(jù)集,這些方法能夠基于深度學(xué)習(xí)算法有效提取漏洞的語義特征,從而實現(xiàn)精準(zhǔn)的漏洞檢測[11],尤其是圖結(jié)構(gòu)所承載的豐富語義結(jié)構(gòu)特征[12],使得基于圖神經(jīng)網(wǎng)絡(luò)的漏洞檢測模型在性能上明顯優(yōu)于傳統(tǒng)基于token的模型。比如,Zhou等人[13]提出了基于通用圖神經(jīng)網(wǎng)絡(luò)的模型Devign。該模型通過融合抽象語法樹、數(shù)據(jù)流圖、控制流圖和鄰接上下文語句的圖表示來提取圖級特征,從而進行有效的漏洞檢測。Chakraborty等人[14]提出了一種基于代碼屬性圖的通用漏洞檢測框架ReVeal,并指出現(xiàn)有最先進的模型在真實世界數(shù)據(jù)集上性能顯著下降的現(xiàn)象,這一發(fā)現(xiàn)引發(fā)了對漏洞檢測模型魯棒性的深入探討。Wen等人[15]提出了一種新型漏洞檢測框架Ample,結(jié)合圖簡化和增強圖表示學(xué)習(xí),通過對代碼屬性圖的簡化,使用改進的圖卷積神經(jīng)網(wǎng)絡(luò)進行特征提取,以進一步提升檢測性能。

    盡管在漏洞檢測領(lǐng)域現(xiàn)有研究取得了一定進展,但漏洞語義特征提取與跨過程漏洞分析仍然是該領(lǐng)域的主要挑戰(zhàn)[16,17]?,F(xiàn)有的漏洞檢測方法主要聚焦于代碼的表層特征,缺乏對跨過程語義信息的建模能力。尤其是程序中包含豐富的動態(tài)數(shù)據(jù)流信息(如變量活躍狀態(tài)的傳播及定義的到達性)與漏洞檢測任務(wù)的相關(guān)性較高,但并未被充分挖掘和利用,難以滿足真實世界復(fù)雜漏洞場景下的高效檢測需求[18-21]。因此,迫切需要一種能夠充分捕捉跨過程復(fù)雜語義與動態(tài)數(shù)據(jù)流特征的新方法。

    通過深入探究數(shù)據(jù)流分析與圖神經(jīng)網(wǎng)絡(luò)消息傳遞的相似性,本文提出了一種基于LLVMIR與雙向門控圖神經(jīng)網(wǎng)絡(luò)的雙向數(shù)據(jù)流分析的漏洞檢測方法BiG-BiD。該方法首先使用LLVM編譯源代碼生成LLVMIR,并構(gòu)建過程間控制流圖ICFG,從而引入跨過程的漏洞語義信息。此外,本文設(shè)計了一種結(jié)合抽象數(shù)據(jù)流與LLVMIR行級漏洞屬性特征嵌入的ICFG抽象嵌入方法DLAE,使用屬性圖定義的方式結(jié)合抽象數(shù)據(jù)流狀態(tài)、節(jié)點信息、邊的信息構(gòu)造適合圖神經(jīng)網(wǎng)絡(luò)輸入的圖級向量形式,以精確表征代碼潛在的漏洞模式特征。最后,鑒于到達定義分析在變量定義的傳播過程中能夠有效捕獲空指針解引用、未初始化變量等常見漏洞,活躍變量分析通過反向傳播分析變量生命周期,幫助發(fā)現(xiàn)資源泄露、死代碼等漏洞。通過引入后向邊訓(xùn)練Bi-GGNN的方式,在ICFG中動態(tài)模擬到達定義分析與活躍變量分析,實現(xiàn)在訓(xùn)練迭代中動態(tài)傳播與更新抽象數(shù)據(jù)流信息,兩種分析方法相輔相成,以此建模更加全面的數(shù)據(jù)流相關(guān)的過程間漏洞語義特征。在 Big-Vul 、Reveal數(shù)據(jù)集上的實驗表明,相較于傳統(tǒng)靜態(tài)分析工具和其他基于深度學(xué)習(xí)的方法,本文BiG-BiD不僅能夠捕捉復(fù)雜的過程間漏洞語義,還能夠通過消息傳遞更新機制有效模擬數(shù)據(jù)流的動態(tài)更新與傳播,從而提高了漏洞檢測的覆蓋率和準(zhǔn)確性。本文的主要貢獻如下:

    a)本文結(jié)合抽象數(shù)據(jù)流與LLVMIR行級漏洞屬性特征嵌入,設(shè)計了一種ICFG抽象嵌入方法DLAE,能夠更好地表征跨過程漏洞模式。b)本文設(shè)計了BiG-BiD方法,通過在模型訓(xùn)練迭代中動態(tài)模擬雙向數(shù)據(jù)流分析,實現(xiàn)在動態(tài)更新與傳遞過程中可以深度捕獲漏洞語義特征,為有效結(jié)合數(shù)據(jù)流信息提供了一種新思路。c)通過上述方法實現(xiàn),在Big-Vul、Reveal兩個真實數(shù)據(jù)集上的實驗證明了該方法的有效性。在四個知名開源項目中成功檢測出23個CVE漏洞,其中10個漏洞仍未被修復(fù),證明了該方法的泛化性。

    1相關(guān)理論

    1.1基于LLVMIR的過程間控制流圖

    在程序靜態(tài)分析中,分析對象通常為抽象語法樹(AST)或代碼中間表示(IR)。盡管抽象語法樹能夠較好地反映程序的語法結(jié)構(gòu),但其層次化的樹型結(jié)構(gòu)引入了大量的節(jié)點和邊,導(dǎo)致漏洞語義提取與分析變得更加復(fù)雜。此外,AST不具備控制流信息,難以利用程序控制信息進行有效的數(shù)據(jù)流分析。

    相比之下,IR作為一種更接近底層的線性中間表示形式,能夠更簡潔、直接地描述程序的控制流和數(shù)據(jù)流,特別是在結(jié)合調(diào)用流信息時展現(xiàn)出其獨特的優(yōu)勢。因此,本文選擇LLVMIR作為分析對象,LLVMIR是LLVM編譯器框架中的核心中間表示語言,處于高級語言代碼和底層機器代碼之間。

    過程間控制流圖是一種用于表示程序中各個過程之間控制流關(guān)系的圖結(jié)構(gòu),包含了跨函數(shù)調(diào)用的控制流信息[22]。在漏洞檢測任務(wù)中,跨函數(shù)漏洞屢見不鮮。通過引人ICFG,研究人員可以充分挖掘跨函數(shù)的漏洞語義信息,從而提高漏洞檢測的全面性與準(zhǔn)確性[23]

    如圖1所示,以階乘函數(shù)為例,基于LLVMIR構(gòu)造過程間控制流圖ICFG。在構(gòu)建過程間控制流圖時,首先從程序語句中提取函數(shù)調(diào)用關(guān)系,并在控制流圖中添加一條從調(diào)用點指向被調(diào)用函數(shù)入口的有向邊,以表示調(diào)用指令與被調(diào)用函數(shù)之間的關(guān)系。其次,需在圖中添加從函數(shù)返回指令到調(diào)用指令的調(diào)用邊,表示函數(shù)執(zhí)行完畢后控制流將返回至調(diào)用點。

    此外,對于在當(dāng)前分析范圍內(nèi)不可見的外部函數(shù),需引入一個特殊的外部節(jié)點。所有對外部函數(shù)的調(diào)用都與該節(jié)點相連,以確保能夠捕捉到與外部函數(shù)的交互關(guān)系。最后,對于那些在當(dāng)前函數(shù)內(nèi)未定義但被調(diào)用的函數(shù),則創(chuàng)建一個包含單個指令節(jié)點的虛擬函數(shù),并通過顯式添加調(diào)用邊來表示對該函數(shù)的調(diào)用。這一系列構(gòu)建步驟有效增強了ICFG的表達能力,使其能夠全面捕捉程序的控制流信息。

    1.2 數(shù)據(jù)流分析

    數(shù)據(jù)流分析是程序靜態(tài)分析中最為關(guān)鍵的技術(shù)之一,旨在通過對程序控制流的深人分析,推斷程序中變量、表達式及程序狀態(tài)隨時間的變化[24]。該技術(shù)可用于洞察不同程序點上變量的潛在值或狀態(tài),從而有效地發(fā)現(xiàn)潛在錯誤、優(yōu)化代碼,或確保程序的正確性。

    數(shù)據(jù)流分析的實現(xiàn)依賴于控制流圖中相鄰節(jié)點間的數(shù)據(jù)流信息傳播與更新。具體而言,它通過聚合函數(shù)從相鄰節(jié)點匯聚數(shù)據(jù)流信息,并使用傳遞函數(shù)利用節(jié)點內(nèi)部可用的信息對數(shù)據(jù)流進行傳播。此過程持續(xù)迭代,直至到達不動點,從而確保數(shù)據(jù)流信息的收斂[25]。這種動態(tài)的分析機制使得數(shù)據(jù)流分析能夠在復(fù)雜的程序結(jié)構(gòu)中高效地識別潛在的漏洞與錯誤。

    數(shù)據(jù)流分析的一個典型實例是到達定義分析。在這一過程中,程序中的賦值操作通常被視作一個定義 d 對于程序中某個特定點 p ,如果一個變量定義 d 可以沿著某條控制流路徑從定義點傳播到該點 p ,并且在此路徑上沒有對該變量的重新定義,則稱該定義 d 在程序點 p 可到達。

    在漏洞檢測任務(wù)中,到達定義分析可以基于漏洞的根本原因進行有效檢測。比如,當(dāng)NULL指針的定義到達指針解引用操作時,將會觸發(fā)空指針解引用漏洞。這一分析方法同樣適用于檢測其他類型的漏洞,如緩沖區(qū)溢出、整數(shù)溢出、未初始化變量及重復(fù)釋放指針等。到達定義分析通過聚合函數(shù)和傳遞函數(shù)不斷迭代,實現(xiàn)數(shù)據(jù)流的前向傳播和更新。聚合函數(shù)和傳遞函數(shù)公式如下:

    IN[B]=?P∈pred(B)OUT[P]

    OUT (2)其中: 分別是當(dāng)前節(jié)點 B 的輸入和輸出; oUT[P] 是 B 前驅(qū)節(jié)點的輸出; pred(B) 是 B 的所有前驅(qū)節(jié)點; KIIL[B] 是節(jié)點 B 處被覆蓋的定義;GEN[B]是節(jié)點 B 處新生成的定義。

    圖1以階乘函數(shù)為例構(gòu)建ICFGFig.1Constructing ICFG using the factorial function as an exampl"

    數(shù)據(jù)流分析的另一個典型實例是活躍變量分析。在這一分析中,如果一個變量 v 從某個程序點 p 開始,沿著控制流圖的某條路徑進行傳播,在該路徑上 v 被使用,且在此之前變量 v 沒有被重新定義,那么稱變量 v 在程序點 p 處是活躍變量。

    在漏洞檢測任務(wù)中,活躍變量分析能夠根本性地識別死代碼、資源泄露以及未初始化變量等問題。特別是在跨過程數(shù)據(jù)流分析中,結(jié)合活躍變量分析可以有效輔助檢測未正確傳遞的參數(shù)或潛在的未定義行為。這一分析方法通過以下聚合函數(shù)和傳遞函數(shù)的公式不斷迭代,實現(xiàn)對數(shù)據(jù)流的后向傳播與更新。

    其中: IN[B] 、 oUT[B] 分別是當(dāng)前節(jié)點 B 的輸人和輸出;IN[S] 是 B 后繼節(jié)點的輸人; succ(B) 是 B 的所有后繼節(jié)點;USE[B] 是節(jié)點 B 處被使用的變量; DEF[B] 是節(jié)點 B 處新定義的變量。

    1.3圖神經(jīng)網(wǎng)絡(luò)與數(shù)據(jù)流分析的相似性

    在圖神經(jīng)網(wǎng)絡(luò)中,消息傳遞是核心操作。其通過局部節(jié)點信息交換與聚合,學(xué)習(xí)到每個節(jié)點的有效表示,從而捕捉圖結(jié)構(gòu)的豐富信息。在這一過程中,主要包含聚合操作和更新操作兩個重要操作。

    在聚合操作中,節(jié)點 B 在第 k 層的聚合消息 mB(k) 源自其鄰居節(jié)點的信息。該過程通過計算所有鄰居節(jié)點的表示來實現(xiàn)。計算公式為

    mB(k)=agoregate({hj(k-1)|j∈N(B)})

    其中: N(B) 表示節(jié)點 B 的所有鄰居節(jié)點 是鄰居節(jié)點 j 在第k-1層的表示。

    在更新操作中,節(jié)點 B 在第 k 層的表示 hB(k) 由其 k-1 層的表示 hB(k-1) 與當(dāng)前層的聚合消息 mB(k) 更新得到,計算公式為

    圖神經(jīng)網(wǎng)絡(luò)通過多次迭代聚合和更新操作完成消息傳遞,迭代結(jié)束后,通過組合所有節(jié)點和邊信息來生成圖特征表示。

    如圖2所示,雙向數(shù)據(jù)流分析在邏輯上與Bi-GGNN具有高度的相似性。在前向和后向的數(shù)據(jù)流分析過程中,其聚合函數(shù)和傳遞函數(shù)的功能與雙向圖神經(jīng)網(wǎng)絡(luò)中的聚合函數(shù)和更新函數(shù)相似。盡管它們在具體實現(xiàn)上有所不同,但在功能上,雙向數(shù)據(jù)流分析與Bi-GGNN的消息傳遞機制展現(xiàn)出了高度的共通性。

    在雙向數(shù)據(jù)流分析中,聚合函數(shù)通過從控制流圖中的相鄰節(jié)點傳播和更新數(shù)據(jù)流信息,以推導(dǎo)程序中變量及狀態(tài)的變化。相應(yīng)地,在Bi-GGNN中,消息傳遞過程通過鄰居節(jié)點的聚合信息來更新節(jié)點狀態(tài),進而有效捕捉圖中潛在的關(guān)系。這一相似性不僅強調(diào)了兩種技術(shù)在信息處理上的一致性,也突顯了它們在捕捉復(fù)雜語義與動態(tài)數(shù)據(jù)流方面的潛力。

    2基于雙向數(shù)據(jù)流分析和圖抽象嵌入漏洞檢測方法

    本文提出的基于LLVMIR和Bi-GGNN的雙向數(shù)據(jù)流分析的漏洞檢測方法總體結(jié)構(gòu)如圖3所示。首先,使用LLVM對源代碼進行編譯,并過濾掉漏洞語義無關(guān)的系統(tǒng)信息等噪聲,生成簡化后的LLVMIR。再解析LLVMIR的控制流信息,構(gòu)建控制流圖,按照一定規(guī)則融合調(diào)用流邊,生成包含跨過程語義信息的過程間控制流圖ICFG。其次,設(shè)計DLAE圖抽象嵌入方法將ICFG進行嵌入,以引入動態(tài)數(shù)據(jù)流信息。輸人DLAE生成的抽象嵌人訓(xùn)練Bi-GGNN,以動態(tài)地模擬前向分析的到達定義分析和后向分析的活躍變量分析。最后,通過帶有softmax層的MLP輸出預(yù)測結(jié)果,以進行漏洞檢測。

    2.1 圖抽象嵌入方法—DLAE

    傳統(tǒng)圖嵌入方法如token生成連接等,往往缺乏漏洞特定屬性的表征能力。為此,本文設(shè)計了一種結(jié)合抽象數(shù)據(jù)流與LLVMIR行級漏洞屬性特征嵌入的ICFG抽象嵌入方法DLAE,使用屬性圖定義的形式結(jié)合抽象數(shù)據(jù)流狀態(tài)、節(jié)點信息、邊的信息構(gòu)造適合圖神經(jīng)網(wǎng)絡(luò)輸入的圖級向量形式,以精確表征代碼潛在漏洞模式特征。

    為了將ICFG表示為適合圖神經(jīng)網(wǎng)絡(luò)輸入的向量形式,將ICFG定義為

    G=(V,E,λ,μ)

    其中: V∈{VCFG,Vexternal,Vvirtual} 表示節(jié)點集合,包括控制流圖節(jié)

    點、虛擬函數(shù)節(jié)點和外部節(jié)點; E∈{ECFG,ECG} 表示邊集合,包括控制流邊和調(diào)用邊。具體來說,調(diào)用邊集合為

    λ:E?{CFG,CG} 表示賦予每條邊的標(biāo)簽,用于區(qū)分控制流邊和調(diào)用邊 sμ:(V∪E)×K?S 表示賦予節(jié)點和邊的鍵值對屬性函數(shù),其中 K 和 s 分別是鍵和值的集合。

    在程序靜態(tài)分析中,常用的一種數(shù)據(jù)抽象方式是將分析對象轉(zhuǎn)換為位向量形式。位向量由0和1組成,其長度與全局對象域的大小相等。數(shù)據(jù)流分析通過迭代更新位向量,直至到達不動點停止迭代,得到最終結(jié)果。這種位向量的抽象方式極其適合圖神經(jīng)網(wǎng)絡(luò)對輸入向量形式的要求。

    本文提出的DLAE圖抽象嵌入方法如圖4所示,在ICFG的每個節(jié)點添加前置狀態(tài)和后置狀態(tài)兩個屬性,對應(yīng)值是抽象數(shù)據(jù)流的狀態(tài)位向量。為每個圖設(shè)置全局向量,以表示數(shù)據(jù)流分析中的數(shù)據(jù)抽象全局表示,由于本文結(jié)合了到達定義分析和活躍變量分析兩種數(shù)據(jù)流分析方法,所以每個節(jié)點的前置狀態(tài)和后置狀態(tài)分別由兩個獨立表示組成。

    對于到達定義分析,針對每個函數(shù)收集LLVMIR中的變量定義,構(gòu)建到達定義全局向量,并將每個節(jié)點的狀態(tài)初始化為0,作為初始狀態(tài)。當(dāng)某個節(jié)點處于可到達狀態(tài)時,相應(yīng)狀態(tài)位置設(shè)置為1。每個節(jié)點的狀態(tài)向量表示可到達該節(jié)點的定義;而對于活躍變量分析,分析對象是函數(shù)中的所有變量,收集這些變量作為活躍變量全局向量,并將圖中每個節(jié)點的狀態(tài)初始化為1,作為初始狀態(tài)。若在某個節(jié)點處一個變量處于活躍狀態(tài),則將對應(yīng)狀態(tài)位置為0。每個節(jié)點的狀態(tài)向量表示在該節(jié)點處于活躍狀態(tài)的變量。

    這些全局定義和全局變量通過對節(jié)點局部的輕量級分析得到。通過到達定義分析和活躍變量分析的狀態(tài)向量,可以有效編碼與漏洞相關(guān)的程序語義特征。

    通過分析大量漏洞代碼語句,針對LLVMIR設(shè)計了變量名、變量類型、操作符和API調(diào)用四個行級漏洞表征屬性。通過對數(shù)據(jù)集中這四種屬性對應(yīng)的詞元進行統(tǒng)計,構(gòu)建了一個預(yù)定義大小的詞典。接著,對每條語句的每種屬性分別進行獨熱編碼,最終將這些編碼組合成一個矩陣,作為該賦值語句的抽象表示。

    通過DLAE方法得到的固定大小的語句抽象嵌入形式,極大地增強了模型在處理不同大小和復(fù)雜度程序時的一致性和魯棒性。通過這一方法,可以有效地過濾掉與漏洞無關(guān)的噪聲和信息,保留與漏洞檢測密切相關(guān)的關(guān)鍵屬性特征,確保模型更專注于捕捉漏洞的語義模式。例如,在處理除法或取模操作時,模型可以識別出潛在的除零漏洞,這類問題通常是導(dǎo)致程序崩潰或運行異常的原因。由于模型通過DLAE方法生成了固定大小的語句表示,能夠更好地提取和學(xué)習(xí)這些賦值語句中的重要信息。這種一致性的表示不僅減少了模型對輸入數(shù)據(jù)的依賴,還使得模型在面對不同的數(shù)據(jù)集時具備更強的泛化能力。

    此外,DLAE的一個關(guān)鍵優(yōu)勢在于,它幫助模型識別不同賦值語句間的關(guān)聯(lián)和模式。隨著數(shù)據(jù)集規(guī)模的增加,模型依舊能夠從這些抽象表示中提取規(guī)律并進行有效的漏洞檢測。在大型數(shù)據(jù)集上,這種方法通過降低輸入維度和增強模型對關(guān)鍵特征的關(guān)注,進一步提升了訓(xùn)練效率和檢測精度。

    2.2基于Bi-GGNN的雙向數(shù)據(jù)流分析方法一 BiG-BiD

    在構(gòu)建ICFG并進行DLAE圖抽象嵌人之后,本文引入后向邊構(gòu)建并訓(xùn)練Bi-GGNN來學(xué)習(xí)包含抽象數(shù)據(jù)流信息的節(jié)點嵌入漏洞語義。具體來說,在Bi-GGNN中,對于每一條邊 k 所連接的一對節(jié)點 (u,v) ,同時考慮其前向邊 (u,v) 和后向邊(,u )。為了實現(xiàn)這一點,原始的前向邊構(gòu)建的鄰接矩陣通過轉(zhuǎn)置操作生成對稱矩陣,以表示后向邊。這樣,圖神經(jīng)網(wǎng)絡(luò)中消息傳遞不僅可以沿著控制流圖的前向邊進行,還能夠通過這些對稱的后向邊反向傳播信息,從而形成雙向的消息傳遞機制。

    這種雙向消息傳遞機制與數(shù)據(jù)流分析中的前向分析和后向分析過程高度相似。因此能夠在前向傳播和后向傳播時結(jié)合更多語義信息,這使得模型能夠更全面地捕捉跨過程的數(shù)據(jù)流特征,從而提高對復(fù)雜漏洞模式的識別能力。此外,雙向門控機制還允許Bi-GGNN更靈活地控制信息流動的方式,通過門控操作調(diào)節(jié)信息的傳遞強度,確保模型在學(xué)習(xí)過程中關(guān)注那些更具重要性的節(jié)點和邊,進而提升漏洞檢測的準(zhǔn)確性。

    Bi-GGNN通過前向與后向傳播來模擬程序中的雙向數(shù)據(jù)流分析。具體來說,在前向傳播中,當(dāng)數(shù)據(jù)流信息到達ICFG中某個分支的合并點時,使用aggregate聚合函數(shù)進行信息聚合。這類似于數(shù)據(jù)流分析中的聚合函數(shù),負責(zé)匯聚來自多個前驅(qū)節(jié)點的信息。在Bi-GGNN中,aggregate函數(shù)是一個多層感知機(MLP),它通過計算相鄰前驅(qū)節(jié)點表示的加權(quán)和,生成一個新的單一向量表示。這與到達定義分析中將多個前驅(qū)數(shù)據(jù)流匯聚在一起的方式一致。當(dāng)數(shù)據(jù)流信息到達一個新節(jié)點時,應(yīng)用update函數(shù)更新當(dāng)前節(jié)點的狀態(tài)。這個update函數(shù)基于門控循環(huán)單元(GRU),通過結(jié)合當(dāng)前節(jié)點的狀態(tài)和來自前驅(qū)節(jié)點的聚合結(jié)果來計算新的狀態(tài)。GRU能夠選擇性地遺忘舊的狀態(tài)并結(jié)合新的輸入信息,這與數(shù)據(jù)流分析中傳遞函數(shù)所做的操作類似,即根據(jù)當(dāng)前信息執(zhí)行集合的并/差操作來更新狀態(tài)。因此,update函數(shù)模擬了數(shù)據(jù)流分析中的傳遞函數(shù)。

    由于活躍變量分析是一個后向分析過程,類似的情形也發(fā)生在消息傳遞的后向傳播中。通過訓(xùn)練時同時執(zhí)行前向和后向傳播,可以分別模擬到達定義分析和活躍變量分析的過程。在前向和后向消息傳遞中,節(jié)點的抽象嵌入會根據(jù)來自相鄰節(jié)點的數(shù)據(jù)流信息進行更新和傳遞。

    其中,aggregate和update操作在每次消息傳遞迭代時都會更新節(jié)點的狀態(tài)表示,消息傳遞的迭代次數(shù) T 作為超參數(shù)進行設(shè)置,控制模型的傳播深度。在迭代完成后,使用全局注意力池化將所有學(xué)習(xí)到的節(jié)點嵌入組合成一個圖級表示。這一步將整個圖的信息匯總,并生成一個用于分類的整體表示。最終,這個圖級表示會被傳遞到分類器,預(yù)測當(dāng)前函數(shù)是否含有漏洞。在訓(xùn)練過程中,aggregate和update函數(shù)是可學(xué)習(xí)的參數(shù),而不是數(shù)據(jù)流分析中的固定公式。

    Bi-GGNN的雙向消息傳遞機制可完整模擬到達定義分析和活躍變量分析,從而捕獲全局動態(tài)數(shù)據(jù)流漏洞模式。通過從數(shù)據(jù)流信息迭代中學(xué)習(xí)漏洞特征,本文提供了一種解決一般數(shù)據(jù)流分析需要手動定義復(fù)雜漏洞檢測規(guī)則的問題。通過從訓(xùn)練示例中學(xué)習(xí),分類器可以捕獲表示各種類型漏洞的數(shù)據(jù)流信息模式,并為漏洞檢測選擇相關(guān)數(shù)據(jù)流信息,以此來實現(xiàn)高效的漏洞檢測。

    3 實驗與分析

    3.1 實驗設(shè)置

    實驗使用數(shù)據(jù)集是漏洞檢測領(lǐng)域廣泛采用的Big-Vul[26]以及Reveal[14]。Big-Vul是一個由真實漏洞函數(shù)組成的高質(zhì)量漏洞數(shù)據(jù)集,涵蓋了2002年至2019年在348個不同開源項目中的CVE條目,共有 11834 個包含漏洞的函數(shù)以及253096個不含漏洞的正常函數(shù);Reveal是從Chromium和Debian項目中收集的漏洞數(shù)據(jù)集,包含2240個包含漏洞的函數(shù)和20494個正常函數(shù)。它們反映了現(xiàn)實世界中代碼漏洞的不平衡分布。

    為了處理數(shù)據(jù)集的類不平衡問題,采用SMOTE算法來合成漏洞樣本并對不含漏洞的樣本進行隨機刪除,直至正負樣本比例趨于平衡。將數(shù)據(jù)集劃分為訓(xùn)練數(shù)據(jù)集、驗證數(shù)據(jù)集和測試數(shù)據(jù)集,比例分別為 80%,10%,10% 。

    實驗選擇三個靜態(tài)分析工具Checkmark[27]、FlawFind-er[28] 、RATS[29]以及三個性能先進的漏洞檢測模型Devign[13]Reveal[14] Ample[15] 作為比較對象,分析對比它們在漏洞檢測任務(wù)上的性能表現(xiàn)。

    實驗設(shè)置的超參數(shù):隱藏層大小為32,批量大小為256;學(xué)習(xí)率為0.00015;優(yōu)化器為ADAMAX;dropout為0.2;GNN迭代次數(shù) T 為6。

    考慮訓(xùn)練過程中隨機因素對模型性能的影響,實驗中對每個方法使用相同的超參數(shù)進行多次訓(xùn)練迭代,直至性能穩(wěn)定后進行測試。

    為了評估模型的有效性,本文采用最流行的評價指標(biāo),如表1所示。其中:TP(truepositive)表示正確預(yù)測為包含漏洞的樣本數(shù)量;TN(truenegative)表示正確預(yù)測為不包含漏洞的樣本數(shù)量;FP(1positive)表示錯誤預(yù)測為包含預(yù)測的樣本數(shù)量;FN(1negative)表示錯誤預(yù)測為不包含漏洞的樣本數(shù)量?;谝陨纤姆N二值分類的輸出,計算準(zhǔn)確率、精確率、召回率 分數(shù)。準(zhǔn)確率是漏洞樣本和正常樣本覆蓋率的度量,反映正確預(yù)測樣本的能力;精確率表示預(yù)測為包含漏洞的樣本中真實包含漏洞樣本的比例,反映模型的誤報比例;召回率是漏洞樣本覆蓋率的度量,反映模型的漏報比例; F1 分數(shù)表示同時考慮精確率和召回率的模型總體有效性的度量。

    表1評價指標(biāo)Tab.1Evaluation metrics

    3.2 實驗結(jié)果分析

    為了驗證本文BiG-BiD的有效性,在兩個真實數(shù)據(jù)集上進行了對比實驗,并對實驗數(shù)據(jù)進行可視化,結(jié)果如表2和圖5所示。從中可以看出,傳統(tǒng)靜態(tài)分析工具的漏洞檢測效果并不理想,特別是在召回率方面均低于 40% ,表明這些工具存在較高的漏報率。最直觀的原因是靜態(tài)分析工具通過專家定義的漏洞模式規(guī)則來檢測漏洞。然而,這種規(guī)則只能檢測最簡單的漏洞樣本,往往難以覆蓋復(fù)雜的真實環(huán)境。而與三種基于深度學(xué)習(xí)的方法相比,本文BiG-BiD在召回率上提高了 5%~28% 。產(chǎn)生這一差距的原因主要在于,Devign、Reveal、Ample并沒有考慮動態(tài)數(shù)據(jù)流信息以及過程間的漏洞語義,且它們的代碼圖都是基于源代碼構(gòu)建,源代碼中包含著大量與漏洞語義無關(guān)的信息。而代碼屬性圖過于龐大,包含的節(jié)點和邊過多,導(dǎo)致模型難以專注于學(xué)習(xí)與漏洞相關(guān)的模式特征。而本文方法基于LLVMIR構(gòu)建ICFG,通過DLAE進行抽象嵌入,并結(jié)合了動態(tài)的抽象數(shù)據(jù)流信息,使得模型能夠聚焦漏洞語義相關(guān)的關(guān)鍵信息,精確捕捉數(shù)據(jù)動態(tài)流動過程中的漏洞模式特征。另一方面,由于到達定義分析和活躍變量分析追求盡可能全面地覆蓋漏洞,使得BiG-BiD更側(cè)重于提高漏洞的召回率即盡可能少地漏報,導(dǎo)致Ample在精確率上略高于BiG-BiD。

    表2各方法實驗結(jié)果Tab.2Experimental resultsof each method1%

    圖6和7是數(shù)據(jù)集中截取的兩個簡短跨函數(shù)且與數(shù)據(jù)流相關(guān)的漏洞,均需要通過跨函數(shù)以及數(shù)據(jù)流分析的方法來檢測,因此只有本文BiG-BiD成功檢測出了這兩個漏洞。

    圖6是一個緩沖區(qū)溢出漏洞,在receive_input函數(shù)中,數(shù)據(jù)流從input流入,strcpy函數(shù)將input的內(nèi)容復(fù)制到buffer中,但沒有檢測input大小。在main函數(shù)調(diào)用receive_input時,觸發(fā)緩沖區(qū)溢出漏洞。若只是通過receive_input的控制流圖并不能直接判斷該函數(shù)存在緩沖區(qū)溢出漏洞,只有結(jié)合過程間調(diào)用信息以及數(shù)據(jù)流分析,才可以判斷該漏洞的存在。

    圖5各方法在Big-Vul和Reveal上的實驗結(jié)果可視化Fig.5Visualization of experimental results of various methodsonBig-Vul andReveal

    圖7是一個更為復(fù)雜的空指針解引用漏洞,該漏洞跨四個函數(shù),指針變量具有較長的生命周期。為了便于理解,在ini-tializeData函數(shù)中使用硬編碼作為條件來初始化指針data。在handleRequest函數(shù)中,指針data被傳遞給initializeData函數(shù),該函數(shù)可能將指針置為1ptr。隨后,指針被傳遞到process-Data函數(shù),后者未檢查指針是否為空,直接解引用了它。這種跨函數(shù)的數(shù)據(jù)流未經(jīng)過有效性驗證,會導(dǎo)致空指針解引用漏洞,從而引發(fā)程序崩潰。此漏洞可以通過到達定義分析來檢測,跟蹤指針的傳遞路徑并識別潛在的空指針問題。

    為了探究BiG-BiD動態(tài)模擬雙向數(shù)據(jù)流分析的迭代次數(shù)T 對模型性能的影響,在保持其他超參數(shù)不變的情況下,分別設(shè)置不同的迭代次數(shù)進行實驗并評估模型性能。實驗結(jié)果如圖8所示。從中可以看出,迭代次數(shù)在1\~6時,隨迭代次數(shù)增加, F1 分數(shù)不斷上升。迭代次數(shù)為6或7時,模型性能達到了穩(wěn)定的最佳水平,性能差異不大。而隨著迭代次數(shù)繼續(xù)增加,模型性能出現(xiàn)了一定程度的下降。分析其原因,在數(shù)據(jù)流分析中,迭代次數(shù)過少,迭代不充分,數(shù)據(jù)流狀態(tài)不能到達不動點。相似地,在動態(tài)模擬數(shù)據(jù)流分析的圖神經(jīng)網(wǎng)絡(luò)中,較少的迭代次數(shù)下,數(shù)據(jù)流信息不能充分地傳播和更新,導(dǎo)致模型不能很好地學(xué)習(xí)數(shù)據(jù)流傳播過程中的漏洞語義特征。而當(dāng)?shù)螖?shù)過多時,數(shù)據(jù)流信息已經(jīng)得到了充分傳播和更新,此時繼續(xù)迭代不再帶來有效信息的增益,反而可能引入噪聲或不相關(guān)的特征。

    圖7空指針解引用漏洞代碼Fig.7Null pointer dereferencevulnerabilitycode"

    這些額外的信息干擾了模型對漏洞特征的學(xué)習(xí),導(dǎo)致模型性能下降。因此,適當(dāng)?shù)牡螖?shù)對于模型的性能至關(guān)重要。設(shè)置合適的迭代次數(shù)能夠確保模型有效捕捉雙向數(shù)據(jù)流分析中的漏洞特征,而不會因為迭代過少或過多而影響最終的模型表現(xiàn)。在實際訓(xùn)練中,經(jīng)過驗證,選擇6次左右的迭代次數(shù)為最佳,這平衡了信息傳播的充分性且避免過度迭代帶來的噪聲干擾。

    為了進一步驗證本文BiG-BiD動態(tài)模擬雙向數(shù)據(jù)流分析的有效性,對不同數(shù)據(jù)流處理模式進行實驗。實驗結(jié)果如表3所示。其中Bef-DFA表示對程序分別進行到達定義分析和活躍變量分析,到達不動點后的狀態(tài)作為Bi-GGNN的輸人,即使用靜態(tài)數(shù)據(jù)流信息作為輸人訓(xùn)練模型;Def-DFA表示在Bi-GGNN中只進行動態(tài)地模擬到達定義分析,而不包括活躍變量分析;Val-DFA表示在Bi-GGNN中只動態(tài)地模擬活躍變量分析,而不包括到達定義分析。從結(jié)果可以看出,使用動態(tài)模擬數(shù)據(jù)流分析的方法Def-DFA、Val-DFA、BiG-BiD顯然比到達不動點后的靜態(tài)數(shù)據(jù)流狀態(tài)作為輸入的方法Bef-DFA效果更好,且使用到達定義分析和活躍變量分析結(jié)合BiG-BiD的效果明顯優(yōu)于單獨一種數(shù)據(jù)流分析方法Def-DFA、Val-DFA。這是因為在圖神經(jīng)網(wǎng)絡(luò)中動態(tài)模擬數(shù)據(jù)流分析過程中,通過多次迭代傳播數(shù)據(jù)流信息,能夠捕捉程序執(zhí)行過程中數(shù)據(jù)流的動態(tài)變化。這種動態(tài)傳播更新機制使得模型可以更深人地學(xué)習(xí)數(shù)據(jù)流傳播過程中的漏洞語義特征,尤其是在復(fù)雜場景中,能夠更有效地識別出隱藏的漏洞模式。而靜態(tài)數(shù)據(jù)流信息(Bef-DFA)僅表示不動點狀態(tài),無法充分反映程序中的潛在漏洞語義。而每種數(shù)據(jù)流分析方法各自能夠檢測的漏洞類型不同。例如,到達定義分析可以捕捉到變量定義未被正確使用的漏洞,而活躍變量分析則更擅長發(fā)現(xiàn)未初始化或無效變量使用的漏洞。因此,單一的數(shù)據(jù)流分析方法(Def-DFA或Val-DFA)無法全面覆蓋所有漏洞類型。BiG-BiD結(jié)合了兩種數(shù)據(jù)流分析方法,通過前向和后向的雙向傳播,能夠更好地學(xué)習(xí)到完整的漏洞語義特征,顯著提升了模型的檢測能力。

    表3不同數(shù)據(jù)流處理模式對比實驗結(jié)果
    表4不同數(shù)據(jù)流分析方法對比實驗結(jié)果

    為了進一步探究不同數(shù)據(jù)流分析方法對模型性能的影響,本文將到達定義分析替換為另一種前向數(shù)據(jù)流分析方法 一可用表達式分析,進行了實驗。實驗結(jié)果如表4所示。從結(jié)果可以發(fā)現(xiàn),使用可用表達式分析和活躍變量分析結(jié)合的方法Exp+Val 的性能明顯弱于本文提出的結(jié)合到達定義分析和活躍變量分析的方法BiG-BiD。深人分析其原因,可用表達式分析的主要功能在于消除代碼冗余和優(yōu)化死代碼,它通過確定在程序的某些執(zhí)行路徑中某些表達式的計算結(jié)果是否已知,來減少不必要的重復(fù)計算。這種分析更適用于代碼優(yōu)化和性能提升,而不擅長發(fā)現(xiàn)復(fù)雜的漏洞。相比之下,到達定義分析直接處理變量定義及其在程序中是否有效或可能引發(fā)錯誤的使用,能更有效地捕捉復(fù)雜漏洞模式形成的根本原因。因此,本文BiG-BiD方法能夠更好地捕捉漏洞特征,顯著提升模型的漏洞檢測性能。

    為了進一步評估本文BiG-BiD在現(xiàn)實世界中的有效性及泛化性,本文選擇了四個知名的開源項目LinuxKernel-5.10、QEMU-6.2.0、Apache-2.4.54、OpenSSL-3.0.5進行漏洞檢測。如表5所示,成功檢測出23個新的漏洞,其中LinuxKernel9個,QEMU4個,Apache7個,OpenSSL3個。值得注意的是,檢測到的漏洞中有10個漏洞尚未得到修復(fù),這進一步表明了BiG-BiD在檢測漏洞方面的有效性和泛化性。

    4結(jié)束語

    本文提出了一種基于LLVMIR與Bi-GGNN雙向數(shù)據(jù)流分析的漏洞檢測方法。基于LLVMIR構(gòu)建ICFG引入跨過程語義,設(shè)計了一種結(jié)合抽象數(shù)據(jù)流與LLVMIR行級漏洞屬性特征嵌入的ICFG抽象嵌入方法DLAE,使用屬性圖定義的方式結(jié)合抽象數(shù)據(jù)流狀態(tài)、節(jié)點信息、邊的信息構(gòu)造適合圖神經(jīng)網(wǎng)絡(luò)輸入的圖級向量形式。最后,通過引入后向邊訓(xùn)練Bi-GGNN,實現(xiàn)在ICFG中動態(tài)模擬到達定義分析與活躍變量分析,以動態(tài)傳播與更新抽象數(shù)據(jù)流信息。實驗結(jié)果證明了該方法的有效性和泛化性。綜合看來,BiG-BiD是一種性能表現(xiàn)優(yōu)異的結(jié)合動態(tài)數(shù)據(jù)流分析的方法,提供了一種結(jié)合多種動態(tài)數(shù)據(jù)流進行跨過程漏洞檢測的思路。

    盡管本文方法能夠有效提升漏洞檢測的效果,但是不同的數(shù)據(jù)流分析方法所針對的漏洞類型不同,不同的圖神經(jīng)網(wǎng)絡(luò)在漏洞檢測任務(wù)中的效果也并不相同,因此如何結(jié)合更多的數(shù)據(jù)流分析方法和其他的靜態(tài)分析方法以盡可能全面地覆蓋漏洞類型以及如何選擇更加有效的圖神經(jīng)網(wǎng)絡(luò),將是未來研究考慮解決的問題。

    表5檢測出的知名開源項目未知漏洞Tab.5Unknown vulnerabilities detected in well-known open source project:

    參考文獻:

    [1]Arefin S,Chowdhury M,Parvez R,et al.Understanding APT detection using machine learning algorithms: is superior accuracy a thing? [C]/Proc of IEEE International Conference on Electro Information Technology.Piscataway,NJ: IEEE Press,2024:532-537.

    [2]唐成華,蔡維嘉,林和,等.軟件漏洞模糊測試的關(guān)鍵分支探索 及熱點更新算法[J].計算機應(yīng)用研究,2024,41(7):2179- 2183.(Tang Chenghua, Cai Weijia,Lin He,et al. Algorithm of key branch explorationand hotspot update for software vulnerability fuzzy testing[J].Application Research of Computers,2024,41(7): 2179-2183.)

    [3]張國棟,劉子龍,靳卓,等.用于漏洞檢測的中間語言表示方法 [J].計算機應(yīng)用研究,2023,40(11):3377-3381,3393. (Zhang Guodong,Liu Zilong,Jin Zhuo,et al. Intermediate language representation for vulnerability detection [J].Application Research of Computers,2023,40(11): 3377-3381,3393.)

    [4]Luo Changhua,Li Penghui,Meng Wei. Tchecker:precise static inter-proceduralanalysis fordetecting taint-stylevulnerabilities in php applications [C]// Proc of ACM SIGSAC Conference on Computer and Communications Security.New York :ACM Press,2022:2175-2188.

    [5]Mues M ,Schallau T,Howar F. Jaint:a framework for user-defined dynamic taint-analysesbased on dynamic symbolic execution of Java programs [M]/Λ Dongol B,Troubitsyna E.Integrated Formal Methods.Cham:Springer,2020:123-140.

    [6]楊盡能,李汶珊,何俊江,等.基于雙注意力機制和改進對抗訓(xùn) 練的漏洞分類方法[J].計算機應(yīng)用研究,2024,41(11):3447- 3454.(Yang Jinneng,Li Wenshan,He Junjiang,et al.Vulnerabilityclassificationmethod based on double-attention mechanism and adversarial training [J].Application Research of Computers, 2024,41(11):3447-3454.)

    [7]袁子龍,吳秋新,劉韌,等.一種基于改進差分進化算法的源碼 漏洞檢測模型的冷啟動方法[J].計算機應(yīng)用研究,2023,40 (7): 2170-2178.(Yuan Zilong,Wu Qiuxin,Liu Ren,et al.Cold start method for source code vulnerability detection model based on improved differential evolutionalgorithm[J].Application Research ofComputers,2023,40(7):2170-2178.)

    [8]許健,陳平華,熊建斌.融合滑動窗口和哈希函數(shù)的代碼漏洞檢 測模型[J].計算機應(yīng)用研究,2021,38(8):2394-2400.(Xu Jian,Chen Pinghua,Xiong Jianbin.Code vulnerability detection model based on slidingwindowand hash function[J].Application Research ofComputers,2021,38(8):2394-2400.)

    [9]Wu Fang,Wang Jigang,Liu Jiqiang,et al.Vulnerability detection with deep learning[C]//Proc of the 3rd IEEE Intermational Conference on Computer and Communications. Piscataway,NJ:IEEE Press,2017:1298-1302.

    [10]HarerJA,KimLY,Russell RL,etal.Automated software vulnerability detection with machine learning[EB/OL].(2018).https:// arxiv.org/abs/1803.04497.

    [11]Li Zhen,Zou Deqing,Xu Shouhuai,et al.VulPecker:an automated vulnerability detectionsystem based on code similarity analysis[C]// Proc of the 32nd Annual Conference on Computer Security Applications.New York:ACM Press,2016:201-213.

    [12]Li Yi,Wang Shaohua,Nguyen TN.Vulnerability detection with fine-grained interpretations [C]//Proc of the 29th ACM Joint Meeting on European Software Engineering Conference and Symposium on theFoundations of Software Engineering.New York:ACM Press, 2021:292-303.

    [13]Zhou Yaqin,Liu Shangqing,Siow J,et al.Devign: effctive vulnerability identification by learning comprehensive program semantics via graph neural networks [C]/′ Procof the 33rdInternational Conference on Neural Information ProcessingSystems.Red Hook,NY: Curran Associates Inc., 2019:article No. 915.

    [14]Chakraborty S,Krishna R,DingY,etal.Deep learningbased vulnerability detection:are we there yet?[J].IEEE Trans on Software Engineering,2022,48(9):3280-3296.

    [15]Wen Xincheng,Chen Yupan,Gao Cuiyun,et al.Vulnerability detection with graph simplification and enhanced graph representation learning [C]//Proc of the 45th IEEE/ACM International Conference on Software Engineering. Piscataway,NJ: IEEE Press,2023:2275-2286.

    [16]Wang Huanting,Ye Guixin,Tang Zhanyong,etal.Combining graph-based learning with automated data colection for code vulnerability detection[J]. IEEE Trans on Information Forensics and Security,2020,16:1943-1958.

    [17]Hin D,Kan A,Chen Huaming,et al. LineVD: statement-level vulnerability detection using graph neural networks[C]//Proc of the 19th IEEE/ACM International Conference on Mining Software Repositories.Piscataway,NJ: IEEE Press,2022:596-607.

    [18] Zou Deqing,Wang Sujuan,Xu Shouhuai, et al. μVulDeePecker:a. deep learning-based system for multiclass vulnerability detection[J]. IEEE Trans on Dependable and Secure Computing,2021,18 (5): 2224-2236.

    [19]Steenhoek B,Gao Hongyang,Le Wei.Dataflow analysis-inspired deep learning for efficient vulnerability detection [C]//Proc of the 46th IEEE/ACM International Conference on Software Engineering. New York:ACM Press,2024:1-13.

    [20] Cao Sicong,Sun Xiaobing,Bo Lili,et al. BGNN4VD:constructing bidirectional graph neural-network for vulnerability detection[J]. Information and Software Technology,2021,136:106576.

    [21]SteenhoekB,RahmanMM,JilesR,etal.Anempirical studyof deep learning models forvulnerability detection[C]//Proc of the 45th IEEE/ACM International Conferenceon Software Engineering. Piscataway,NJ: IEEE Press,2023: 2237-2248.

    [22] Cummins C,F(xiàn)isches ZV,Ben-Nun T,et al.ProGraML:a graphbased program representation for data flow analysis and compiler optimizations [C]//Proc of International Conference on Machine Learning. 2021:2244-2253.

    [23] Zhou Minmin,Chen Jinfu,Liu Yisong,et al. A method for software vulnerability detection based on improved control flow graph[J]. Wuhan University Joumal of Natural Sciences,2019,24(2): 149-160.

    [24]Kim HY, Kim JH,Oh H K,et al. DAPP:automatic detection and analysis of prototype pollution vulnerability in Node.js modules[J]. International Journal of Information Security,2022,21(1):1-23.

    [25]Choi J,Kim D,KimS,et al. SMARTIAN: enhancing smart contract fuzzing with static and dynamic data-flow analyses [C]//Proc of the 36th IEEE/ACM International Conference on Automated Software Engineering.Piscataway,NJ:IEEE Press,2021:227-239.

    [26]Fan Jiahao,Li Yi, Wang Shaohua, et al.A C/C++ code vulnerability dataset with code changes and CVE summaries [C]//Proc of the 17th IEEE/ACM International Conference on Mining Software Repositories.Piscataway,NJ: IEEE Press,202O:508-512.

    [27] Checkmarx Ltd.Checkmarx [EB/OL].[2024-10-01].https:// www.checkmarx.com/.

    [28]Wheeler D A.Flawfinder[EB/OL].[2024-10-01]. http://www. dwheeler.com/flawfinder.

    [29]Secure Software Inc.RATS[EB/OL].[2024-10-01].https:// code.google.com/archive/p/rough-auditing-tool-for-security/.

    猜你喜歡
    深度學(xué)習(xí)網(wǎng)絡(luò)安全
    網(wǎng)絡(luò)安全知多少?
    工會博覽(2023年27期)2023-10-24 11:51:28
    網(wǎng)絡(luò)安全
    網(wǎng)絡(luò)安全人才培養(yǎng)應(yīng)“實戰(zhàn)化”
    上網(wǎng)時如何注意網(wǎng)絡(luò)安全?
    有體驗的學(xué)習(xí)才是有意義的學(xué)習(xí)
    電子商務(wù)中基于深度學(xué)習(xí)的虛假交易識別研究
    MOOC與翻轉(zhuǎn)課堂融合的深度學(xué)習(xí)場域建構(gòu)
    大數(shù)據(jù)技術(shù)在反恐怖主義中的應(yīng)用展望
    深度學(xué)習(xí)算法應(yīng)用于巖石圖像處理的可行性研究
    基于深度卷積網(wǎng)絡(luò)的人臉年齡分析算法與實現(xiàn)
    軟件工程(2016年8期)2016-10-25 15:47:34
    kizo精华| 一级a做视频免费观看| 一二三四中文在线观看免费高清| 超碰97精品在线观看| 联通29元200g的流量卡| 人妻夜夜爽99麻豆av| 国产精品av视频在线免费观看| 国产视频首页在线观看| 国产精品一二三区在线看| 99久久精品一区二区三区| 午夜福利在线观看免费完整高清在| 亚洲天堂av无毛| a级毛片免费高清观看在线播放| 毛片女人毛片| 黄色欧美视频在线观看| 国产熟女欧美一区二区| 日韩制服骚丝袜av| 能在线免费看毛片的网站| 国产91av在线免费观看| 久久久久国产网址| 亚洲美女视频黄频| 丰满少妇做爰视频| 丝袜喷水一区| 身体一侧抽搐| av又黄又爽大尺度在线免费看| 一区二区三区乱码不卡18| 在线亚洲精品国产二区图片欧美 | 在线观看免费高清a一片| 亚洲精品456在线播放app| av在线亚洲专区| 亚洲精品亚洲一区二区| 国产一区二区亚洲精品在线观看| 在线免费十八禁| 国产免费又黄又爽又色| 在线观看av片永久免费下载| 国产视频首页在线观看| 国产中年淑女户外野战色| 成人欧美大片| 国产极品天堂在线| 国产精品爽爽va在线观看网站| 国产精品一区www在线观看| 欧美一级a爱片免费观看看| 国产精品久久久久久久电影| 午夜福利在线观看免费完整高清在| 丰满人妻一区二区三区视频av| 97热精品久久久久久| 国产久久久一区二区三区| 女人久久www免费人成看片| 美女主播在线视频| 午夜老司机福利剧场| 亚洲精品一区蜜桃| 成年女人看的毛片在线观看| 日本猛色少妇xxxxx猛交久久| 男人爽女人下面视频在线观看| 日韩视频在线欧美| 永久免费av网站大全| 在线观看三级黄色| 少妇人妻精品综合一区二区| 十八禁网站网址无遮挡 | 午夜福利高清视频| 久久影院123| 日韩一区二区三区影片| 免费看光身美女| 亚洲天堂av无毛| av国产精品久久久久影院| 欧美 日韩 精品 国产| 看免费成人av毛片| 高清日韩中文字幕在线| 一区二区三区乱码不卡18| 中文在线观看免费www的网站| 99精国产麻豆久久婷婷| 2018国产大陆天天弄谢| 少妇 在线观看| 国产又色又爽无遮挡免| 婷婷色综合大香蕉| 一级毛片我不卡| av在线app专区| 全区人妻精品视频| 国国产精品蜜臀av免费| 三级国产精品片| 麻豆成人av视频| 亚洲精品日韩av片在线观看| 成人无遮挡网站| 在线观看人妻少妇| 亚洲av国产av综合av卡| 欧美激情在线99| 欧美高清性xxxxhd video| 成人亚洲精品一区在线观看 | 一级毛片电影观看| 美女视频免费永久观看网站| 精品少妇黑人巨大在线播放| 日韩欧美 国产精品| 日日啪夜夜撸| 自拍欧美九色日韩亚洲蝌蚪91 | 久久久久久久久久成人| 成人毛片60女人毛片免费| 国产黄频视频在线观看| 国产精品秋霞免费鲁丝片| 久久久精品94久久精品| 99热国产这里只有精品6| 亚洲自拍偷在线| 天天躁夜夜躁狠狠久久av| freevideosex欧美| av免费观看日本| 免费电影在线观看免费观看| 噜噜噜噜噜久久久久久91| 国产黄片视频在线免费观看| 99久久精品国产国产毛片| 国产淫片久久久久久久久| 日韩一区二区三区影片| 老师上课跳d突然被开到最大视频| 色5月婷婷丁香| 国产高潮美女av| 亚洲国产欧美人成| 免费看日本二区| 五月开心婷婷网| 七月丁香在线播放| 久久人人爽人人片av| 日本熟妇午夜| 在线观看三级黄色| 又爽又黄无遮挡网站| 岛国毛片在线播放| 精品久久久久久久久av| 啦啦啦啦在线视频资源| 精品酒店卫生间| 国产精品一及| 麻豆精品久久久久久蜜桃| 久久久久国产网址| 国产成人福利小说| 热re99久久精品国产66热6| 国产精品一区二区三区四区免费观看| 中文精品一卡2卡3卡4更新| 精品人妻熟女av久视频| 免费大片黄手机在线观看| 免费av毛片视频| 好男人在线观看高清免费视频| 看黄色毛片网站| 亚洲真实伦在线观看| 久久6这里有精品| 国产日韩欧美亚洲二区| 亚洲精品久久久久久婷婷小说| av国产精品久久久久影院| 亚洲天堂国产精品一区在线| 亚洲精品视频女| 日本爱情动作片www.在线观看| 99久久人妻综合| 三级国产精品欧美在线观看| 91在线精品国自产拍蜜月| 中文在线观看免费www的网站| 午夜福利网站1000一区二区三区| 噜噜噜噜噜久久久久久91| 久久久久久久国产电影| 91午夜精品亚洲一区二区三区| 午夜免费鲁丝| 精品人妻一区二区三区麻豆| 亚洲真实伦在线观看| 国产精品久久久久久av不卡| 小蜜桃在线观看免费完整版高清| 精品国产三级普通话版| 少妇 在线观看| 大香蕉久久网| 丰满乱子伦码专区| 亚洲国产精品国产精品| 国产女主播在线喷水免费视频网站| 青春草亚洲视频在线观看| 亚洲精品国产av蜜桃| 夜夜看夜夜爽夜夜摸| 一级毛片电影观看| 免费黄网站久久成人精品| 天堂中文最新版在线下载 | 午夜精品一区二区三区免费看| freevideosex欧美| 18禁在线无遮挡免费观看视频| 亚洲在线观看片| 午夜福利在线观看免费完整高清在| 免费播放大片免费观看视频在线观看| 极品教师在线视频| 久热这里只有精品99| 欧美亚洲 丝袜 人妻 在线| 激情五月婷婷亚洲| 插阴视频在线观看视频| 色视频www国产| 又黄又爽又刺激的免费视频.| 午夜免费男女啪啪视频观看| 黄色配什么色好看| 在线观看av片永久免费下载| 成人国产av品久久久| 九草在线视频观看| 国产精品福利在线免费观看| a级毛片免费高清观看在线播放| 精品一区二区三区视频在线| 91精品一卡2卡3卡4卡| 欧美日韩视频精品一区| 久久综合国产亚洲精品| 青春草视频在线免费观看| 自拍偷自拍亚洲精品老妇| av国产久精品久网站免费入址| a级一级毛片免费在线观看| 亚洲精品成人久久久久久| 在现免费观看毛片| av天堂中文字幕网| 嫩草影院精品99| 国产乱人偷精品视频| 亚洲精品亚洲一区二区| 大香蕉97超碰在线| 色综合色国产| av在线天堂中文字幕| 中文字幕人妻熟人妻熟丝袜美| 国产精品国产三级专区第一集| 成人无遮挡网站| 熟女av电影| 我的女老师完整版在线观看| 在线亚洲精品国产二区图片欧美 | 国产69精品久久久久777片| 精品国产一区二区三区久久久樱花 | 黄片wwwwww| 在线 av 中文字幕| 欧美区成人在线视频| 舔av片在线| 国产 一区 欧美 日韩| 欧美亚洲 丝袜 人妻 在线| 性色avwww在线观看| 人妻一区二区av| 18禁裸乳无遮挡动漫免费视频 | 成人国产av品久久久| 久久精品久久久久久噜噜老黄| 男人爽女人下面视频在线观看| 黄色一级大片看看| 欧美性感艳星| 亚洲av中文字字幕乱码综合| 亚洲怡红院男人天堂| 最近的中文字幕免费完整| 亚洲经典国产精华液单| 亚洲精品久久午夜乱码| 日韩一区二区视频免费看| 精品久久久久久电影网| 香蕉精品网在线| 纵有疾风起免费观看全集完整版| 精品久久久精品久久久| 大香蕉久久网| 精品少妇久久久久久888优播| 青春草视频在线免费观看| 日韩精品有码人妻一区| 亚洲精品中文字幕在线视频 | 国产在线男女| 久久久久久伊人网av| 欧美丝袜亚洲另类| 亚洲精品亚洲一区二区| 免费观看的影片在线观看| 日韩,欧美,国产一区二区三区| 夫妻午夜视频| 黄色欧美视频在线观看| 我的女老师完整版在线观看| 99久久人妻综合| 黄片无遮挡物在线观看| 久久精品国产亚洲网站| 国产爱豆传媒在线观看| 最后的刺客免费高清国语| 麻豆成人av视频| 精品久久久久久久久av| 国产色婷婷99| 久久99热这里只有精品18| 麻豆精品久久久久久蜜桃| 日本黄大片高清| 大片免费播放器 马上看| 亚洲性久久影院| 国产国拍精品亚洲av在线观看| 免费黄网站久久成人精品| 2021天堂中文幕一二区在线观| 日韩亚洲欧美综合| 国产午夜福利久久久久久| 在线观看免费高清a一片| 欧美老熟妇乱子伦牲交| av一本久久久久| 亚洲在线观看片| 菩萨蛮人人尽说江南好唐韦庄| 超碰97精品在线观看| 久久热精品热| 中文乱码字字幕精品一区二区三区| 白带黄色成豆腐渣| 免费大片18禁| 日韩成人伦理影院| 嫩草影院精品99| 亚洲三级黄色毛片| 亚洲国产欧美在线一区| tube8黄色片| 久久精品久久久久久噜噜老黄| 国产视频内射| 只有这里有精品99| 一级黄片播放器| 麻豆久久精品国产亚洲av| 18禁在线无遮挡免费观看视频| 欧美+日韩+精品| xxx大片免费视频| 亚洲国产精品国产精品| 亚洲国产av新网站| 香蕉精品网在线| 免费看a级黄色片| 国产精品99久久99久久久不卡 | 国产精品伦人一区二区| 亚洲欧美精品专区久久| 麻豆乱淫一区二区| 亚洲一区二区三区欧美精品 | 日本色播在线视频| 一级黄片播放器| 男的添女的下面高潮视频| 亚洲va在线va天堂va国产| 网址你懂的国产日韩在线| 久久久久久久精品精品| 搞女人的毛片| 久久99热这里只频精品6学生| 波多野结衣巨乳人妻| 国产亚洲91精品色在线| 99热这里只有是精品50| 久久久久久久久大av| 晚上一个人看的免费电影| 日产精品乱码卡一卡2卡三| 精品人妻熟女av久视频| 亚洲高清免费不卡视频| 成人亚洲精品一区在线观看 | 亚洲最大成人手机在线| 高清午夜精品一区二区三区| 日本一二三区视频观看| 永久网站在线| 中文乱码字字幕精品一区二区三区| 国产熟女欧美一区二区| 亚洲欧美清纯卡通| 亚洲电影在线观看av| 免费观看无遮挡的男女| 日韩,欧美,国产一区二区三区| 激情 狠狠 欧美| 成人综合一区亚洲| 午夜激情久久久久久久| 乱码一卡2卡4卡精品| 99久久精品热视频| 亚洲人成网站在线播| 日本色播在线视频| 亚洲精品国产av蜜桃| 亚洲成人中文字幕在线播放| 中文字幕亚洲精品专区| 男女啪啪激烈高潮av片| 国产免费一区二区三区四区乱码| 精品一区二区三卡| 亚洲天堂av无毛| 亚洲最大成人手机在线| 大又大粗又爽又黄少妇毛片口| 黄片wwwwww| 精品久久久精品久久久| 亚洲人成网站在线观看播放| 国产一区二区三区av在线| 一级毛片我不卡| kizo精华| 99热网站在线观看| 最近2019中文字幕mv第一页| 白带黄色成豆腐渣| 久久久久久国产a免费观看| 国产91av在线免费观看| 交换朋友夫妻互换小说| 啦啦啦中文免费视频观看日本| 国产成人精品一,二区| 91aial.com中文字幕在线观看| 亚洲综合精品二区| 久久亚洲国产成人精品v| 亚洲av男天堂| 成年免费大片在线观看| 欧美日韩一区二区视频在线观看视频在线 | 国产高清国产精品国产三级 | 亚洲av成人精品一区久久| 亚洲天堂av无毛| 国产精品99久久99久久久不卡 | 神马国产精品三级电影在线观看| 高清欧美精品videossex| 国产欧美亚洲国产| 欧美日韩视频高清一区二区三区二| 国产精品国产av在线观看| 一级毛片 在线播放| 免费黄网站久久成人精品| 97人妻精品一区二区三区麻豆| 人妻系列 视频| 22中文网久久字幕| 一本久久精品| 国产毛片a区久久久久| 男女国产视频网站| av在线老鸭窝| 精品国产乱码久久久久久小说| 丝袜脚勾引网站| 国产av码专区亚洲av| 欧美日韩视频高清一区二区三区二| 天堂网av新在线| 丰满人妻一区二区三区视频av| 中文在线观看免费www的网站| 最新中文字幕久久久久| 高清毛片免费看| 在线观看一区二区三区| 亚洲天堂国产精品一区在线| 又粗又硬又长又爽又黄的视频| 久久精品熟女亚洲av麻豆精品| 色哟哟·www| 国产午夜精品一二区理论片| 视频中文字幕在线观看| 成人免费观看视频高清| 插阴视频在线观看视频| 边亲边吃奶的免费视频| 国产视频内射| 久久精品国产自在天天线| 亚洲不卡免费看| 国产成人91sexporn| 国产 一区 欧美 日韩| 精品午夜福利在线看| 免费人成在线观看视频色| 丰满乱子伦码专区| 亚洲,欧美,日韩| 久久99热这里只频精品6学生| 伦理电影大哥的女人| 欧美日韩国产mv在线观看视频 | 日韩三级伦理在线观看| 人妻 亚洲 视频| 舔av片在线| 伊人久久精品亚洲午夜| 丰满少妇做爰视频| 交换朋友夫妻互换小说| 欧美丝袜亚洲另类| 亚洲精品成人久久久久久| 蜜桃久久精品国产亚洲av| 国产成人91sexporn| 国产成人a区在线观看| 国产精品三级大全| 国产伦在线观看视频一区| 亚洲欧美日韩卡通动漫| 99视频精品全部免费 在线| 久久久色成人| 午夜日本视频在线| 久久久久久久大尺度免费视频| 亚洲欧美成人综合另类久久久| 国产 一区 欧美 日韩| 一边亲一边摸免费视频| 人人妻人人爽人人添夜夜欢视频 | 一区二区av电影网| 日本一本二区三区精品| 欧美另类一区| 国产成人freesex在线| 色播亚洲综合网| 夜夜看夜夜爽夜夜摸| 国产 精品1| 欧美亚洲 丝袜 人妻 在线| 特大巨黑吊av在线直播| 国产精品国产三级国产av玫瑰| 夜夜爽夜夜爽视频| 听说在线观看完整版免费高清| 免费大片黄手机在线观看| 性色avwww在线观看| 91久久精品电影网| 又爽又黄无遮挡网站| 搡女人真爽免费视频火全软件| 免费黄频网站在线观看国产| 久久精品综合一区二区三区| 亚洲欧美日韩东京热| 午夜老司机福利剧场| 国产高潮美女av| 性色av一级| 国产精品av视频在线免费观看| 色网站视频免费| 美女内射精品一级片tv| 麻豆久久精品国产亚洲av| 人妻系列 视频| 男女下面进入的视频免费午夜| 最近最新中文字幕大全电影3| 男女边吃奶边做爰视频| 日韩,欧美,国产一区二区三区| 欧美成人一区二区免费高清观看| 亚洲av欧美aⅴ国产| 亚洲成人一二三区av| 亚洲欧洲国产日韩| 日韩视频在线欧美| 午夜亚洲福利在线播放| 国产av码专区亚洲av| 狂野欧美白嫩少妇大欣赏| 亚洲成人中文字幕在线播放| av在线老鸭窝| av在线天堂中文字幕| 亚洲av二区三区四区| 国产精品嫩草影院av在线观看| 亚洲av欧美aⅴ国产| 亚洲精品中文字幕在线视频 | 制服丝袜香蕉在线| 久久99热6这里只有精品| 草草在线视频免费看| 精品久久久噜噜| 久久影院123| 人人妻人人澡人人爽人人夜夜| 好男人在线观看高清免费视频| 26uuu在线亚洲综合色| 乱码一卡2卡4卡精品| 丰满乱子伦码专区| 网址你懂的国产日韩在线| 成年人午夜在线观看视频| 黄片无遮挡物在线观看| 国产 一区 欧美 日韩| 91久久精品国产一区二区三区| 黄色一级大片看看| 中文乱码字字幕精品一区二区三区| 中文欧美无线码| 亚洲天堂国产精品一区在线| 亚洲最大成人av| 国产黄片美女视频| 国产黄色视频一区二区在线观看| 久久精品久久久久久噜噜老黄| 夜夜爽夜夜爽视频| 久久久久久久精品精品| 国产成人精品久久久久久| 黄色视频在线播放观看不卡| 亚洲精品成人久久久久久| 亚洲av成人精品一区久久| 一级毛片久久久久久久久女| 亚洲国产高清在线一区二区三| 日韩一区二区三区影片| 99热网站在线观看| 熟女av电影| 精品久久久精品久久久| 自拍偷自拍亚洲精品老妇| 国产日韩欧美亚洲二区| 亚洲av电影在线观看一区二区三区 | 亚洲国产欧美人成| 欧美激情久久久久久爽电影| 成年人午夜在线观看视频| 哪个播放器可以免费观看大片| 亚洲av成人精品一区久久| 观看美女的网站| 肉色欧美久久久久久久蜜桃 | 亚洲综合色惰| 欧美日本视频| 亚洲va在线va天堂va国产| 只有这里有精品99| tube8黄色片| 午夜亚洲福利在线播放| 亚洲av日韩在线播放| 成人二区视频| 国产成人91sexporn| 精品久久久噜噜| 一级a做视频免费观看| 青春草视频在线免费观看| 夫妻午夜视频| 美女被艹到高潮喷水动态| 高清av免费在线| 国产在线一区二区三区精| 亚洲精品色激情综合| 另类亚洲欧美激情| 日韩成人av中文字幕在线观看| 黄色一级大片看看| 国模一区二区三区四区视频| 我的老师免费观看完整版| 亚洲精品成人av观看孕妇| 91aial.com中文字幕在线观看| 男人狂女人下面高潮的视频| 日韩中字成人| 18禁动态无遮挡网站| 精品久久久久久电影网| 国产色爽女视频免费观看| 777米奇影视久久| 国产伦精品一区二区三区四那| 亚洲精品国产色婷婷电影| 高清视频免费观看一区二区| 亚洲,一卡二卡三卡| 夫妻性生交免费视频一级片| 最近手机中文字幕大全| 国产精品一区二区性色av| 狂野欧美激情性bbbbbb| 久久久午夜欧美精品| 国产精品99久久99久久久不卡 | 伦精品一区二区三区| 好男人在线观看高清免费视频| 日韩中字成人| 赤兔流量卡办理| 一本久久精品| 免费观看a级毛片全部| av专区在线播放| av国产久精品久网站免费入址| 2021天堂中文幕一二区在线观| 在线观看一区二区三区激情| 亚洲色图综合在线观看| 制服丝袜香蕉在线| 男人狂女人下面高潮的视频| 亚洲内射少妇av| 看十八女毛片水多多多| 在线免费十八禁| 精品一区二区免费观看| 人妻一区二区av| 男人爽女人下面视频在线观看| 国产精品av视频在线免费观看| 久久亚洲国产成人精品v| 久久久色成人| 国产伦精品一区二区三区视频9| 亚洲无线观看免费| 亚洲国产色片| 美女国产视频在线观看| 国产成人freesex在线| 狂野欧美白嫩少妇大欣赏| 国产精品国产三级国产av玫瑰| 国产欧美亚洲国产| 久久人人爽人人片av| 大码成人一级视频| 日本熟妇午夜| 国产中年淑女户外野战色| 亚州av有码| 久久久久久久久久久免费av| 韩国高清视频一区二区三区| 久久人人爽人人爽人人片va| av天堂中文字幕网| 嘟嘟电影网在线观看| 欧美另类一区| 国产午夜福利久久久久久| 高清毛片免费看| 午夜免费鲁丝| 亚洲精品视频女| 国产免费又黄又爽又色|