1.一种智能合约漏洞检测方法,其特征在于,包括:
获取待检测智能合约代码并进行规范化及图形化处理以得到待检测智能合约代码token串向量集;
获取已知的智能合约典型漏洞并进行特征提取以将提取到的漏洞特征构建模型训练数据集,将提取到的漏洞特征进行规范化及图形化转化以得到智能合约典型漏洞特征token串向量集,所述已知的智能合约典型漏洞包括重入漏洞、时间戳依赖以及无限循环漏洞;
将所述智能合约典型漏洞特征token串向量集与所述待检测智能合约代码token串向量集融合并计算提取特征信息再汇入词嵌入矩阵,以在待检测智能合约代码token串对特征信息进行挑选后圈定潜在漏洞区域,将圈定得到的潜在漏洞区域转化为子图以构建潜在漏洞区域图,将构建得到的潜在漏洞区域图输入至图神经网络模型中进行模型训练以得到图神经网络漏洞检测模型;
获取目标智能合约代码并进行规范化及图形化处理以得到目标潜在漏洞区域图,将所述目标潜在漏洞区域图输入至所述图神经网络漏洞检测模型中进行检测以根据检测结果判断所述目标智能合约代码是否存在漏洞。
2.根据权利要求1所述的智能合约漏洞检测方法,其特征在于,获取待检测智能合约代码并进行规范化及图形化处理以得到待检测智能合约代码token串向量集的步骤包括:获取待检测智能合约代码并将其转换为结构化数据以建立代码的抽象模型,根据建立代码的抽象模型捕获代码上下文、程序依赖信息、控制流及数据流,并导出语法和语义;
获取待检测智能合约代码并将其转换为抽象语法树;
将所述抽象语法树和代码上下文、程序依赖信息、控制流及数据流进行汇总以组成语法语义信息,将所述语法语义信息转换为代码属性图;
根据所述代码属性图将所述待检测智能合约代码中的每个语句行进行向量化表示进行汇总以得到待检测智能合约代码token串向量集。
3.根据权利要求1所述的智能合约漏洞检测方法,其特征在于,将提取到的漏洞特征进行规范化及图形化转化以得到智能合约典型漏洞特征token串向量集的步骤包括:将提取到的漏洞特征进行规范化以将提取到的漏洞特征转化为相应的漏洞token串;
根据向量转化工具将每一漏洞token串进行向量表示以将提取到的所有漏洞特征转化为智能合约典型漏洞特征token串向量集。
4.根据权利要求1所述的智能合约漏洞检测方法,其特征在于,将所述智能合约典型漏洞特征token串向量集与所述待检测智能合约代码token串向量集融合并计算提取特征信息再汇入词嵌入矩阵,以在待检测智能合约代码token串对特征信息进行挑选后圈定潜在漏洞区域,将圈定得到的潜在漏洞区域转化为子图以构建潜在漏洞区域图的步骤包括:基于连续词袋体系结构,综合典型漏洞特征token串周边代码token,训练Word2Vec模型,并进行潜在漏洞区域图构建。
5.根据权利要求4所述的智能合约漏洞检测方法,其特征在于,将所述智能合约典型漏洞特征token串向量集与所述待检测智能合约代码token串向量集融合并计算提取特征信息再汇入词嵌入矩阵,以在待检测智能合约代码token串对特征信息进行挑选后圈定潜在漏洞区域,将圈定得到的潜在漏洞区域转化为子图以构建潜在漏洞区域图的步骤还包括:基于连续词袋体系结构将潜在漏洞区域表示为潜在漏洞区域子图,所述潜在漏洞区域子图表示与漏洞相关联的漏洞区域候选图,从代码属性图中导出潜在漏洞区域子图作为漏洞缺陷样本;
将生成的潜在漏洞区域子图转换生成节点类型和代码概念矩阵,以将节点类型和代码概念矩阵与Word2Vec模型生成的语义向量融合成漏洞缺陷向量。
6.一种智能合约漏洞检测系统,其特征在于,所述系统包括:
获取模块,用于获取待检测智能合约代码并进行规范化及图形化处理以得到待检测智能合约代码token串向量集;
转化模块,用于获取已知的智能合约典型漏洞并进行特征提取以将提取到的漏洞特征构建模型训练数据集,将提取到的漏洞特征进行规范化及图形化转化以得到智能合约典型漏洞特征token串向量集,所述已知的智能合约典型漏洞包括重入漏洞、时间戳依赖以及无限循环漏洞;
模型训练模块,用于将所述智能合约典型漏洞特征token串向量集与所述待检测智能合约代码token串向量集融合并计算提取特征信息再汇入词嵌入矩阵,以在待检测智能合约代码token串对特征信息进行挑选后圈定潜在漏洞区域,将圈定得到的潜在漏洞区域转化为子图以构建潜在漏洞区域图,将构建得到的潜在漏洞区域图输入至图神经网络模型中进行模型训练以得到图神经网络漏洞检测模型;
检测模块,用于获取目标智能合约代码并进行规范化及图形化处理以得到目标潜在漏洞区域图,将所述目标潜在漏洞区域图输入至所述图神经网络漏洞检测模型中进行检测以根据检测结果判断所述目标智能合约代码是否存在漏洞。
7.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-5任一所述的智能合约漏洞检测方法。
8.一种数据处理设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-5任一所述的智能合约漏洞检测方法。