(19)国家知识产权局
(12)发明 专利
(10)授权公告 号
(45)授权公告日
(21)申请 号 202210971647.3
(22)申请日 2022.08.15
(65)同一申请的已公布的文献号
申请公布号 CN 115033896 A
(43)申请公布日 2022.09.09
(73)专利权人 鹏城实验室
地址 518000 广东省深圳市南 山区兴科一
街2号
(72)发明人 冯禹铭 张伟哲 张恒 张宇
梁李
(74)专利代理 机构 深圳市世纪恒程知识产权代
理事务所 4 4287
专利代理师 单家健
(51)Int.Cl.
G06F 21/57(2013.01)
G06F 40/30(2020.01)
G06K 9/62(2022.01)
G06F 16/35(2019.01)G06F 16/215(2019.01)
(56)对比文件
CN 114297654 A,202 2.04.08
CN 113486357 A,2021.10.08
CN 113961933 A,2022.01.21
CN 110609897 A,2019.12.24
CN 113904844 A,2022.01.07
CN 114841318 A,202 2.08.02
CN 113449303 A,2021.09.28
WO 2022078632 A1,202 2.04.21
US 20213 34543 A1,2021.10.28
沈晨凯.基 于深度学习的智能合约漏洞检测
方法研究. 《中国优秀硕士学位 论文全文数据库
信息科技 辑(月刊)》 .2021,(第12期),
张潆藜 等.以太坊So lidity智能合约漏洞
检测方法综述. 《计算机科 学》 .2022,第49卷(第3
期),
审查员 简文雨
(54)发明名称
以太坊智能合约漏洞检测方法、 装置、 系统
与介质
(57)摘要
本发明涉及信息安全技术领域, 公开了一种
以太坊智能合约漏洞检测方法、 装置、 系统与介
质。 本发明通过采集智 能合约代码数据, 并对智
能合约代码数据进行清洗和标记标签, 生成对应
的智能合约源代码; 对智能合约源代码进行分割
和词向量嵌入, 生成顺序代码序列, 并根据预设
知识蒸馏模 型对顺序代码序列进行特征提取, 获
得对应的全局语义特征; 从智能合约源代码中提
取对应的抽象语 法树节点序列, 并根据预设多头
注意力机制进行特征提取, 获得对应的局部语义
特征; 根据全局语义特征和局部语义特征, 通过
文本分类模 型进行多分类漏洞检测, 并输出漏洞
检测结果; 从而提高以太坊智能合约漏洞检测精
确度以及漏洞检测效率。
权利要求书3页 说明书17页 附图5页
CN 115033896 B
2022.11.08
CN 115033896 B
1.一种以太坊智能合约漏洞检测方法, 其特征在于, 所述以太坊智能合约漏洞检测方
法包括如下步骤:
采集智能合约代码数据, 并对所述智能合约代码数据进行清洗和标记标签, 生成对应
的智能合约源代码;
对所述智能合约源代码进行分割和词向量嵌入, 生成顺序代码序列, 并基于预设知识
蒸馏模型对所述 顺序代码序列进行 特征提取, 获得对应的全局语义特 征;
从所述智能合约源代码中提取对应的抽象语法树节点序列, 并基于预设多头注意力 机
制进行特征提取, 获得对应的局部语义特 征;
基于所述全局语义特征和所述局部语义特征, 通过文本分类模型进行多分类漏洞检
测, 并输出漏洞检测结果。
2.如权利要求1所述的以太坊智能合约漏洞检测方法, 其特征在于, 所述对所述智能合
约代码数据进行清洗和标记标签, 生成对应的智能合约源代码的步骤 包括:
根据预设编译顺序, 通过不同版本编译器对所述智能合约代码数据进行编译, 同时删
除编译失败的智能合约代码数据, 得到可编译智能合约文件;
通过逐行对比所述可编译智能合约文件中的源代码, 并删除所述可编译智能合约文件
中相似度高于预设阈值的源代码, 得到清洗后的源代码;
通过漏洞检测工具对所述清洗后的源代码进行漏洞检测分析, 并根据检测分析后的漏
洞类型对 所述清洗后的源代码进 行标记标签, 生成携带有标签的智能合约源代码, 其中, 所
述漏洞类型包括重入漏洞、 整 数溢出漏洞、 时间戳依赖漏洞、 异常处理不当、 交易序列 依赖、
区块信息依赖以及无漏洞。
3.如权利要求1所述的以太坊智能合约漏洞检测方法, 其特征在于, 所述对所述智能合
约源代码进行分割和词向量嵌入, 生成顺序代码序列, 并基于预设知识蒸馏模型对所述顺
序代码序列进行 特征提取, 获得对应的全局语义特 征的步骤 包括:
对所述智能合约源代码进行清洗和格式化处 理, 生成标准智能合约源代码;
根据漏洞定位 点对所述标准智能合约源代码进行划分, 获得漏洞片段;
根据预设分割符对所述漏洞片段进行分割, 并将分割结果按照预设顺序进行拼接, 获
得对应的to ken序列;
对所述token序列进行词向量嵌入, 将所述token序列转换为固定维度的第一嵌入向
量, 并根据所述token序列的token顺序对所述第一嵌入向量进行排序, 生成对应的顺序代
码序列;
根据预设知识蒸馏模型对所述顺序代码序列进行词向量提取和全连接加权处理, 获得
对应的全局语义特 征。
4.如权利要求3所述的以太坊智能合约漏洞检测方法, 其特征在于, 所述根据 预设知识
蒸馏模型对所述顺序 代码序列进 行词向量提取和全连接加权处理, 获得对应的全局语义特
征的步骤之前, 还 包括:
根据预训练模型, 对预先建立的知识库进行训练得到语义知识, 并通过知识蒸馏方式
对所述语义知识进行蒸馏, 提取 得到预设知识蒸馏模型。
5.如权利要求1所述的以太坊智能合约漏洞检测方法, 其特征在于, 所述从所述智能合
约源代码中提取对应的抽象语法树节点序列, 并基于预设多头注意力机制进行特征提取,权 利 要 求 书 1/3 页
2
CN 115033896 B
2获得对应的局部语义特 征的步骤 包括:
查找所述智能合约源代码中的漏洞 定位点, 并根据 所述智能合约源代码提取出漏洞 定
位点所在的函数, 以及将所述 函数转化为抽象语法树子数, 构建对应的抽象语法树;
根据预设遍历顺序对所述抽象语法树进行递归遍历, 生成所述抽象语法树的节点序
列;
对所述节点序列进行词向量嵌入, 将所述节点序列转换为固定维度的第二嵌入向量,
并根据遍历过程中的节点顺序对所述第二嵌入向量进 行拼接, 生成对应的抽象语法树节点
序列;
根据预设多头注意力 机制对所述抽象语法树节点序列进行特征提取, 获得对应的局部
语义特征。
6.如权利要求5所述的以太坊智能合约漏洞检测方法, 其特征在于, 所述根据 预设多头
注意力机制对所述抽象语法树节点序列进 行特征提取, 获得对应的局部语义特征的步骤包
括:
根据节点顺序对所述抽象语法树节点序列进行位置编码, 生成对应的带有位置信 息的
嵌入向量;
根据预设多头注意力 机制对所述带有位置信 息的嵌入向量进行特征提取, 获得对应的
局部语义特 征。
7.如权利要求1所述的以太坊智能合约漏洞检测方法, 其特征在于, 所述基于所述全局
语义特征和所述局部语义特征, 通过文本分类模型进行漏洞检测, 并输出漏洞检测结果的
步骤包括:
对所述全局语义特征和所述局部语义特征进行维度融合统一和线性变换处理, 获得对
应的组合特 征;
通过所述文本分类模型对所述组合特征进行卷积和池化处理, 获得对应的新特征, 并
将所述新特征输入至分类 器进行多标签分类 检测, 输出漏洞检测结果。
8.一种以太坊智能合约漏洞检测装置, 其特征在于, 所述以太坊智能合约漏洞检测装
置包括:
采集模块, 用于采集智能合约代码数据, 并对所述智能合约代码数据进行清洗和标记
标签, 生成对应的智能合约源代码;
处理模块, 用于对所述智能合约源代码进行分割和词向量嵌入, 生成顺序代码序列, 并
基于预设知识蒸馏模型对所述 顺序代码序列进行 特征提取, 获得对应的全局语义特 征;
提取模块, 用于从所述智能合约源代码中提取对应的抽象语法树节点序列, 并基于预
设多头注意力机制进行 特征提取, 获得对应的局部语义特 征;
检测模块, 用于基于所述全局语义特征和所述局部语义特征, 通过文本分类模型进行
多分类漏洞检测, 并输出漏洞检测结果。
9.一种以太坊智能合约漏洞检测系统, 其特征在于, 所述以太坊智能合约漏洞检测系
统包括: 存储器、 处理器及存储在所述存储器上并可在所述处理器上运行 的以太坊智能合
约漏洞检测程序, 所述以太坊智能合约漏洞检测程序被所述处理器执行时实现如权利要求
1至7中任一项所述的以太坊智能合约漏洞检测方法的步骤。
10.一种计算机可读存储介质, 其特征在于, 所述计算机可读存储介质上存储有以太坊权 利 要 求 书 2/3 页
3
CN 115033896 B
3
专利 以太坊智能合约漏洞检测方法、装置、系统与介质
文档预览
中文文档
26 页
50 下载
1000 浏览
0 评论
0 收藏
3.0分
温馨提示:本文档共26页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
本文档由 SC 于 2024-03-03 12:14:11上传分享