[發明專利]一種面向EOSIO智能合約的灰盒模糊測試方法在審
| 申請號: | 202211244456.3 | 申請日: | 2022-10-12 |
| 公開(公告)號: | CN115438351A | 公開(公告)日: | 2022-12-06 |
| 發明(設計)人: | 王猛;李文胤 | 申請(專利權)人: | 河北大學 |
| 主分類號: | G06F21/57 | 分類號: | G06F21/57;G06F11/36 |
| 代理公司: | 石家莊國域專利商標事務所有限公司 13112 | 代理人: | 王娟 |
| 地址: | 071002 *** | 國省代碼: | 河北;13 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 面向 eosio 智能 合約 模糊 測試 方法 | ||
本發明提供了一種面向EOSIO智能合約的灰盒模糊測試方法,包括如下步驟:a、靜態分析得到參數類型;b、根據參數類型生成測試用例;c、模糊執行智能合約;d、漏洞分析。本發明的方法通過路徑反饋技術來指導模糊器生成輸入,這些生成的輸入能夠執行覆蓋那些難以覆蓋的分支來增加覆蓋率使最終結果更加準確,提高了在漏洞檢測時的代碼覆蓋率,同時提高了檢測EOSIO合約漏洞的準確率,在將合約部署到區塊鏈之前檢測合約中是否存在漏洞。通過本發明的方法,能夠高效、準確地完成EOSIO智能合約的漏洞檢測工作,使其具有工業應用可能。
技術領域
本發明涉及智能合約的漏洞檢測和軟件的模糊測試技術領域,具體地說是一種面向 EOSIO智能合約的灰盒模糊測試方法。
背景技術
當前針對EOSIO智能合約的安全驗證技術大多集中于靜態分析和黑盒模糊測試,但是這些技術具有很大的局限性。EOSAFE[1]是由Zhang等人提出的針對EOSIO智能合約的一種基于符號執行的靜態分析框架,它是一種基于字節碼級別的自動檢測漏洞工具,可以檢測四種EOSIO漏洞。靜態分析不運行智能合約,通過對合約的語法分析和語義分析得到結果。這種技術不僅測試效率低下,還會導致最終的檢測結果產生很多的誤報和漏報。Huang等人開發了EOSFuzzer[2]工具,EOSFuzzer是對EOSIO智能合約漏洞檢測的一種黑盒模糊測試,在EOS 測試網執行合約,并提出了三種EOSIO智能合約的漏洞測試預言。雖然相較于靜態分析, EOSFuzzer可以在檢測精度以及效率方面有所改善,但是黑盒測試針對一些難以覆蓋的分支還是沒有辦法。在分支覆蓋方面表現較差。
模糊測試與靜態分析是一種互補的技術,最大的區別就在于模糊測試會真正的運行智能合約,在程序的運行過程中發現漏洞。但是黑盒模糊測試指不對程序內部進行任何分析,隨機生成測試用例對程序進行檢測。當然針對一些簡單的合約,黑盒測試效率很高并能高精度的檢測漏洞。但針對一些較復雜的合約,黑盒測試難以覆蓋那些條件較為嚴格的分支導致最終的檢測結果失準。
發明內容
本發明的目的就是提供一種面向EOSIO智能合約的灰盒模糊測試方法,以解決現有方法中測試效率低下的問題。
本發明是這樣實現的:一種面向EOSIO智能合約的灰盒模糊測試方法,包括如下步驟:
a、靜態分析:輸入被測智能合約的字節碼文件以及對應的ABI文件,通過靜態分析獲取被測智能合約中每個action的參數以及參數類型;
b、根據得到的參數類型生成測試用例:當開始無執行反饋信息時,則生成隨機測試用例;當有執行反饋信息時,根據反饋信息,選擇最優的測試用例,然后進行突變,生成基于突變的測試用例集;
c、模糊執行智能合約:將被測智能合約,攻擊代理合約和插樁完成的EOSIO虛擬機部署到EOSIO測試網,并將測試用例集中所有的測試用例都執行一次被測智能合約,生成反饋信息;
在模糊執行智能合約過程中,如果有測試用例發現漏洞,則記錄下來并報告給用戶;插樁的EOSIO虛擬機收集被測智能合約的執行信息,并記錄到執行日志中;
d、漏洞分析:基于被測智能合約的執行日志,收集被測智能合約的行為,并根據被測智能合約的測試預言判斷是否符合漏洞特征,形成檢測報告。
進一步地,本發明可以按如下技術方案實現:
在所述步驟a中,所述字節碼文件為WASM二進制字節碼文件。
在所述步驟b中,隨機測試用例的生成是通過隨機生成的值聯系到一起構成一個輸入來調用ABI接口,對于原始數字類型,在輸入域生成最大值,最小值和一個隨機值;對于布爾數據類型,隨機返回true或false;對于字符串數據類型,先構建一個字符串池,然后隨機返回一個字符串;對于asset數據類型,返回一個代幣的隨機的值;將隨機生成的值連接在一起,形成一個輸入,調用ABI函數。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于河北大學,未經河北大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202211244456.3/2.html,轉載請聲明來源鉆瓜專利網。





