[發明專利]基于源代碼圖表示學習的智能合約多漏洞檢測方法及系統有效
| 申請號: | 202110643307.3 | 申請日: | 2021-06-09 |
| 公開(公告)號: | CN113360915B | 公開(公告)日: | 2023-09-26 |
| 發明(設計)人: | 蔡杰;李斌;張佳樂;孫小兵;薄莉莉;朱毅;章永龍 | 申請(專利權)人: | 揚州大學 |
| 主分類號: | G06F21/57 | 分類號: | G06F21/57;G06F11/36;G06F8/41;G06N3/0464;G06N3/048;G06N3/08 |
| 代理公司: | 南京蘇高專利商標事務所(普通合伙) 32204 | 代理人: | 孟紅梅 |
| 地址: | 225009 *** | 國省代碼: | 江蘇;32 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 基于 源代碼 圖表 學習 智能 合約 漏洞 檢測 方法 系統 | ||
1.一種基于源代碼圖表示學習的智能合約多漏洞檢測方法,其特征在于,包括以下步驟:
(1)構建智能合約源代碼數據集,并對數據集中樣本是否存在漏洞進行標記;
(2)結合智能合約的抽象語法樹和語義信息構建智能合約函數粒度代碼屬性圖;代碼屬性圖中的每個節點包含代碼語句和節點類型,圖中的邊類型根據語義信息分為AST邊、控制流邊、數據流邊、控制依賴邊和數據依賴邊;包括:
(2.1)利用solidity編譯器編譯智能合約源代碼,生成對應的抽象語法樹,搜索智能合約抽象語法樹中所有節點類型為FunctionDefinition的節點集合Vfunc,提取以這些節點為根節點的子樹,得到函數粒度的抽象語法樹集合;
(2.2)在函數粒度抽象語法樹中尋找節點類型為ModifierInvocation的節點,此節點代表當前函數使用的函數修飾器,根據此節點內容尋找對應的函數修飾器具體實現,并將其添加在當前函數內部;
(2.3)在函數粒度的抽象語法樹基礎上,利用靜態分析方法分析函數的語義信息,包括數據流、控制流、控制流依賴和數據依賴;將這些語義信息與抽象語法樹結合,組成函數粒度代碼屬性圖;圖中各節點仍使用抽象語法樹節點,而圖中邊類型根據其包含的語義信息分為以下幾類:AST邊、控制流邊、數據流邊、控制依賴邊和數據依賴邊;
(2.4)利用深度優先遍歷算法將抽象語法樹展開成序列表示,并在序列表示的基礎上利用word2vec技術將抽象語法樹節點映射到低維向量空間;
(3)根據智能合約漏洞的語法特征,定義智能合約切片準則,利用程序切片技術得到智能合約源代碼中與漏洞相關的切片語句集合,并從代碼屬性圖中提取與切片語句相關的語義信息組成切片代碼屬性圖;包括:
(3.1)根據智能合約漏洞庫SWC和CWE中已知的不同類型漏洞的語法特征定義切片準則;
(3.2)利用靜態切片技術中的圖可達性方法,根據定義的切片準則進行代碼切片;在代碼屬性圖中利用字符串匹配方法,搜索節點內容包含預定義切片準則的節點集合Vsc={vsc},從這些節點出發,沿數據依賴邊和控制依賴邊對代碼屬性圖進行前向和后向遍歷,尋找與節點vsc存在數據依賴或者控制依賴關系的相關節點集合Vs;切片準則節點集合Vsc和切片依賴相關節點集合VS共同組成代碼切片語句節點集合V=Vsc∪Vs;
(3.3)根據步驟(3.2)得到的切片語句集合V,從代碼屬性圖中提取切片代碼屬性圖GS=(V,E,H),其中E是圖中邊的集合,H∈R|V|*d表示所有節點的初始狀態其值為各節點利用word2vec映射的特征向量,d表示節點特征向量的維度;
(3.4)考慮到智能合約存在fallback機制,在步驟(3.3)得到的切片代碼屬性圖的基礎上添加fallback邊;
(4)構建門控圖神經網絡與多層感知機結合的漏洞檢測模型并進行訓練,所述門控圖神經網絡用于對切片代碼屬性圖進行特征提取,多層感知機用于根據提取的特征以及切片代碼屬性圖中各節點的初始狀態特征進行智能合約漏洞預測;
(5)利用步驟(2)和(3)中的方法生成待測試智能合約的切片代碼屬性圖,輸入到訓練好的漏洞檢測模型中預測是否存在漏洞。
2.根據權利要求1所述的基于源代碼圖表示學習的智能合約多漏洞檢測方法,其特征在于,步驟(1)具體過程包括:
(1.1)通過Google?BigQuery數據庫獲得部署在以太坊上的智能合約地址集合,利用合約地址在Etherscan平臺得到對應的智能合約源代碼;
(1.2)通過智能合約漏洞檢測工具檢測收集到的智能合約源碼,并根據檢測結果對樣本進行標記,檢測工具結果顯示存在漏洞的合約標記為1,否則標記為0;之后對標記為漏洞的合約樣本進行人工審計,以確保樣本標記的準確性。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于揚州大學,未經揚州大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202110643307.3/1.html,轉載請聲明來源鉆瓜專利網。





