[发明专利]基于抽象语法树的智能合约漏洞检测的方法及应用在审
申请号: | 202210611791.6 | 申请日: | 2022-05-31 |
公开(公告)号: | CN115017514A | 公开(公告)日: | 2022-09-06 |
发明(设计)人: | 刘哲;董伟良 | 申请(专利权)人: | 南京航空航天大学 |
主分类号: | G06F21/57 | 分类号: | G06F21/57;G06F8/41 |
代理公司: | 苏州三英知识产权代理有限公司 32412 | 代理人: | 潘时伟 |
地址: | 211100 江*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 抽象 语法 智能 合约 漏洞 检测 方法 应用 | ||
本发明公开了一种基于抽象语法树的智能合约漏洞检测的方法及应用,该方法包括:对智能合约的源代码进行词法分析和语法分析,以构造出所述源代码的抽象语法树;遍历所述抽象语法树,以补充抽象语法树的节点信息,并从补充后的抽象语法树中提取智能合约的控制流图、读写变量信息;根据所述控制流图获取智能合约的执行路径集,并根据所述读写变量信息获取所述智能合约的数据流分析结果;根据数据流分析结果和所述抽象语法树自定义漏洞检测器,并将漏洞检测器应用到所述执行路径集的每条路径中;遍历所述抽象语法树,以得到漏洞检测器的检测结果,并将检测结果输入到JSON文件中。该方法能够发现智能合约中存在的漏洞,保证智能合约开发过程中的安全性。
技术领域
本发明是关于漏洞检测领域,特别是关于一种基于抽象语法树的智能合约漏洞检测的方法及应用。
背景技术
智能合约是一段以计算机指令方式实现的传统合约的自动化处理程序,旨在以信息化方式传播、验证或执行合约的计算机协议。智能合约设计的总体目标是满足合约条件,最大限度地减少对可信中介的依赖。近年来,以以太网为代表的一批智能合约平台得到迅猛发展,以太网作为最流行的智能合约平台,截止到2020年末地址数量已经超过1亿,总市值超过1000亿美元。除了开启全新的数字化经济商业模式,智能合约已经在数字身份、物联网、供应链等多个领域得到应用,同时也支持广泛的去中心化应用程序,如钱包、预测市场、即时消息、博客、众筹等,且前景广阔。
智能合约和传统的软件程序一样,其代码也可能存在漏洞问题,由于智能合约所关联的巨额数字资产和其不可逆性,其代码中的漏洞容易被攻击,这将造成不同程度的数字资产损失,可能会造成灾难性的后果。
伴随着智能合约技术的发展及其应用领域的增加,越来越多的安全漏洞被攻击者发现并利用,催生了一批关于智能合约生态安全的研究,包括安全漏洞审查、设计模式、验证方法和工具、形式化规范与建模技术和智能合约平台与开发语言等方向。为了防止恶意击者利用智能合约漏洞,研究者们已经尝试使用各种方法对以太网智能合约源代码以及EVM字节码进行面分析。传统的程序漏洞检测方法使用的是特征匹配,即对一些恶意代码进行提取抽象,通匹配模块对静态源代码进行检测。
公开于该背景技术部分的信息仅仅旨在增加对本发明的总体背景的理解,而不应当被视为承认或以任何形式暗示该信息构成已为本领域一般技术人员所公知的现有技术。
发明内容
本发明的目的在于提供一种基于抽象语法树的智能合约漏洞检测的方法及应用,解决在智能合约开发、测试与维护过程中,智能合约中存在代码漏洞的问题。
为实现上述目的,本发明的实施例提供了一种基于抽象语法树的智能合约漏洞检测的方法。
在本发明的一个或多个实施方式中,所述方法包括:对智能合约的源代码进行词法分析和语法分析,以构造出所述源代码的抽象语法树;遍历所述抽象语法树,以补充所述抽象语法树的节点信息,并从补充后的抽象语法树中提取所述智能合约的控制流图、读写变量信息;根据所述控制流图获取所述智能合约的执行路径集,并根据所述读写变量信息获取所述智能合约的数据流分析结果;根据所述数据流分析结果和所述抽象语法树自定义漏洞检测器,并将所述漏洞检测器应用到所述执行路径集的每条路径中;以及遍历所述抽象语法树,以得到所述漏洞检测器的检测结果,并将所述检测结果输入到JSON文件中。
在本发明的一个或多个实施方式中,所述对智能合约的源代码进行词法分析和语法分析,以构造出所述源代码的抽象语法树,包括:将所述源代码转换为字符标记序列,其中,所述字符标记序列包括关键字、标识符、符号和运算符;以及将所述源代码的语法规则应用到所述字符标记序列,以构造抽象语法树。
在本发明的一个或多个实施方式中,遍历所述抽象语法树,以补充所述抽象语法树的节点信息,包括:遍历所述抽象语法树,将所述抽象语法树中父节点的节点信息保存至对应的子节点中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京航空航天大学,未经南京航空航天大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210611791.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种测定水样中阿特拉津的方法
- 下一篇:具有热管的恒温混合伴热系统