System.ArgumentOutOfRangeException: 索引和長(zhǎng)度必須引用該字符串內(nèi)的位置。 參數(shù)名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術(shù)實(shí)現(xiàn)步驟摘要】
本專利技術(shù)涉及軟件安全,特別涉及一種基于圖神經(jīng)網(wǎng)絡(luò)的去中心化金融平臺(tái)借貸智能合約漏洞檢測(cè)方法及系統(tǒng)。
技術(shù)介紹
1、近年來(lái),區(qū)塊鏈技術(shù)和去中心化金融平臺(tái)(decentralized?finance,defi)迅速發(fā)展。defi平臺(tái)運(yùn)用了區(qū)塊鏈的去中心化、內(nèi)容不可篡改等技術(shù)優(yōu)勢(shì),利用智能合約系統(tǒng)完成了貸款、交易、衍生品等的金融服務(wù),為用戶展示了一種嶄新的金融模式。然而,智能合約的實(shí)際應(yīng)用帶來(lái)了巨大的安全性挑戰(zhàn)。因?yàn)檫\(yùn)行于更加開(kāi)放透明的區(qū)塊鏈中,智能合約程序存在的技術(shù)缺陷更易被發(fā)掘與應(yīng)用。
2、圖神經(jīng)網(wǎng)絡(luò)(graph?neural?networks,gnns)作為一項(xiàng)前沿的深度學(xué)習(xí)技術(shù),擅長(zhǎng)處理圖結(jié)構(gòu)化的數(shù)據(jù),并能精準(zhǔn)地對(duì)代碼進(jìn)行建模。利用gnns進(jìn)行自動(dòng)化與智能化的智能合約代碼分析,預(yù)期將提高漏洞檢測(cè)的效率與準(zhǔn)確性,進(jìn)而更有效地應(yīng)對(duì)去中心化金融(defi)領(lǐng)域的安全挑戰(zhàn)。傳統(tǒng)上用于智能合約的安全分析方法,如:基于規(guī)則的靜態(tài)分析方法覆蓋面有限,容易產(chǎn)生誤報(bào)和漏報(bào)。這類方法通過(guò)預(yù)定義的漏洞模式和代碼規(guī)則對(duì)智能合約進(jìn)行掃描和匹配,但無(wú)法適應(yīng)不斷變化的攻擊手段和復(fù)雜的合約邏輯,導(dǎo)致檢測(cè)的準(zhǔn)確性和效率較低。又如:基于符號(hào)執(zhí)行和形式化驗(yàn)證的方法需要大量的人工干預(yù)和專家知識(shí),適用性和自動(dòng)化程度不高。這類方法通過(guò)對(duì)智能合約的語(yǔ)義和行為進(jìn)行形式化建模和推理,但需要手工定義復(fù)雜的約束條件和斷言規(guī)則,對(duì)用戶的專業(yè)能力要求較高,難以大規(guī)模應(yīng)用。再如,基于深度學(xué)習(xí)的漏洞檢測(cè)方法大多將智能合約代碼轉(zhuǎn)換為簡(jiǎn)單的序列表示,忽略了代碼的結(jié)構(gòu)信息和語(yǔ)義關(guān)
技術(shù)實(shí)現(xiàn)思路
1、為此,本專利技術(shù)提供一種基于圖神經(jīng)網(wǎng)絡(luò)的去中心化金融平臺(tái)借貸智能合約漏洞檢測(cè)方法及系統(tǒng),利用gnns來(lái)進(jìn)行智能合約的表示學(xué)習(xí),能夠揭示代碼中的潛在模式,并精準(zhǔn)捕捉合約的語(yǔ)義及數(shù)據(jù)流特性,從而自動(dòng)識(shí)別出存在于借貸合約中的可重入性及時(shí)間戳依賴漏洞,實(shí)現(xiàn)智能合約漏洞的高效、準(zhǔn)確檢測(cè)和分類。
2、按照本專利技術(shù)所提供的設(shè)計(jì)方案,一方面,提供一種基于圖神經(jīng)網(wǎng)絡(luò)的去中心化金融平臺(tái)借貸智能合約漏洞檢測(cè)方法,包含:
3、收集智能合約源碼數(shù)據(jù),根據(jù)數(shù)據(jù)中是否存在漏洞對(duì)智能合約源碼數(shù)據(jù)進(jìn)行漏洞標(biāo)記;并將智能合約源碼數(shù)據(jù)編譯為抽象語(yǔ)法樹(shù),以利用抽象語(yǔ)法樹(shù)構(gòu)建用于描述智能合約源碼實(shí)體關(guān)系及交互模式的合約代碼異構(gòu)圖;
4、構(gòu)建圖神經(jīng)網(wǎng)絡(luò)模型,利用合約代碼異構(gòu)圖對(duì)圖神經(jīng)網(wǎng)絡(luò)模型進(jìn)行漏洞預(yù)測(cè)訓(xùn)練,得到智能合約漏洞檢測(cè)模型,其中,所述圖神經(jīng)網(wǎng)絡(luò)模型利用層次化注意力增強(qiáng)機(jī)制逐層捕獲合約代碼異構(gòu)圖的結(jié)構(gòu)特征并基于結(jié)構(gòu)特征預(yù)測(cè)識(shí)別合約代碼中的漏洞;
5、將待檢測(cè)智能合約源碼轉(zhuǎn)化為目標(biāo)合約代碼異構(gòu)圖,并利用智能合約漏洞檢測(cè)模型對(duì)目標(biāo)合約代碼異構(gòu)圖進(jìn)行漏洞預(yù)測(cè)。
6、作為本專利技術(shù)基于圖神經(jīng)網(wǎng)絡(luò)的去中心化金融平臺(tái)借貸智能合約漏洞檢測(cè)方法,進(jìn)一步地,將智能合約源碼數(shù)據(jù)編譯為抽象語(yǔ)法樹(shù),包含:
7、對(duì)智能合約源碼數(shù)據(jù)進(jìn)行預(yù)處理,所述預(yù)處理包括格式化、注釋去除及標(biāo)識(shí)符重命名;
8、利用編譯器將預(yù)處理后的智能合約源碼解析為抽象語(yǔ)法樹(shù),在抽象語(yǔ)法樹(shù)中每個(gè)節(jié)點(diǎn)對(duì)應(yīng)一個(gè)語(yǔ)法元素。
9、作為本專利技術(shù)基于圖神經(jīng)網(wǎng)絡(luò)的去中心化金融平臺(tái)借貸智能合約漏洞檢測(cè)方法,進(jìn)一步地,利用抽象語(yǔ)法樹(shù)構(gòu)建用于描述智能合約源碼實(shí)體關(guān)系及交互模式的合約代碼異構(gòu)圖,包含:
10、提取抽象語(yǔ)法樹(shù)中智能合約源碼語(yǔ)法信息和語(yǔ)義信息,所述語(yǔ)法信息包括抽象語(yǔ)法樹(shù)中的變量聲明節(jié)點(diǎn)類型、函數(shù)定義節(jié)點(diǎn)類型、修飾器節(jié)點(diǎn)類型、表達(dá)式語(yǔ)句節(jié)點(diǎn)類型和控制流語(yǔ)句節(jié)點(diǎn)類型,所述語(yǔ)義信息包括用于表示代碼執(zhí)行先后順序的控制流邊、用于表示代碼變量定義和使用關(guān)系的數(shù)據(jù)流邊和用于表示函數(shù)之間調(diào)用關(guān)系的調(diào)用邊;
11、將智能合約源碼語(yǔ)法信息和語(yǔ)義信息統(tǒng)一建模至合約代碼異構(gòu)圖中。
12、作為本專利技術(shù)基于圖神經(jīng)網(wǎng)絡(luò)的去中心化金融平臺(tái)借貸智能合約漏洞檢測(cè)方法,進(jìn)一步地,所述圖神經(jīng)網(wǎng)絡(luò)模型包含:異構(gòu)圖注意力單元、圖池化層和圖分類層,其中,所述異構(gòu)圖注意力單元包括:用于將異構(gòu)圖節(jié)點(diǎn)映射為初始特征向量的節(jié)點(diǎn)嵌入層、用于利用層次化注意力增強(qiáng)機(jī)制逐層捕獲合約代碼異構(gòu)圖的結(jié)構(gòu)特征的異構(gòu)圖注意力層、用于對(duì)節(jié)點(diǎn)結(jié)構(gòu)特征進(jìn)行聚合來(lái)生成異構(gòu)圖特征表示的圖表示學(xué)習(xí)層、及用于使用softmax將異構(gòu)圖特征表示映射為漏洞類型概率分布的預(yù)測(cè)輸出層,所述圖池化層用于利用節(jié)點(diǎn)在指定邊類型下的重要性得分對(duì)每種邊類型下的節(jié)點(diǎn)特征進(jìn)行聚合并得到關(guān)系級(jí)別的圖表示、并通過(guò)聚合不同邊類型下的圖表示來(lái)獲取最終輸出的圖表示,所述圖分類層用于將最終輸出的圖表示輸入至多層感知機(jī)中以利用多層感知機(jī)預(yù)測(cè)識(shí)別智能合約源碼中漏洞類型。
13、作為本專利技術(shù)基于圖神經(jīng)網(wǎng)絡(luò)的去中心化金融平臺(tái)借貸智能合約漏洞檢測(cè)方法,進(jìn)一步地,利用層次化注意力增強(qiáng)機(jī)制逐層捕獲合約代碼異構(gòu)圖的結(jié)構(gòu)特征,包含:
14、在當(dāng)前捕獲結(jié)構(gòu)特征的層級(jí),對(duì)于每個(gè)異構(gòu)圖節(jié)點(diǎn),根據(jù)鄰居節(jié)點(diǎn)的類型和特征計(jì)算注意力權(quán)重,使用注意力權(quán)重對(duì)鄰居節(jié)點(diǎn)的特征進(jìn)行加權(quán)求和并生成聚合特征,將當(dāng)前層節(jié)點(diǎn)的當(dāng)前特征與聚合特征進(jìn)行拼接或相加,并通過(guò)非線性激活函數(shù)relu來(lái)得到下一捕獲結(jié)構(gòu)特征層級(jí)中的節(jié)點(diǎn)特征,迭代執(zhí)行,直至迭代次數(shù)大于預(yù)設(shè)特征捕獲層數(shù),將最后一捕獲結(jié)構(gòu)特征層中的節(jié)點(diǎn)特征作為合約代碼異構(gòu)圖的結(jié)構(gòu)特征。
15、作為本專利技術(shù)基于圖神經(jīng)網(wǎng)絡(luò)的去中心化金融平臺(tái)借貸智能合約漏洞檢測(cè)方法,進(jìn)一步地,圖池化層最終輸出的圖表示表示為:其中,γr為關(guān)系r的重要性分?jǐn)?shù),為異構(gòu)圖中關(guān)系集合,hr為在關(guān)系r下聚合節(jié)點(diǎn)表示,且為異構(gòu)圖節(jié)點(diǎn)集合,為節(jié)點(diǎn)vi在關(guān)系r下的重要性分?jǐn)?shù)。
16、作為本專利技術(shù)基于圖神經(jīng)網(wǎng)絡(luò)的去中心化金融平臺(tái)借貸智能合約漏洞檢測(cè)方法,進(jìn)一步地,利用合約代碼異構(gòu)圖對(duì)圖神經(jīng)網(wǎng)絡(luò)模型進(jìn)行漏洞預(yù)測(cè)訓(xùn)練,包含:
17、利用交叉熵?fù)p失函數(shù)作為漏洞預(yù)測(cè)訓(xùn)練目標(biāo)函數(shù);
18、基于漏洞預(yù)測(cè)訓(xùn)練目標(biāo)函數(shù)并通過(guò)梯度反向傳播優(yōu)化算法對(duì)圖神經(jīng)網(wǎng)絡(luò)模型進(jìn)行訓(xùn)練優(yōu)化,直至模型收斂或達(dá)到訓(xùn)練優(yōu)化最大迭代次數(shù),以將訓(xùn)練后的圖神經(jīng)網(wǎng)絡(luò)模型作為智能合約漏洞檢測(cè)模型。
19、再一方面,本專利技術(shù)還提供一種基于圖神經(jīng)網(wǎng)絡(luò)的去中心化金融平臺(tái)借貸智能合約漏洞檢測(cè)系統(tǒng),包含:樣本收集模塊、模型訓(xùn)練模塊和漏洞檢測(cè)模塊,其中,
20、樣本收集模塊,用于收集智能合約源碼數(shù)據(jù),根據(jù)數(shù)據(jù)中是否存在漏洞對(duì)智能合約源碼數(shù)據(jù)進(jìn)行漏洞標(biāo)記;并將智能合約源碼數(shù)據(jù)編譯為抽象語(yǔ)法樹(shù),以利用抽象語(yǔ)法樹(shù)構(gòu)建用于描述智能合約源碼實(shí)體關(guān)本文檔來(lái)自技高網(wǎng)...
【技術(shù)保護(hù)點(diǎn)】
1.一種基于圖神經(jīng)網(wǎng)絡(luò)的去中心化金融平臺(tái)借貸智能合約漏洞檢測(cè)方法,其特征在于,包含:
2.根據(jù)權(quán)利要求1所述的基于圖神經(jīng)網(wǎng)絡(luò)的去中心化金融平臺(tái)借貸智能合約漏洞檢測(cè)方法,其特征在于,將智能合約源碼數(shù)據(jù)編譯為抽象語(yǔ)法樹(shù),包含:
3.根據(jù)權(quán)利要求1或2所述的基于圖神經(jīng)網(wǎng)絡(luò)的去中心化金融平臺(tái)借貸智能合約漏洞檢測(cè)方法,其特征在于,利用抽象語(yǔ)法樹(shù)構(gòu)建用于描述智能合約源碼實(shí)體關(guān)系及交互模式的合約代碼異構(gòu)圖,包含:
4.根據(jù)權(quán)利要求1所述的基于圖神經(jīng)網(wǎng)絡(luò)的去中心化金融平臺(tái)借貸智能合約漏洞檢測(cè)方法,其特征在于,所述圖神經(jīng)網(wǎng)絡(luò)模型包含:異構(gòu)圖注意力單元、圖池化層和圖分類層,其中,所述異構(gòu)圖注意力單元包括:用于將異構(gòu)圖節(jié)點(diǎn)映射為初始特征向量的節(jié)點(diǎn)嵌入層、用于利用層次化注意力增強(qiáng)機(jī)制逐層捕獲合約代碼異構(gòu)圖的結(jié)構(gòu)特征的異構(gòu)圖注意力層、用于對(duì)節(jié)點(diǎn)結(jié)構(gòu)特征進(jìn)行聚合來(lái)生成異構(gòu)圖特征表示的圖表示學(xué)習(xí)層、及用于使用softmax將異構(gòu)圖特征表示映射為漏洞類型概率分布的預(yù)測(cè)輸出層,所述圖池化層用于利用節(jié)點(diǎn)在指定邊類型下的重要性得分對(duì)每種邊類型下的節(jié)點(diǎn)特征進(jìn)行聚合并得到關(guān)系級(jí)別的圖表
5.根據(jù)權(quán)利要求1或4所述的基于圖神經(jīng)網(wǎng)絡(luò)的去中心化金融平臺(tái)借貸智能合約漏洞檢測(cè)方法,其特征在于,利用層次化注意力增強(qiáng)機(jī)制逐層捕獲合約代碼異構(gòu)圖的結(jié)構(gòu)特征,包含:
6.根據(jù)權(quán)利要求4所述的基于圖神經(jīng)網(wǎng)絡(luò)的去中心化金融平臺(tái)借貸智能合約漏洞檢測(cè)方法,其特征在于,圖池化層最終輸出的圖表示表示為:其中,γr為關(guān)系r的重要性分?jǐn)?shù),為異構(gòu)圖中關(guān)系集合,hr為在關(guān)系r下聚合節(jié)點(diǎn)表示,且為異構(gòu)圖節(jié)點(diǎn)集合,為節(jié)點(diǎn)vi在關(guān)系r下的重要性分?jǐn)?shù)。
7.根據(jù)權(quán)利要求1所述的基于圖神經(jīng)網(wǎng)絡(luò)的去中心化金融平臺(tái)借貸智能合約漏洞檢測(cè)方法,其特征在于,利用合約代碼異構(gòu)圖對(duì)圖神經(jīng)網(wǎng)絡(luò)模型進(jìn)行漏洞預(yù)測(cè)訓(xùn)練,包含:
8.一種基于圖神經(jīng)網(wǎng)絡(luò)的去中心化金融平臺(tái)借貸智能合約漏洞檢測(cè)系統(tǒng),其特征在于,包含:樣本收集模塊、模型訓(xùn)練模塊和漏洞檢測(cè)模塊,其中,
9.一種電子設(shè)備,其特征在于,包括:
10.一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中存儲(chǔ)有計(jì)算機(jī)程序,當(dāng)計(jì)算機(jī)程序被執(zhí)行時(shí),能夠?qū)崿F(xiàn)如權(quán)利要求1~7任一項(xiàng)所述的方法。
...【技術(shù)特征摘要】
1.一種基于圖神經(jīng)網(wǎng)絡(luò)的去中心化金融平臺(tái)借貸智能合約漏洞檢測(cè)方法,其特征在于,包含:
2.根據(jù)權(quán)利要求1所述的基于圖神經(jīng)網(wǎng)絡(luò)的去中心化金融平臺(tái)借貸智能合約漏洞檢測(cè)方法,其特征在于,將智能合約源碼數(shù)據(jù)編譯為抽象語(yǔ)法樹(shù),包含:
3.根據(jù)權(quán)利要求1或2所述的基于圖神經(jīng)網(wǎng)絡(luò)的去中心化金融平臺(tái)借貸智能合約漏洞檢測(cè)方法,其特征在于,利用抽象語(yǔ)法樹(shù)構(gòu)建用于描述智能合約源碼實(shí)體關(guān)系及交互模式的合約代碼異構(gòu)圖,包含:
4.根據(jù)權(quán)利要求1所述的基于圖神經(jīng)網(wǎng)絡(luò)的去中心化金融平臺(tái)借貸智能合約漏洞檢測(cè)方法,其特征在于,所述圖神經(jīng)網(wǎng)絡(luò)模型包含:異構(gòu)圖注意力單元、圖池化層和圖分類層,其中,所述異構(gòu)圖注意力單元包括:用于將異構(gòu)圖節(jié)點(diǎn)映射為初始特征向量的節(jié)點(diǎn)嵌入層、用于利用層次化注意力增強(qiáng)機(jī)制逐層捕獲合約代碼異構(gòu)圖的結(jié)構(gòu)特征的異構(gòu)圖注意力層、用于對(duì)節(jié)點(diǎn)結(jié)構(gòu)特征進(jìn)行聚合來(lái)生成異構(gòu)圖特征表示的圖表示學(xué)習(xí)層、及用于使用softmax將異構(gòu)圖特征表示映射為漏洞類型概率分布的預(yù)測(cè)輸出層,所述圖池化層用于利用節(jié)點(diǎn)在指定邊類型下的重要性得分對(duì)每種邊類型下的節(jié)點(diǎn)特征進(jìn)行聚合并得到關(guān)系級(jí)別的圖表示、并通過(guò)聚合不同邊類型下的圖表示來(lái)獲取最終輸出的圖表示,所述圖分類層...
【專利技術(shù)屬性】
技術(shù)研發(fā)人員:魏強(qiáng),潘邦,王允超,陳昊文,王云峰,燕宸毓,崔雄偉,
申請(qǐng)(專利權(quán))人:中國(guó)人民解放軍網(wǎng)絡(luò)空間部隊(duì)信息工程大學(xué),
類型:發(fā)明
國(guó)別省市:
還沒(méi)有人留言評(píng)論。發(fā)表了對(duì)其他瀏覽者有用的留言會(huì)獲得科技券。