[發明專利]一種智能合約代碼的自動化審計系統及方法在審
| 申請號: | 201910612922.0 | 申請日: | 2019-07-09 |
| 公開(公告)號: | CN110309660A | 公開(公告)日: | 2019-10-08 |
| 發明(設計)人: | 劉陽;肖崇偉;李志奇;湯進濤 | 申請(專利權)人: | 佛山市伏宸區塊鏈科技有限公司 |
| 主分類號: | G06F21/57 | 分類號: | G06F21/57;G06F8/41 |
| 代理公司: | 暫無信息 | 代理人: | 暫無信息 |
| 地址: | 528000 廣東省佛山市南海區桂城*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 智能 抽象語法樹 安全隱患 分析模塊 分析引擎 審計系統 自動化 服務器 安全審計 數據分發 元數據 遍歷 源碼 編譯 分析 返回 | ||
1.一種多智能合約代碼的自動化審計系統,包括:
智能合約分析引擎服務器,用于獲取待分析的智能合約代碼,將智能合約源碼編譯成抽象語法樹,并所述抽象語法樹的數據分發到各智能合約分析模塊;
多個智能合約分析模塊,用于遍歷并分析所述抽象語法樹的元數據,根據分析結果判斷是否存在安全隱患的代碼,以于判斷存在安全隱患代碼后,將存在安全隱患的代碼詳情返回至所述智能合約分析引擎服務器。
2.如權利要求1所述的一種多智能合約代碼的自動化審計系統,其特征在于,所述智能合約分析引擎服務器進一步包括:
智能合約代碼獲取單元,用于獲取網頁前端提交的所述待分析智能合約代碼;
合約編譯器,用于將所述待分析智能合約源碼編譯成抽象語法樹;
分發單元,用于將生成的抽象語法樹的元數據分發到各智能合約分析模塊,并于接收到所述智能合約分析模塊的安全隱患代碼詳情報告時,將其返回至網頁前端。
3.如權利要求2所述的一種多智能合約代碼的自動化審計系統,其特征在于:所述合約編譯器獲取到所述待分析智能合約代碼后,將其編譯得到源碼和字節碼,然后對待分析智能合約源碼進行詞法分析和語法分析,生成所述抽象語法樹。
4.如權利要求3所述的一種多智能合約代碼的自動化審計系統,其特征在于:所述合約編譯器包括詞法分析器以及語法分析器,所述詞法分析器用于接收智能合約源碼,并依賴于智能合約語言文法規則庫中存儲的不同編程語言的文法規則,對輸入的字符串進行掃描與分解,識別合法的詞素,產生特定規則的詞法單元序列并將詞法單元序列輸出至語法分析器;所述語法分析器用于接收詞法分析器輸出的詞法單元序列以及用于存儲簡單優先表,并將詞法單元序列與簡單優先表進行比較判斷,得出詞法單元序列所屬的編程語言種類,并結合智能合約語言文法規則庫中對應的文法規則,將詞法單元序列中的詞素生成抽象語法樹。
5.如權利要求3所述的一種多智能合約代碼的自動化審計系統,其特征在于,各智能合約分析模塊進一步包括:
遍歷分析單元,用于遍歷所述抽象語法樹的元數據,并逐個分析每個元數據,以判斷該元數據是否存在安全隱患;
上下文判斷單元,用于于所述遍歷分析單元判斷出某個元數據存在安全隱患時,通過預設規則判斷是否需要結合上下文進行分析,如需要則對其對應的代碼的上下文進行綜合判斷;
安全隱患詳情生成單元,用于于所述上下文判斷單元的判斷結果為存在安全隱患時,獲取存在安全隱患的代碼行數、代碼詳情、安全隱患詳情、安全隱患等級等詳情數據,并將其打包成報告,返回至所述智能合約分析引擎服務器的分發單元。
6.如權利要求5所述的一種多智能合約代碼的自動化審計系統,其特征在于,所述上下文判斷單元首先從存在安全隱患的元數據節點進行自底向上分析,根據缺陷規則庫以及存在安全隱患的子樹數據進行綜合判斷,若在向上的分析過程中遇到匹配的子樹則進行標記;然后根據規則設定,是否需要結合下文進行判斷,如需要則重新開始從有安全隱患的子樹從上到下進行遍歷,同樣使用缺陷缺陷規則庫以及存在安全隱患的子樹數據進行綜合判斷,若在向下的分析過程中遇到匹配的子樹則進行標記;最后根據規則判斷標記是否滿足要求,如滿足則判斷確實存在安全問題。
7.如權利要求5所述的一種多智能合約代碼的自動化審計系統,其特征在于:所述分發單元在各個智能合約分析模塊分析完成后,將所述待分析智能合約代碼存在的所有安全隱患打包成數組,返回到前端。
8.一種智能合約代碼的自動化審計方法,包括:
步驟S1,利用智能合約分析引擎服務器獲取待分析的智能合約代碼,將智能合約源碼編譯成抽象語法樹,并所述抽象語法樹的數據分發到各智能合約分析模塊;
步驟S2,利用各智能合約分析模塊遍歷所述抽象語法樹的元數據,判斷是否存在安全隱患的代碼,以于判斷存在安全隱患代碼后,將存在安全隱患的代碼詳情返回至智能合約分析引擎服務器;
步驟S3,于各智能合約分析模塊分析完成后,將所述待分析智能合約代碼存在的所有安全隱患打包成數組,返回到前端。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于佛山市伏宸區塊鏈科技有限公司,未經佛山市伏宸區塊鏈科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201910612922.0/1.html,轉載請聲明來源鉆瓜專利網。





