"/>
  • 
    <ul id="o6k0g"></ul>
    <ul id="o6k0g"></ul>

    基于制造技術

    技術編號:39751200 閱讀:23 留言:0更新日期:2023-12-17 23:49
    本發明專利技術公開了一種基于

    【技術實現步驟摘要】
    基于Tree
    ?
    LSTM和BiLSTM的智能合約漏洞檢測方法及系統


    [0001]本專利技術屬于智能合約安全領域,涉及深度學習技術,具體涉及一種基于
    Tree
    ?
    LSTM

    BiLSTM
    的智能合約漏洞檢測方法及系統


    技術介紹

    [0002]區塊鏈是一種融合多種現有技術的新型分布式計算和存儲范式,具有透明性

    不可篡改

    可溯源

    去中心等特點

    智能合約指的是一段可以在區塊鏈平臺上自動運行的代碼,用于描述并且自動執行一份合約

    智能合約能夠在不需要第三方監督的情況下被強制地執行,使人們能夠在不可信的環境中進行安全可靠的交易

    以太坊是當前影響力最大的開源區塊鏈平臺
    ,
    也是目前為止智能合約數量最多

    漏洞類型最多

    漏洞造成損失最大的區塊鏈平臺

    目前以太坊上書寫智能合約的主要編程語言是
    Solidity

    Solidity
    是一個面向合約開發的高級語言,借鑒了
    JavaScript

    python
    ,非常適合用來開發運行在以太坊上的公開的去中心化應用程序
    (decentralized application

    DAPP)
    ,如投票,眾籌,拍賣,多重簽名錢包等,以太坊
    DAPP
    占以太坊總創造價值的
    82

    ,
    其中
    80
    %屬于博彩

    游戲等高風險類別

    [0003]由于智能合約自帶的金融屬性能夠給攻擊者帶來巨大的利益,針對其漏洞的攻擊近年來層出不窮

    相比于傳統的應用程序,智能合約作為運行在區塊鏈上的去中心化應用程序,其生命周期及開發語言本身的特性帶來了一些特有的安全漏洞

    此外,區塊鏈的透明性使得普通用戶獲取區塊鏈上運行的智能合約字節碼更加容易,也給黑客帶來了可乘之機,并且用戶之間的交易并沒有第三方的保障,黑客可能在任意時間對合約發起攻擊

    區塊鏈的不可篡改性也使得智能合約無法像普通程序一樣通過打補丁等措施來修復漏洞

    這就使智能合約的漏洞檢測工作顯得格外重要

    [0004]由于智能合約的復雜性和漏洞的普遍存在使得僅僅依靠人工手段去檢測智能合約漏洞,在付出巨大人力成本的同時也無法保障智能合約的安全

    智能合約漏洞檢測研究旨在自動化的檢測智能合約中存在的的漏洞,保障智能合約的安全

    [0005]目前智能合約漏洞檢測的方法可以分為傳統方法和基于深度學習的方法

    傳統方法主要是靜態分析

    動態分析

    模糊測試和形式化驗證等方法

    靜態分析是在不執行程序的情況下分析代碼的方法

    動態分析是在運行程序時分析代碼的方法

    靜態分析過于依賴專家制定的規則容易產生誤報和漏報,動態分析性能開銷大且難以重現

    模糊測試通過隨機或半隨機地生成輸入數據來測試程序以發現漏洞,生成的數據難于覆蓋所有代碼路徑并且需要大量的計算資源

    形式化驗證基于數學邏輯推理來檢測漏洞,需要專業的數學知識,并且不支持復雜的語言特性,難以廣泛應用

    [0006]與傳統的智能合約漏洞檢測方法相比,基于深度學習的智能合約漏洞檢測擁有更高的準確率和完備性

    但現有的機器學習方法大都直接將自然語言處理技術用與智能合約漏洞檢測

    而程序語言相較于自然語言的區別在于程序語言具有嚴格的語法規則和明顯的結構特征,將程序語言作為自然語言文本處理是不合理的

    抽象語法樹是源代碼的抽象語
    法結構的樹狀表示,每個節點表示源代碼中的一個語法結構,適合表示程序的語法特征和結構特征

    現有的使用抽象語法樹的智能合約漏洞檢測方法大都使用遍歷的方法將抽象語法樹表示為
    token
    序列,破壞了原有的結構,無法完整的提取程序的語法特征


    技術實現思路

    [0007]專利技術目的:為了克服現有技術中存在的不足,提供一種基于
    Tree
    ?
    LSTM

    BiLSTM
    的智能合約漏洞檢測方法及系統,通過使用
    Tree
    ?
    LSTM
    模型提取
    AST
    中的語法特征,使用
    BiLSTM+Attention
    模型提取源代碼文本中的語義特征,并進行特征融合,再使用分類器網絡進行漏洞檢測,實現自動化的檢測智能合約源代碼中的漏洞,達到保障智能合約安全的目的

    [0008]技術方案:為實現上述目的,本專利技術提供一種基于
    Tree
    ?
    LSTM

    BiLSTM
    的智能合約漏洞檢測方法,包括如下步驟:
    [0009]S1
    :收集數據形成智能合約數據集,且進行數據處理;
    [0010]S2
    :使用語法解析器對步驟
    S1
    數據處理后的智能合約源代碼進行解析得到
    AST
    ,并對
    AST
    進行處理;
    [0011]S3
    :對步驟
    S1
    數據處理后的智能合約源代碼文本進行程序切片規范化以及文本分詞處理,訓練并保存詞嵌入模型
    word2vec

    [0012]S4
    :使用構建好的
    Tree
    ?
    LSTM
    模型對步驟
    S2
    中處理好的
    AST
    進行特征提取,得到語法特征向量;
    [0013]使用構建好的
    BiLSTM+Attention
    模型對步驟
    S3
    中處理好的程序切片文本進行特征提取,得到語義特征向量;
    [0014]S5
    :將語法特征向量和語義特征向量進行融合,利用分類器網絡根據融合后的特征向量進行智能合約源代碼的漏洞檢測

    [0015]進一步地,所述步驟
    S1
    具體包括如下步驟:
    [0016]A1
    :使用網絡爬蟲從
    Github

    Estherscan
    收集智能合約源代碼;
    [0017]A2
    :使用
    Slither
    等工具對合約源代碼進行標記,并進行人工檢查;
    [0018]A3
    :清除源代碼中的注釋和非
    ASCII
    碼字符;
    [00本文檔來自技高網
    ...

    【技術保護點】

    【技術特征摘要】
    1.
    一種基于
    Tree
    ?
    LSTM

    BiLSTM
    的智能合約漏洞檢測方法,其特征在于,包括如下步驟:
    S1
    :收集數據形成智能合約數據集,且進行數據處理;
    S2
    :使用語法解析器對步驟
    S1
    數據處理后的智能合約源代碼進行解析得到
    AST
    ,并對
    AST
    進行處理;
    S3
    :對步驟
    S1
    數據處理后的智能合約源代碼文本進行程序切片規范化以及文本分詞處理,訓練并保存詞嵌入模型
    word2vec

    S4
    :使用構建好的
    Tree
    ?
    LSTM
    模型對步驟
    S2
    中處理好的
    AST
    進行特征提取,得到語法特征向量;使用構建好的
    BiLSTM+Attention
    模型對步驟
    S3
    中處理好的程序切片文本進行特征提取,得到語義特征向量;
    S5
    :將語法特征向量和語義特征向量進行融合,利用分類器網絡根據融合后的特征向量進行智能合約源代碼的漏洞檢測
    。2.
    根據權利要求1所述的一種基于
    Tree
    ?
    LSTM

    BiLSTM
    的智能合約漏洞檢測方法,其特征在于,所述步驟
    S1
    具體包括如下步驟:
    A1
    :使用網絡爬蟲從
    Github

    Estherscan
    收集智能合約源代碼;
    A2
    :對合約源代碼進行標記,并進行人工檢查;
    A3
    :清除源代碼中的注釋和非
    ASCII
    碼字符;
    A4
    :根據漏洞的特征找到程序中的關鍵語句和包含關鍵語句的關鍵方法,再找到所有直接調用或嵌套調用關鍵方法的方法與關鍵方法組成一個方法集合,找到方法集合中所有方法依賴和間接依賴的變量,作為變量集合;
    A5
    :根據步驟
    A4
    中獲得的方法集和變量集合對智能合約源代碼進行提取;
    A6
    :使用
    python
    自帶的
    difflib
    庫對步驟
    A5
    中獲得的程序切片文本進行文本相似度檢查,舍棄相似度過高的程序切片
    。3.
    根據權利要求2所述的一種基于
    Tree
    ?
    LSTM

    BiLSTM
    的智能合約漏洞檢測方法,其特征在于,所述步驟
    S2
    具體包括如下步驟:
    B1
    :使用
    ANTLR
    語法解析器對步驟
    A6
    得到的程序切片進行解析得到抽象語法樹的解析類;
    B2
    :深度遍歷抽象語法樹的每一個節點,為每一個節點編號,僅使用節點的類型來表示節點,并且將抽象語法樹以鄰接表的形式存儲;
    B3
    :根據統計鄰接表中的詞的出現次數,創建詞典,詞典中存儲的是詞和詞對應的索引;
    B4
    :從葉子節點開始迭代計算每個節點的計算順序,使用一個數組存儲計算順序,遍歷鄰接表設所有葉子節點為已計算節點,并設計算順序為0,再次遍歷鄰接表將所有子節點都為已計算節點的節點設為已計算節點,并設計算順序為1,循環迭代直到鄰接表中所有的節點都計算完成,最后將數組與鄰接表一同存儲
    。4.
    根據權利要求1所述的一種基于
    Tree
    ?
    LSTM

    BiLSTM
    的智能合約漏洞檢測方法,其特征在于,所述步驟
    S3
    具體包括如下步驟:
    C1
    :合約規范化,將程序切片中的函數名稱替換為
    FUN{#}
    ,其中
    #
    表示數字,將程序切片
    中的變量名稱替換為
    VAR{#}
    ,其中
    #
    表示數字;
    C2
    :對程序切片進行分詞;
    C3
    :將程序...

    【專利技術屬性】
    技術研發人員:張鵬程唐凌軍李雯睿吉順慧楚涵婷王蕭
    申請(專利權)人:南京曉莊學院
    類型:發明
    國別省市:

    網友詢問留言 已有0條評論
    • 還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。

    1
    主站蜘蛛池模板: 日韩aⅴ人妻无码一区二区| 无码AV中文一区二区三区| 国产亚洲精品无码拍拍拍色欲| 亚洲av日韩aⅴ无码色老头| 国产成人无码区免费A∨视频网站| 欧日韩国产无码专区| 人妻无码αv中文字幕久久琪琪布 人妻无码第一区二区三区 | 少妇无码一区二区三区免费| 久久久久亚洲av无码专区| 亚洲国产日产无码精品| 亚洲av日韩av永久无码电影| 国产成人无码18禁午夜福利p | 国产精品亚洲а∨无码播放不卡| 无码AⅤ精品一区二区三区| 无码国产精品一区二区免费16 | 日产无码1区2区在线观看| 无码区国产区在线播放| 无码综合天天久久综合网| 日韩av无码久久精品免费| 人妻无码一区二区三区| 精品久久久久久无码不卡| 国产Av激情久久无码天堂| 免费无码一区二区三区蜜桃大| 少妇人妻无码精品视频| 中文字幕无码久久人妻| h无码动漫在线观看| 国产精品午夜无码AV天美传媒| 人妻无码αv中文字幕久久琪琪布| 久久人妻少妇嫩草AV无码蜜桃| 亚洲Av永久无码精品一区二区| 亚洲午夜福利AV一区二区无码| 国产亚洲精久久久久久无码AV| 人妻无码久久精品| 精品少妇人妻av无码专区| 亚洲欧洲无码一区二区三区| 亚洲色无码专区一区| 亚洲人成人伊人成综合网无码| 97性无码区免费| 亚洲AV无码一区二区三区性色| 无码丰满熟妇juliaann与黑人 | 亚洲AV无码乱码在线观看代蜜桃|