[发明专利]一种基于Fuzz的智能合约漏洞检测方法、装置和存储介质在审
申请号: | 201910723918.1 | 申请日: | 2019-08-06 |
公开(公告)号: | CN110489973A | 公开(公告)日: | 2019-11-22 |
发明(设计)人: | 崔翔;刘井强;谭庆丰;孙彦斌;苏申 | 申请(专利权)人: | 广州大学 |
主分类号: | G06F21/57 | 分类号: | G06F21/57;G06F11/36;G06Q40/04 |
代理公司: | 44202 广州三环专利商标代理有限公司 | 代理人: | 颜希文;麦小婵<国际申请>=<国际公布> |
地址: | 510006 广东省广*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 测试数据 智能 变量类型 测试数据集 抽象语法树 函数变量 漏洞检测 输出变量 输入变量 适配 变量检测 存储介质 代码提供 代码运行 监测输出 检测数据 漏洞 数据集 构建 判定 驱动 监测 | ||
1.一种基于Fuzz的智能合约漏洞检测方法,其特征在于,包括:
根据智能合约代码构建抽象语法树,并通过所述抽象语法树提取函数变量及其变量类型;
根据所述函数变量及其变量类型,生成Fuzz测试数据集;其中,所述Fuzz测试数据集为一包含所有所述变量类型的数据集;
将所述Fuzz测试数据集中的适配Fuzz测试数据逐一作为所述智能合约代码的输入变量,驱动所述智能合约代码运行,并对所述智能合约代码的输出变量进行监测,若所述输出变量出现异常则判定存在漏洞;其中,所述适配Fuzz测试数据为所述Fuzz测试数据集中与所述输入变量的变量类型相同的所有所述Fuzz测试数据。
2.根据权利要求1所述的基于Fuzz的智能合约漏洞检测方法,其特征在于,还包括:
若存在漏洞,则对所述智能合约代码进行漏洞匹配,得到漏洞匹配结果;
根据所述漏洞匹配结果,在所述智能合约代码中抽取关联代码进行漏洞验证,得到漏洞验证结果;
根据所述漏洞匹配结果和所述漏洞验证结果,生成漏洞检测报告。
3.根据权利要求2所述的基于Fuzz的智能合约漏洞检测方法,其特征在于,所述漏洞匹配结果,包括根据所述输入变量和所述输出变量与漏洞模型进行匹配所得的漏洞类型;其中,漏洞模型是根据漏洞类型抽象所得的漏洞模型。
4.根据权利要求3所述的基于Fuzz的智能合约漏洞检测方法,其特征在于,所述漏洞类型包括可重入性和竞争条件攻击、整数溢出、越权访问、拒绝服务、逻辑错误、信息泄露和函数误用其中一种或多种组合。
5.根据权利要求2所述的基于Fuzz的智能合约漏洞检测方法,其特征在于,所述漏洞匹配结果,包括:
在所述智能合约代码中定位与所述漏洞模型匹配的所述关联代码;其中,所述关联代码包含所述输入变量和所述输出变量。
6.根据权利要求2所述的基于Fuzz的智能合约漏洞检测方法,其特征在于,所述根据所述漏洞匹配结果,抽取关联代码进行漏洞验证,得到漏洞验证结果,具体的,
根据所述漏洞匹配结果,在所述智能合约代码中抽取所述关联代码;
将所述Fuzz测试数据集中的适配Fuzz测试数据逐一作为所述关联代码的输入变量,驱动所述关联代码运行,并对所述关联代码的输出变量进行监测;
根据所述输入变量、所述输出变量和漏洞模型,对所述漏洞匹配结果进行漏洞验证,得到漏洞验证结果;其中,漏洞模型是根据漏洞类型抽象所得的漏洞模型。
7.根据权利要求2所述的基于Fuzz的智能合约漏洞检测方法,其特征在于,所述根据所述漏洞匹配结果和所述漏洞验证结果,生成漏洞检测报告,具体的,
根据所述漏洞匹配结果和所述漏洞验证结果,判断是否存在漏洞;
若存在漏洞,则将漏洞文件所在路径、代码片段和漏洞类型存储至数据库,并生成漏洞检测报告;或者,若不存在漏洞,则发送安全提示,将所述漏洞匹配结果和所述漏洞验证结果存储至数据库,并生成漏洞检测报告。
8.一种基于Fuzz的智能合约漏洞检测装置,其特征在于,包括:
代码预处理模块,用于根据智能合约代码构建抽象语法树,并通过所述抽象语法树提取函数变量及其变量类型;
数据生成模块,用于根据所述函数变量及其变量类型,生成Fuzz测试数据集;其中,所述Fuzz测试数据集为一包含所有所述变量类型的数据集;
代码驱动模块,用于将所述Fuzz测试数据集中的适配Fuzz测试数据逐一作为所述智能合约代码的输入变量,驱动所述智能合约代码运行,并对所述智能合约代码的输出变量进行监测,若所述输出变量出现异常则判定存在漏洞;其中,所述适配Fuzz测试数据为所述Fuzz测试数据集中与所述输入变量的变量类型相同的所有所述Fuzz测试数据。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广州大学,未经广州大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910723918.1/1.html,转载请声明来源钻瓜专利网。