[发明专利]一种基于代码片段的深度学习智能合约漏洞检测方法在审
申请号: | 202210097231.3 | 申请日: | 2022-01-27 |
公开(公告)号: | CN114490388A | 公开(公告)日: | 2022-05-13 |
发明(设计)人: | 谢统义;袁野;蔡宏果;元昌安 | 申请(专利权)人: | 广西教育学院 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06F8/75;G06N3/08 |
代理公司: | 南宁东智知识产权代理事务所(特殊普通合伙) 45117 | 代理人: | 黎华艳 |
地址: | 530015 广*** | 国省代码: | 广西;45 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 代码 片段 深度 学习 智能 合约 漏洞 检测 方法 | ||
1.一种基于代码片段的深度学习智能合约漏洞检测方法,其特征在于,包括以下步骤:
步骤S1,提取智能合约源代码进行词法分析,并提取若干特定的代码片段,将每一个代码片段进行标准化;
步骤S2,将步骤S1得到的代码片段通过深度学习的方法转换成向量表示,并对转换后的向量进行填充截断,利用注意力机制进行编码,输出代码片段的中间表示向量;
步骤S3,将步骤S2得到的代码片段的中间表示向量作为全连接层的输入进行降维;
步骤S4,构建所述深度学习模型的训练数据集,并采用交叉熵损失函数对深度学习模型进行训练;
步骤S5,利用训练好的深度学习模型对输入的智能合约进行漏洞检测,输出Solidity程序设计语言编写的智能合约源代码漏洞检测结果。
2.根据权利要求1所述的一种基于代码片段的深度学习智能合约漏洞检测方法,其特征在于,所述步骤S1中具体包括以下步骤:
步骤S11,对智能合约源代码进行词法分析,得到源代码中每个单词的属性,得到了源代码的Token序列流;
步骤S12:对Token序列流进行预处理,删除与漏洞检测无关的的代码;
步骤S13,根据智能合约源代码的Token流的属性提取可能包含漏洞的函数代码段,一个智能合约源代码得到若干个代码片段;
步骤S14,对所有的代码片段分别进行标准化,标准化的过程为:替换用户编写的无意义的变量和函数标识符为统一命名的单词加上编号。
3.根据权利要求2所述的一种基于代码片段的深度学习智能合约漏洞检测方法,其特征在于,所述步骤S11中单词的属性包括关键字keyword、系统APIAPI、变量标识符和函数标识符identifier、运算符号operator。
4.根据权利要求2所述的一种基于代码片段的深度学习智能合约漏洞检测方法,其特征在于,所述步骤S12中的与漏洞检测无关的代码包括源代码中的注释、换行符、空格以及源代码中的Library和Event。
5.根据权利要求2所述的一种基于代码片段的深度学习智能合约漏洞检测方法,其特征在于,所述步骤S13中所述可能包含漏洞的函数代码段包括对变量的错误操作的代码段、API函数调用的不恰当使用的代码段,具体为:将每一个全局变量和使用它的函数段组合成一个代码片段,将可能发生漏洞的系统API涉及的函数段组合成一个代码片段,由此得到若干个代码片段。
6.根据权利要求1所述的一种基于代码片段的深度学习智能合约漏洞检测方法,其特征在于,所述步骤S2具体包括以下步骤:
步骤S21,利用开源的Word2Vec方法将代码片段中的单词转换为一组词向量,{v1,v2,v3,…,vn},将每个代码片段的词向量进行组合后,得到整个智能合约源代码的二维向量V=[V1 V2 V3 … Vn],其中向量Vn={v1,v2,v3,…,vn};对该二维向量V进行填充截断;填充截断位长介于最长二维向量长度和最短二维向量长度之间;
步骤S22,将二维向量V作为输入,利用Transformer模型的编码器结构对二维向量V进行训练,得到包含上下文关系的二维向量。
7.根据权利要求6所述的一种基于代码片段的深度学习智能合约漏洞检测方法,其特征在于,所述步骤S21中填充截断规则为:对于长度大于填充截断位长的二维向量进行截断,对于长度小于填充截断位长的二维向量进行末位补零,使其长度等于位长。
8.根据权利要求6所述的一种基于代码片段的深度学习智能合约漏洞检测方法,其特征在于,所述步骤S3具体为:将步骤S2得到的包含上下文关系的二维向量进行展开连接,得到一维向量;该一维向量通过全连接层可以降维到2,用来表示有漏洞和无漏洞的概率。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广西教育学院,未经广西教育学院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210097231.3/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种改善多晶栅覆盖层上附着缺陷的外延方法
- 下一篇:一种GGNMOS结构