一种基于多任务学习的智能合约漏洞检测及定位方法
摘要文本
电子科技大学取得“一种透气窗帘布”专利技术,本发明公开一种基于多任务学习的智能合约漏洞检测及定位方法,基于聚类及图嵌入算法挖掘智能合约类别特征进行特征增强,并通过多任务学习模型构建合约级别和函数级别的漏洞分类器,在检测智能合约是否存在漏洞的同时快速定位到问题代码片段。对于智能合约漏洞检测任务,目的是构建一个合约级的漏洞二分类器,判断智能合约整体是否存在漏洞;对于漏洞片段函数定位任务,目的是构建一个函数级的漏洞二分类器,判断输入函数是否为导致合约漏洞的函数。本发明通过聚类和图嵌入算法保证了智能合约功能类别的划分和特征的增强,实现了可重入漏洞及时间戳依赖漏洞的准确识别以及漏洞位置定位。
专利主权项内容
1.一种基于多任务学习的智能合约漏洞检测及定位方法,其特征在于,包括以下步骤:1)关键函数提取步骤根据预定义规则从智能合约中提取出与漏洞有关的函数作为关键函数,并对关键函数是否是漏洞源头进行标签标注;2)基于关键函数提取关键函数特征;3)基于智能合约提取智能合约特征;4)基于合约功能类别的聚类步骤:先对具有相似功能的智能合约进行无监督聚类,形成不同的智能合约集群,每个智能合约集群中智能合约对应的关键函数也各自属于不同的函数集群;在一个智能合约集群中计算出两两智能合约间的相似度值;在获得所有智能合约之间的相似度值之后,通过设置相似度阈值,将大于相似度阈值的两个智能合约视为存在连接关系;然后,以智能合约为节点,以智能合约之间的连接关系为边,将每个智能合约集群转为智能合约子图;再以关键函数为点,以智能合约之间的连接关系为边,将每个函数集群转为关键函数子图;5)多任务共享步骤:再通过图卷积网络提取智能合约子图的特征和关键函数子图的特征,并分别对智能合约子图的特征和关键函数子图的特征进行最大池化处理后得到智能合约子图表征和关键函数子图表征;拼接关键函数特征与关键函数子图表征作为漏洞检测模型的输入,拼接智能合约特征与智能合约子图表征作为漏洞定位模型的输入;6)结果输出步骤:漏洞检测模型为完成训练的基于卷积神经网络CNN的二分类器,输出当前检测的智能合约整体是否存在漏洞的二分类结果;漏洞定位模型为完成训练的基于卷积神经网络CNN的二分类器,输出当前检测的关键函数是否存在漏洞的二分类结果,从而得到源码中导致漏洞的函数所在的代码片段位置。
专利申请信息
| 项目 | 内容 |
|---|---|
| 专利名称 | 一种基于多任务学习的智能合约漏洞检测及定位方法 |
| 专利类型 | 发明申请 |
| 申请号 | CN202311088351.8 |
| 申请日 | 2023/8/28 |
| 公告号 | CN117668850A |
| 公开日 | 2024/3/8 |
| IPC主分类号 | G06F21/57 |
| 权利人 | 电子科技大学 |
| 发明人 | 江池; 张引; 陈宇鹏; 孙国金 |
| 地址 | 四川省成都市高新区(西区)西源大道2006号 |