System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內(nèi)的位置。 參數(shù)名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術(shù)實現(xiàn)步驟摘要】
本專利技術(shù)屬于智能合約漏洞檢測,具體涉及一種基于專家知識的智能合約細粒度漏洞檢測方法。
技術(shù)介紹
1、自區(qū)塊鏈誕生以來,區(qū)塊鏈技術(shù)在商業(yè)、金融、醫(yī)療保健等多個領(lǐng)域獲得了廣泛關(guān)注和應(yīng)用。去中心化理念及其在金融和日常生活中的實際可行性,引領(lǐng)了密碼學(xué)研究的新方向。以以太坊為代表的區(qū)塊鏈2.0推動了智能合約的廣泛應(yīng)用,不僅為去中心化應(yīng)用開啟了無限可能,還促進了計算機科學(xué)基礎(chǔ)的進步。然而,智能合約的安全隱患與區(qū)塊鏈自身的性能瓶頸,如容量限制、延遲問題以及可擴展性挑戰(zhàn),成為大規(guī)模推廣的主要障礙。因此,智能合約漏洞檢測成為學(xué)術(shù)界研究的重點問題。
2、現(xiàn)有基于深度學(xué)習(xí)檢測方法主要依賴智能合約源代碼的單一維度分析,難以全面捕捉合約的復(fù)雜語義和結(jié)構(gòu)信息。為此,本專利技術(shù)提出了一種基于專家知識的智能合約細粒度漏洞檢測方法——bgscvul。
3、bgscvul通過靜態(tài)分析智能合約源代碼語句,同時,將抽象語法樹子樹合并到控制流圖節(jié)點的代碼圖,用于異構(gòu)代碼特征表示,通過注意力機制進行細粒度特征結(jié)合,同時結(jié)合專家知識分類器,提取更為全面的漏洞特征表示,bgscvul能夠更精確地識別智能合約中的潛在漏洞。
技術(shù)實現(xiàn)思路
1、本專利技術(shù)的一種基于專家知識的智能合約細粒度漏洞檢測方法,主要目的是能夠更加全面提取漏洞信息,從而提高漏洞檢測準確性。
2、為了實現(xiàn)上述目的,本專利技術(shù)的一種基于專家知識的智能合約細粒度漏洞檢測方法,包括以下步驟:
3、s1:利用大語言模型,構(gòu)
4、s2:通過源代碼細粒度特征初步表示與源代碼圖表示獲取同一智能合約的異構(gòu)代碼特征和源代碼細粒度特征,輸入到bgscvul模型中進行迭代融合,構(gòu)建深度學(xué)習(xí)分類器;
5、s3:通過構(gòu)造專家知識分類器,實現(xiàn)以針對特定專家知識做出決策;
6、s4:使用壓棧方法融合各個子分類器的輸出,輸出最終預(yù)測。
7、進一步地,所述步驟s1包括:
8、s1-1:通過分析以太坊智能合約的語法描述、代碼特征等技術(shù)文檔,并結(jié)合公開的智能合約漏洞平臺對漏洞的描述,進行智能合約源代碼的數(shù)據(jù)收集和整理;
9、s1-2:依據(jù)步驟s1-1所收集到的智能合約代碼,通過官方接口和solidity版本描述,將不同版本的智能合約代碼的抽象語法樹進行規(guī)范化;
10、s1-3:通過“重入”,“拒絕服務(wù)”,“未檢查的低級調(diào)用”描述性詞匯;提供足夠的背景信息,幫助模型理解代碼片段的意義,通過“solidity合約中的轉(zhuǎn)賬函數(shù)”描述具體位置;給出存在漏洞的代碼段作為例子,使模型能學(xué)習(xí)如何識別相似模式;提出具體的問題或任務(wù),指導(dǎo)模型查找潛在的安全隱患,通過“找出所有可能引發(fā)重入攻擊的地方”具體指令;結(jié)合精心設(shè)計的提示詞,輔助分析智能合約源代碼并準確地識別出潛在的漏洞類型,分析多個大模型的回答結(jié)果,若超過百分之八十的大模型的回答表明合約存在漏洞,則為該合約打上存在漏洞的標簽;
11、s1-4:為了精確捕捉智能合約的源代碼特征,運用antlr4工具,配合solidity語言的語法規(guī)范,構(gòu)造抽象語法樹,將智能合約源代碼轉(zhuǎn)換成一個輸入流,構(gòu)成antlr4解析器可以讀取的格式,接著對于源代碼會使用詞法分析器將輸入流分解成一個個標記;
12、s1-5:為了進一步優(yōu)化抽象語法樹數(shù)據(jù),提升后續(xù)分析的精準度,對生成的序列進行了規(guī)范化處理,這一階段,專注于剔除那些對語義解讀并無實質(zhì)性貢獻的冗余信息,所有簡單變量名、非必要的標點符號,以及各種類型的常量值,均被系統(tǒng)地替換或清除;
13、s1-6:為了進一步提取化源代碼信息,采用fasttext作為代碼嵌入的工具,經(jīng)過訓(xùn)練,語料庫中的每個token,包括那些反映結(jié)構(gòu)特性的符號,都被轉(zhuǎn)化為固定長度的實數(shù)向量,這一過程有效地捕捉了代碼的內(nèi)在特征,接著遍歷源代碼中的token,并將每個token的向量相加,獲得源代碼細粒度特征初步表示svector;
14、s1-7:在靜態(tài)分析過程中,從代碼中提取了四條不同的信息,首先使用solidity靜態(tài)分析工具slither生成控制流圖,作為代碼圖的基礎(chǔ);在控制流圖中,每個節(jié)點代表一條語句,每條邊代表語句之間的控制流;然后,基于控制流圖,通過每個變量的定義-使用鏈提取語句之間的數(shù)據(jù)流;然后,提取每個語句的抽象語法樹子樹;此抽象語法樹子樹是使用solidity語法分析工具solc-typed-ast實現(xiàn)的;最后,從每個語句的抽象語法樹子樹根節(jié)點的“nodetype”字段獲取每個語句的類型信息;
15、s1-8:通過靜態(tài)分析獲取上述代碼信息后,將其與兩類附加虛擬節(jié)點v_fun和v_loop組合起來,構(gòu)建代碼圖;首先,以控制流圖為代碼圖的基礎(chǔ),并將數(shù)據(jù)流信息添加其中;隨后,為了保留語法特征的樹結(jié)構(gòu),使用每條語句的抽象語法樹子樹替換控制流圖中對應(yīng)節(jié)點的內(nèi)容;然后,將每條語句的類型合并到圖中對應(yīng)的節(jié)點中,合并后的代碼圖中的節(jié)點可以反映語句的語法信息,而有向邊則表示語句之間的控制流和數(shù)據(jù)流。
16、進一步地,步驟s2括以下步驟:
17、s2-1:對于s1-6中所生成的svector,送入前饋神經(jīng)網(wǎng)絡(luò),對其進行特征提取,獲得源代碼細粒度特征xreduce,
18、;
19、其中x1是xreduce經(jīng)由linear層與relu之后的結(jié)果,x2是x1經(jīng)由linear層與relu之后的結(jié)果,linear是線性層,relu是激活函數(shù),經(jīng)過這兩層,向量svector的維度會得到提升,再經(jīng)由:
20、;
21、s2-2:對于每一個代碼語義圖,輸入的數(shù)據(jù)為,其中是節(jié)點集合,e是邊的集合,是節(jié)點的特征矩陣,是節(jié)點數(shù),是每個節(jié)點的特征維度,對于每一次的傳播,將特征矩陣作為輸入,有:
22、;
23、其中是度矩陣,是圖的鄰接矩陣添加自環(huán),是圖卷積的權(quán)重矩陣,是卷積之后的特征維度;經(jīng)過次的多尺度殘差圖卷積操作之后的最終表示為?,對于,再對其進行全局注意力池化操作,先計算注意力分數(shù):
24、;
25、其中?為節(jié)點經(jīng)過次多尺度殘差圖卷積網(wǎng)絡(luò)的最終表示,是可學(xué)習(xí)的權(quán)重矩陣,是學(xué)習(xí)的注意力向量,得到注意力分數(shù)之后將所有節(jié)點的特征表示按照注意力權(quán)重加權(quán)求和,得到得到異構(gòu)代碼特征表示hglobal。公式如下:
26、;
27、s2-3:之后,將獲取的xreduce與hglobal進行融合得到hconcat,進而采用注意力機制對hconcat進行更新操作,在每一個訓(xùn)練輪次都會對偏置和權(quán)重進行更新,迭代出最符合實際情況的融合參數(shù):
28、;
29、;
30、其中b為模本文檔來自技高網(wǎng)...
【技術(shù)保護點】
1.一種基于專家知識的智能合約細粒度漏洞檢測方法,其特征在于,包括以下步驟:
2.根據(jù)權(quán)利要求1所述的一種基于專家知識的智能合約細粒度漏洞檢測方法,其特征在于,所述步驟S1包括:
3.根據(jù)權(quán)利要求1所述的一種基于專家知識的智能合約細粒度漏洞檢測方法,其特征在于,所述步驟S2包括:
4.根據(jù)權(quán)利要求1所述的一種基于專家知識的智能合約細粒度漏洞檢測方法,其特征在于,所述步驟S3包括:
5.根據(jù)權(quán)利要求1所述的一種基于專家知識的智能合約細粒度漏洞檢測方法,其特征在于,所述步驟S4包括:
【技術(shù)特征摘要】
1.一種基于專家知識的智能合約細粒度漏洞檢測方法,其特征在于,包括以下步驟:
2.根據(jù)權(quán)利要求1所述的一種基于專家知識的智能合約細粒度漏洞檢測方法,其特征在于,所述步驟s1包括:
3.根據(jù)權(quán)利要求1所述的一種基于專家知識的智能合約細粒度漏洞檢...
【專利技術(shù)屬性】
技術(shù)研發(fā)人員:龍靜,陳汝欣,曾家豪,
申請(專利權(quán))人:湖南師范大學(xué),
類型:發(fā)明
國別省市:
還沒有人留言評論。發(fā)表了對其他瀏覽者有用的留言會獲得科技券。