[发明专利]一种基于CNN-LSTM多分类模型的智能合约未知漏洞检测方法在审
申请号: | 202211228581.5 | 申请日: | 2022-10-08 |
公开(公告)号: | CN116150757A | 公开(公告)日: | 2023-05-23 |
发明(设计)人: | 彭滔;李旭彬;王国军;李培强;顾婉仪;翟广鑫;黎相彬 | 申请(专利权)人: | 广州大学 |
主分类号: | G06F21/57 | 分类号: | G06F21/57;G06F18/213;G06F18/214;G06F18/24;G06Q20/40;G06N3/049;G06N3/084;G06N3/0464 |
代理公司: | 广州高炬知识产权代理有限公司 44376 | 代理人: | 孙明科 |
地址: | 510006 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 cnn lstm 分类 模型 智能 合约 未知 漏洞 检测 方法 | ||
本发明公开了一种基于CNN‑LSTM多分类模型的智能合约未知漏洞检测方法,包括:S1,在以太坊客户端Geth进行插桩;S2,通过已插桩的以太坊客户端Geth获得正常操作码序列集和漏洞操作码序列集;S3,预训练模型训练embedding词向量,获得词向量索引字典;S4,根据词向量索引字典将重放操作码序列转成特征向量矩阵,利用CNN神经网络降维;S5,利用降维后的特征向量矩阵对LSTM分类模型进行训练;S6,利用已插桩的以太坊客户端Geth实时收集交易产生的待测操作码序列;S7,在检测阶段,针对每个待测操作码序列,对分类模型给出的所有漏洞类别的概率值求和并与阈值比较,完成对未知漏洞的判定。
技术领域
本发明涉及漏洞检测技术领域,具体涉及一种基于CNN-LSTM多分类模型的智能合约未知漏洞检测方法。
背景技术
近些年深度学习的发展速度非常迅猛,因此研究者们开始尝试用深度学习的方法来检测智能合约漏洞。下面将介绍几种结合深度学习实现的智能合约漏洞检测方案。
1)张等人提出了基于n-gram和深度学习的智能合约漏洞检测与分析方法研究,文中的操作码序列是指智能合约编译后生成的字节码按照以太坊官方指令集映射成的指令序列,这些指令同样是汇编操作码。通过对合约源码编译以及字节码解析得到静态操作码数据流,根据以太坊黄皮书中操作码与16进制数的对应关系构建字典,之后不同的方案执行不同的流程。基于n-gram的方案:简化操作码,利用n-gram进行切片并构建特征矩阵,进一步采用不同的机器学习分类算法进行训练。基于深度学习的方案:将操作码数据流转化为用16进制数表示的操作码序列,输入4种不同的深度学习网络结构训练。将两种方案的训练结果进行比较,发现CNN+LSTM的深度学习网络结构的漏洞检测效果最好。
2)He J等人基于深度学习中的图卷积网络(GCN,Graph ConvolutionalNetwork),通过模仿传统符号执行的方法训练了一个符号执行专家。在模型学习阶段,团队在数以万计的智能合约上运行该符号执行专家,进而生成成千上万条高质量操作码序列并输入下一层训练,最终获得更高程序覆盖率的模糊策略。在使用阶段,利用模型学习到的模糊策略生成测试的操作码序列,最终对模糊测试的结果分析得到漏洞检测的结果。该方案中的操作码序列是靠符号执行模拟出来的交易执行过程,不一定具备可行性,因此需要借助模糊测试来检验操作码序列的可行性。
3)Huang H D等人将智能合约编译后的16进制字节码译为RGB色彩编码,从而将每个智能合约转化为固定大小的图像编码,并将其作为CNN(卷积神经网络)深度学习模型的输入进行训练和检测,不过由于该方法将源码直接转化为图像编码,模型中的各层处理可能会导致原本不相关的字节码变得相关,或是破坏上下文之间的逻辑关系,因此该方案必须选取合适的CNN(卷积神经网络)模型结构来降低这种可能性的影响,
上述方案中原始数据一般是静态智能合约源码或编译后的字节码,无法根据链上交易的实时执行情况动态检测漏洞;同时根据原始数据获取的特征向量缺乏操作码自身的语义信息以及序列的上下文关系;而且分类模型只能检测少数已知漏洞,无法检测尚未发现的未知漏洞。据本发明了解,目前鲜有研究针对未知漏洞检测。为此,本发明提出了一种基于CNN-LSTM多分类模型的智能合约未知漏洞检测方法。
发明内容
(一)解决的技术问题
针对现有技术的不足,本发明提供一种基于CNN-LSTM多分类模型的智能合约未知漏洞检测方法,以解决上述的问题。
(二)技术方案
为实现上述所述目的,本发明提供如下技术方案:
一种基于CNN-LSTM多分类模型的智能合约未知漏洞检测方法,包括以下步骤:
S1,在以太坊客户端Geth进行插桩;
S2,对以太坊的区块交易进行重放,通过已插桩的以太坊客户端Geth获得正常操作码序列集和漏洞操作码序列集;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广州大学,未经广州大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202211228581.5/2.html,转载请声明来源钻瓜专利网。