[发明专利]基于源代码图表示学习的智能合约多漏洞检测方法及系统有效
申请号: | 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)构建智能合约源代码数据集,并对数据集中样本是否存在漏洞进行标记;
(2)结合智能合约的抽象语法树和语义信息构建智能合约函数粒度代码属性图;代码属性图中的每个节点包含代码语句和节点类型,图中的边类型根据语义信息分为AST边、控制流边、数据流边、控制依赖边和数据依赖边;
(3)根据智能合约漏洞的语法特征,定义智能合约切片准则,利用程序切片技术得到智能合约源代码中与漏洞相关的切片语句集合,并从代码属性图中提取与切片语句相关的语义信息组成切片代码属性图;
(4)构建门控图神经网络与多层感知机结合的漏洞检测模型并进行训练,所述门控图神经网络用于对切片代码属性图进行特征提取,多层感知机用于根据提取的特征以及切片代码属性图中各节点的初始状态特征进行智能合约漏洞预测;
(5)利用步骤(2)和(3)中的方法生成待测试智能合约的切片代码属性图,输入到训练好的漏洞检测模型中预测是否存在漏洞。
进一步地,步骤(1)具体过程包括:
(1.1)通过Google BigQuery数据库获得部署在以太坊上的智能合约地址集合,利用合约地址在Etherscan平台得到对应的智能合约源代码;
(1.2)通过智能合约漏洞检测工具检测收集到的智能合约源码,并根据检测结果对样本进行标记,检测工具结果显示存在漏洞的合约标记为1,否则标记为0;之后对标记为漏洞的合约样本进行人工审计,以确保样本标记的准确性。
进一步地,步骤(2)具体过程包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于扬州大学,未经扬州大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110643307.3/2.html,转载请声明来源钻瓜专利网。