99久久精品国产一区二区狐狸,99福利在线观看,国产精品毛片在线,成人影院亚洲,日韩精品第一,天天躁日日躁性色aⅴ电影,午夜毛片网

一種基于簡(jiǎn)化異構(gòu)圖Transfomer的漏洞檢測(cè)方法

文檔序號(hào):42066597發(fā)布日期:2025-06-04 18:28閱讀:5來(lái)源:國(guó)知局


背景技術(shù):

1、隨著科技的進(jìn)步,尤其是近年來(lái)神經(jīng)網(wǎng)絡(luò)的迅速發(fā)展,促進(jìn)了新一輪的產(chǎn)業(yè)變革和科技革命,然而,隨著互聯(lián)網(wǎng)技術(shù)的普及,惡意活動(dòng)與日俱增。隨著人工智能的快速發(fā)展,基于深度學(xué)習(xí)的漏洞挖掘與檢測(cè)方法層出不窮,覆蓋了靜態(tài)分析、動(dòng)態(tài)分析以及動(dòng)靜結(jié)合等場(chǎng)景?,F(xiàn)有的漏洞檢測(cè)程序表示方法主要有基于度量、序列、語(yǔ)法樹和圖的方法。基于序列的方法通過(guò)將代碼轉(zhuǎn)換為token序列,再利用深度神經(jīng)網(wǎng)絡(luò)建模,可以體現(xiàn)程序的自然語(yǔ)言序列信息,但難以捕捉程序的結(jié)構(gòu)信息?;谡Z(yǔ)法樹的方法擅長(zhǎng)捕捉代碼的語(yǔ)法結(jié)構(gòu)信息,而基于圖的方法則保留了代碼的邏輯結(jié)構(gòu)和依賴關(guān)系信息。在漏洞檢測(cè)粒度上來(lái)說(shuō)很多方法是文件級(jí)別或者是函數(shù)級(jí)別的預(yù)測(cè),在函數(shù)規(guī)模較大時(shí)的圖結(jié)構(gòu)過(guò)于復(fù)雜和龐大,影響模型的學(xué)習(xí)效率,并且圖中存在大量與漏洞無(wú)關(guān)的節(jié)點(diǎn)和邊會(huì)對(duì)模型學(xué)習(xí)漏洞模式產(chǎn)生干擾,從而導(dǎo)致模型的誤報(bào)率較高。

2、漏洞關(guān)注點(diǎn)是可能引發(fā)漏洞的代碼行?,F(xiàn)有的漏洞關(guān)注點(diǎn)篩選方式多為啟發(fā)式,且很難從源代碼層面概括全部漏洞關(guān)注點(diǎn),這種方法難以覆蓋所有可能的漏洞類型,導(dǎo)致某些漏洞類型在后續(xù)檢測(cè)中無(wú)法被深度神經(jīng)網(wǎng)絡(luò)模型識(shí)別。當(dāng)前的基于序列的程序表示模型雖然能夠?qū)W習(xí)代碼的順序語(yǔ)義特征,但無(wú)法捕獲代碼的結(jié)構(gòu)語(yǔ)義信息?;谡Z(yǔ)法樹的程序表示模型雖然能有效學(xué)習(xí)代碼的語(yǔ)法結(jié)構(gòu)特征,但無(wú)法提取語(yǔ)句之間結(jié)構(gòu)語(yǔ)義特征。而基于圖的程序表示模型雖然能夠有效學(xué)習(xí)代碼的數(shù)據(jù)依賴和控制依賴等結(jié)構(gòu)語(yǔ)義特征,但無(wú)法提取代碼的順序語(yǔ)義特征。


技術(shù)實(shí)現(xiàn)思路

1、本發(fā)明的目的在于提出一種基于簡(jiǎn)化異構(gòu)圖transfomer的漏洞檢測(cè)方法。

2、實(shí)現(xiàn)本發(fā)明目的的技術(shù)解決方案為:一種基于簡(jiǎn)化異構(gòu)圖transfomer的漏洞檢測(cè)方法,包括以下步驟:

3、步驟1:基于sard數(shù)據(jù)集,將文件級(jí)的源代碼進(jìn)行預(yù)處理,去除代碼多余的注釋,將源代碼中的所有用戶自定義的變量名和函數(shù)名統(tǒng)一映射為通用占位符;

4、步驟2:利用靜態(tài)分析工具解析源代碼,生成以抽象語(yǔ)法樹、控制流圖和程序依賴圖聯(lián)合表示代碼結(jié)構(gòu)信息,以代碼語(yǔ)句內(nèi)容、節(jié)點(diǎn)類型和節(jié)點(diǎn)度數(shù)表示節(jié)點(diǎn)屬性信息的代碼屬性圖;

5、步驟3:利用sublime_text工具提取預(yù)處理后源代碼的4種漏洞關(guān)注點(diǎn),包括api/庫(kù)函數(shù)調(diào)用相關(guān)漏洞關(guān)注點(diǎn)、指針相關(guān)漏洞關(guān)注點(diǎn)、數(shù)組相關(guān)漏洞關(guān)注點(diǎn)、算術(shù)表達(dá)式相關(guān)漏洞關(guān)注點(diǎn);

6、步驟4:以步驟3得到的4種相關(guān)漏洞關(guān)注點(diǎn)作為切片準(zhǔn)則,前向和后向遍歷在步驟2中得到的代碼屬性圖,獲取切片語(yǔ)句集合,生成切片級(jí)代碼屬性圖;

7、步驟5:簡(jiǎn)化步驟4所得切片級(jí)代碼屬性圖的節(jié)點(diǎn)類型,根據(jù)是否包含漏洞語(yǔ)句節(jié)點(diǎn)給簡(jiǎn)化后的切片級(jí)異構(gòu)圖標(biāo)記類別標(biāo)簽;

8、步驟6:對(duì)步驟5所得標(biāo)記類別標(biāo)簽后的簡(jiǎn)化切片級(jí)異構(gòu)圖中的每個(gè)節(jié)點(diǎn)執(zhí)行doc2vec嵌入,生成初始節(jié)點(diǎn)嵌入;

9、步驟7:構(gòu)建并訓(xùn)練shgt模型,所述shgt模型通過(guò)注意力機(jī)制和信息傳遞機(jī)制,將簡(jiǎn)化切片級(jí)異構(gòu)圖中的節(jié)點(diǎn)及其鄰居信息進(jìn)行有效整合,生成新的節(jié)點(diǎn)嵌入表示,通過(guò)淺層多層感知器進(jìn)行逐行的mean運(yùn)算,生成圖的全局向量嵌入,表征漏洞標(biāo)簽;

10、步驟8:對(duì)于給定的待識(shí)別文件級(jí)的源代碼,生成初始節(jié)點(diǎn)嵌入后,輸入訓(xùn)練好的shgt模型進(jìn)行漏洞檢測(cè)。

11、進(jìn)一步的,步驟1:基于sard數(shù)據(jù)集,將文件級(jí)的源代碼進(jìn)行預(yù)處理,去除代碼多余的注釋,將源代碼中的所有用戶自定義的變量名和函數(shù)名統(tǒng)一映射為通用占位符,其中:

12、將源代碼中的所有用戶自定義的變量名和函數(shù)名統(tǒng)一映射為通用占位符時(shí),將變量名替換為var1、var2,函數(shù)名替換為func1、func2。

13、進(jìn)一步的,步驟4:以步驟3得到的4種相關(guān)漏洞關(guān)注點(diǎn)作為切片準(zhǔn)則,前向和后向遍歷在步驟2中得到的代碼屬性圖,獲取切片語(yǔ)句集合,生成切片級(jí)代碼屬性圖,其中:

14、切片級(jí)代碼屬性圖的節(jié)點(diǎn)如表1所示;

15、表1簡(jiǎn)化前的節(jié)點(diǎn)列表

16、

17、

18、進(jìn)一步的,步驟5:簡(jiǎn)化步驟4所得切片級(jí)代碼屬性圖的節(jié)點(diǎn)類型,根據(jù)是否包含漏洞語(yǔ)句節(jié)點(diǎn)給簡(jiǎn)化后的切片級(jí)異構(gòu)圖標(biāo)記類別標(biāo)簽,其中:

19、namespace和namespace?block合并為namespace;

20、method?parameter?in和method?parameter?out合并為method?parameter;

21、type、type?argument、type?decl和type?parameter合并為type;

22、call和call_repr合并為call;

23、field?identifier和identifier合并為identifier;

24、annotation、annotation?literal、annotation?parameter和annotationparameterassign合并為annotation;

25、簡(jiǎn)化后的切片級(jí)代碼屬性圖的節(jié)點(diǎn)列表如表2所示;

26、表2簡(jiǎn)化后的節(jié)點(diǎn)列表

27、

28、進(jìn)一步的,步驟5:簡(jiǎn)化步驟4所得切片級(jí)代碼屬性圖的節(jié)點(diǎn)類型,根據(jù)是否包含漏洞語(yǔ)句節(jié)點(diǎn)給簡(jiǎn)化后的切片級(jí)異構(gòu)圖標(biāo)記類別標(biāo)簽,其中:

29、根據(jù)否包含漏洞語(yǔ)句節(jié)點(diǎn)給簡(jiǎn)化后的切片級(jí)異構(gòu)圖標(biāo)記類別標(biāo)簽時(shí),將存在漏洞則標(biāo)記為1,不存在漏洞則標(biāo)記為0。

30、進(jìn)一步的,步驟6:對(duì)步驟5所得標(biāo)記類別標(biāo)簽后的簡(jiǎn)化切片級(jí)異構(gòu)圖中的每個(gè)節(jié)點(diǎn)執(zhí)行doc2vec嵌入,生成初始節(jié)點(diǎn)嵌入,具體方法為:

31、步驟6-1:將簡(jiǎn)化切片級(jí)異構(gòu)圖屬中節(jié)點(diǎn)屬性信息中的代碼語(yǔ)句拆分成token,使用doc2vec模型得到每個(gè)token的向量表示后加和取平均得到語(yǔ)句的向量表示,作為節(jié)點(diǎn)語(yǔ)句特征向量;

32、步驟6-2:將切片屬性圖中節(jié)點(diǎn)屬性信息中的節(jié)點(diǎn)類型進(jìn)行one-hot編碼,得到節(jié)點(diǎn)類型特征向量;

33、步驟6-3:計(jì)算切片屬性圖中每個(gè)節(jié)點(diǎn)的出度和入度,作為節(jié)點(diǎn)度數(shù)特征向量;

34、步驟6-4:將步驟6-1,6-2,6-3中得到的節(jié)點(diǎn)語(yǔ)句特征向量、節(jié)點(diǎn)類型特征向量和節(jié)點(diǎn)度數(shù)特征向量拼接,并通過(guò)一個(gè)線性層計(jì)算得到節(jié)點(diǎn)的初始向量表示,作為初始節(jié)點(diǎn)嵌入。

35、進(jìn)一步的,步驟7:構(gòu)建并訓(xùn)練shgt模型,所述shgt模型通過(guò)注意力機(jī)制和信息傳遞機(jī)制,將簡(jiǎn)化切片級(jí)異構(gòu)圖中的節(jié)點(diǎn)及其鄰居信息進(jìn)行有效整合,生成新的節(jié)點(diǎn)嵌入表示,通過(guò)淺層多層感知器進(jìn)行逐行的mean運(yùn)算,生成圖的全局向量嵌入,表征漏洞標(biāo)簽,具體方法為:

36、步驟7-1:模型輸入:構(gòu)建三元組輸入到shgt模型中,將簡(jiǎn)化切片級(jí)異構(gòu)圖中的每個(gè)漏洞關(guān)注節(jié)點(diǎn)視為目標(biāo)節(jié)點(diǎn),將其所有連接的鄰居節(jié)點(diǎn)視為源節(jié)點(diǎn),對(duì)于每個(gè)源節(jié)點(diǎn)/目標(biāo)節(jié)點(diǎn)對(duì),將三元組定義為源節(jié)點(diǎn)/目標(biāo)節(jié)點(diǎn)對(duì)的關(guān)系,τ(·)是節(jié)點(diǎn)類型映射,表示邊類型映射,這個(gè)三元組以及步驟6所得源節(jié)點(diǎn)、目標(biāo)節(jié)點(diǎn)的初始節(jié)點(diǎn)嵌入構(gòu)成shgt模型的輸入;

37、步驟7-2:異質(zhì)注意力計(jì)算模塊:包括多個(gè)注意力頭,將目標(biāo)節(jié)點(diǎn)設(shè)為t,將源節(jié)點(diǎn)設(shè)為s1,每個(gè)注意力頭分別使用線性變換矩陣q-linear和k-linear將目標(biāo)節(jié)點(diǎn)對(duì)應(yīng)的初始節(jié)點(diǎn)嵌入和源節(jié)點(diǎn)對(duì)應(yīng)的初始節(jié)點(diǎn)嵌入轉(zhuǎn)換為查詢矩陣q和鍵矩陣k,計(jì)算目標(biāo)節(jié)點(diǎn)t與源節(jié)點(diǎn)s1之間的原始注意力值;將每個(gè)注意力頭中目標(biāo)節(jié)點(diǎn)t與源節(jié)點(diǎn)s1之間的原始注意力值拼接,得到目標(biāo)節(jié)點(diǎn)t與源節(jié)點(diǎn)s1的原始注意力向量;將目標(biāo)節(jié)點(diǎn)t與所有鄰居節(jié)點(diǎn)s的原始注意力向量拼接,再通過(guò)softmax函數(shù)進(jìn)行歸一化,得到目標(biāo)節(jié)點(diǎn)t的最終注意力向量,公式表示為:

38、

39、其中,qi(t)表示第i個(gè)注意力頭中目標(biāo)節(jié)點(diǎn)t的查詢矩陣映射,ki(s1)表示第i個(gè)注意力頭中目標(biāo)節(jié)點(diǎn)t的鍵矩陣映射,h(l-1)[t]表示目標(biāo)節(jié)點(diǎn)t第l層的嵌入,代表邊類型的可學(xué)習(xí)參數(shù)矩陣,是第i個(gè)頭部的原始注意力值,μ為縮放因子;

40、步驟7-3:異質(zhì)消息計(jì)算模塊:包括多個(gè)消息頭,每個(gè)消息頭使用線性變換矩陣v-linear將源節(jié)點(diǎn)對(duì)應(yīng)的初始節(jié)點(diǎn)嵌入轉(zhuǎn)換為值矩陣v,計(jì)算源節(jié)點(diǎn)s1的原始消息值;將每個(gè)消息頭中源節(jié)點(diǎn)s1的原始消息值拼接,得到源節(jié)點(diǎn)s1的原始消息向量,公式表示為:

41、

42、其中,vi(s1)表示第i個(gè)消息頭中源節(jié)點(diǎn)s1的值矩陣映射,代表邊類型的可學(xué)習(xí)參數(shù)矩陣;

43、步驟7-4:注意力和信息聚合模塊:使用逐元素乘法,將目標(biāo)節(jié)點(diǎn)t的最終注意力向量和源節(jié)點(diǎn)s1的原始消息向量聚合,生成目標(biāo)節(jié)點(diǎn)t與源節(jié)點(diǎn)s1的加權(quán)消息;將目標(biāo)節(jié)點(diǎn)t與所有鄰居節(jié)點(diǎn)s的加權(quán)消息拼接,更新目標(biāo)節(jié)點(diǎn)t的節(jié)點(diǎn)嵌入表示

44、

45、步驟7-5:步驟7-2~步驟7-4形成一個(gè)節(jié)點(diǎn)嵌入模型,構(gòu)建三層串聯(lián)的節(jié)點(diǎn)嵌入模型,使用線性變換矩陣a-linear與激活函數(shù)α將第一層更新過(guò)的目標(biāo)節(jié)點(diǎn)t的節(jié)點(diǎn)嵌入表示轉(zhuǎn)化成新的節(jié)點(diǎn)嵌入表示作為第二層節(jié)點(diǎn)嵌入模型的輸h1[t];第二層經(jīng)過(guò)步驟7-2~步驟7-4后,使用線性變換矩陣a-linear與激活函數(shù)α將第二層更新過(guò)的目標(biāo)節(jié)點(diǎn)t的節(jié)點(diǎn)嵌入表示轉(zhuǎn)化成新的節(jié)點(diǎn)嵌入表示作為第三層節(jié)點(diǎn)嵌入模型的輸入h2[t];

46、

47、第三層經(jīng)過(guò)步驟7-2~步驟7-4后,輸出最終的節(jié)點(diǎn)嵌入表示h3[t];

48、步驟7-6:三層串聯(lián)的節(jié)點(diǎn)嵌入模型串聯(lián)淺層多層感知器(mlp)形成shgt模型,將經(jīng)過(guò)三層串聯(lián)的節(jié)點(diǎn)嵌入模型后的節(jié)點(diǎn)嵌入表示h3[t]通過(guò)淺層多層感知器(mlp)并進(jìn)行逐行的mean運(yùn)算(均值操作),生成圖的全局向量嵌入,其中標(biāo)簽0代表沒有漏洞,而標(biāo)簽1表示包含漏洞;

49、步驟7-7、利用切片的類別標(biāo)簽信息計(jì)算交叉熵?fù)p失函數(shù)loss,根據(jù)誤差反向傳播調(diào)整網(wǎng)絡(luò)參數(shù)。

50、一種基于簡(jiǎn)化異構(gòu)圖transfomer的漏洞檢測(cè)系統(tǒng),實(shí)施所述的基于簡(jiǎn)化異構(gòu)圖transfomer的漏洞檢測(cè)方法,實(shí)現(xiàn)基于簡(jiǎn)化異構(gòu)圖transfomer的漏洞檢測(cè),分8個(gè)模塊分別執(zhí)行步驟1~8。

51、一種計(jì)算機(jī)設(shè)備,包括存儲(chǔ)器、處理器及存儲(chǔ)在存儲(chǔ)器上并可在處理器上運(yùn)行的計(jì)算機(jī)程序,所述處理器執(zhí)行所述計(jì)算機(jī)程序時(shí),實(shí)施所述的基于簡(jiǎn)化異構(gòu)圖transfomer的漏洞檢測(cè)方法,實(shí)現(xiàn)基于簡(jiǎn)化異構(gòu)圖transfomer的漏洞檢測(cè)。

52、一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其上存儲(chǔ)有計(jì)算機(jī)程序,所述計(jì)算機(jī)程序被處理器執(zhí)行時(shí),實(shí)施所述的基于簡(jiǎn)化異構(gòu)圖transfomer的漏洞檢測(cè)方法,實(shí)現(xiàn)基于簡(jiǎn)化異構(gòu)圖transfomer的漏洞檢測(cè)。

53、本發(fā)明與現(xiàn)有技術(shù)相比,顯著優(yōu)點(diǎn)為:

54、(1)從源代碼層面設(shè)計(jì)漏洞關(guān)注點(diǎn)提取規(guī)則,在操作方便的同時(shí)覆蓋了盡可能多的漏洞類型;并基于漏洞關(guān)注點(diǎn)和代碼屬性圖生成了切片級(jí)別的簡(jiǎn)化異構(gòu)圖,最大程度的減少了漏洞無(wú)關(guān)語(yǔ)句,降低了噪聲影響。

55、(2)在構(gòu)建與漏洞特征高度相關(guān)的簡(jiǎn)化異構(gòu)圖的基礎(chǔ)上,構(gòu)建了結(jié)合圖神經(jīng)網(wǎng)絡(luò)和多頭注意力機(jī)制的神經(jīng)網(wǎng)絡(luò)模型,該模型可以充分考慮控制依賴性和數(shù)據(jù)依賴性等信息,學(xué)習(xí)簡(jiǎn)化異構(gòu)圖中的不同特征表示,顯著提高了神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)效率。

當(dāng)前第1頁(yè)1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1