技术新讯 > 计算推算,计数设备的制造及其应用技术 > 漏洞检测模型训练方法、检测方法、装置、设备和介质与流程  >  正文

漏洞检测模型训练方法、检测方法、装置、设备和介质与流程

  • 国知局
  • 2024-07-31 22:49:46

本公开的实施例涉及人工智能,具体地,涉及适用于一种漏洞检测模型训练方法、检测方法、装置、设备和介质。

背景技术:

1、智能合约是区块链技术最成功的应用之一,为实现各式各样的区块链现实应用提供了基础,在区块链生态系统中处于至关重要的地位。然而,频发的智能合约安全事件不仅造成了巨大的经济损失,而且破坏了基于区块链的信用体系,智能合约的漏洞检测与安全防范已经成为亟待解决的关键问题和巨大挑战。

2、传统的程序漏洞检测方法使用的是特征匹配,即:对一些恶意代码进行提取抽象,通过匹配模块对静态源代码进行检测。但是,这种方法智能合约的漏报率高。

技术实现思路

1、本文中描述的实施例提供了一种漏洞检测模型训练方法、检测方法、装置、设备和介质,克服了上述问题。

2、第一方面,根据本公开的内容,提供了一种漏洞检测模型训练方法,应用于预设检测模型,预设检测模型包括:第一分支、第二分支和第三分支;

3、方法包括:

4、获取训练智能合约对应的训练样本,训练智能合约对应的训练样本中包括:训练智能合约的目标源代码数据;

5、将训练智能合约的目标源代码数据输入预设检测模型的第一分支,得到训练智能合约的目标源代码数据对应的语义信息;

6、将训练智能合约的目标源代码数据输入预设检测模型的第二分支,得到训练智能合约的目标源代码数据对应的结构信息;

7、将训练智能合约的目标源代码数据对应的语义信息和训练智能合约的目标源代码数据对应的结构信息输入预设检测模型的第三分支,得到训练智能合约的漏洞预测结果;

8、采用交叉熵损失函数,基于训练智能合约的漏洞预测结果,对第三分支进行训练,得到训练后的漏洞检测模型。

9、可选的,预设检测模型的第一分支的训练过程包括:

10、随机选择训练智能合约的目标源代码数据中的部分源代码数据;

11、对随机选择的部分源代码数据进行令牌掩码操作,得到部分源代码数据对应的掩码令牌;

12、采用交叉熵损失函数,预测部分源代码数据对应的掩码令牌被掩码之前的原始令牌,得到预测损失值;

13、基于预测损失值调整第一分支中的参数,直至第一分支收敛。

14、可选的,对随机选择的部分源代码数据进行令牌掩码操作,得到部分源代码数据对应的掩码令牌,包括:

15、对随机选择的部分源代码数据进行掩码类型划分,得到多组源代码子数据,每组源代码子数据对应的数据量不同;

16、基于每组源代码子数据对应的掩码标记策略,对相应源代码子数据进行令牌掩码操作,得到部分源代码数据对应的掩码令牌;

17、其中,掩码标记策略包括:预设字符标记替换、随机字符标记替换和令牌保持不变,预设字符标记替换对应的源代码子数据的数据量大于随机字符标记替换对应的源代码子数据的数据量,随机字符标记替换对应的源代码子数据的数据量大于令牌保持不变对应的源代码子数据的数据量。

18、可选的,预设检测模型的第二分支的训练过程包括:

19、获取训练智能合约的目标源代码数据的数据流,数据流中包括:数据节点和数据边缘,数据边缘用于描述数据节点的数据来源,数据节点用于描述一组变量;

20、基于数据节点,预测数据流中每两个变量之间是否存在数据边缘,得到预测结果;

21、基于预测结果调整第二分支中的参数,直至第二分支收敛。

22、可选的,方法还包括:

23、采用预设损失函数度量每个数据单元的重要程度评价值,数据单元中包括:训练智能合约的目标源代码数据中的一组源代码数据;

24、基于重要程度评价值,对训练智能合约的目标源代码数据进行优化。

25、第二方面,根据本公开的内容,提供了一种智能合约的漏洞检测方法,包括:

26、获取待检测智能合约对应的目标源代码数据;

27、将待检测智能合约对应的目标源代码数据输入漏洞检测模型,得到待检测智能合约的漏洞检测结果;

28、其中,漏洞检测模型为权利要求1-5中任一项的方法所训练生成的漏洞检测模型。

29、第三方面,根据本公开的内容,提供了一种漏洞检测模型训练装置,应用于预设检测模型,预设检测模型包括:第一分支、第二分支和第三分支;

30、装置包括:

31、第一获取模块,用于获取训练智能合约对应的训练样本,训练智能合约对应的训练样本中包括:训练智能合约的目标源代码数据;

32、第一输入模块,用于将训练智能合约的目标源代码数据输入预设检测模型的第一分支,得到训练智能合约的目标源代码数据对应的语义信息;

33、第二输入模块,用于将训练智能合约的目标源代码数据输入预设检测模型的第二分支,得到训练智能合约的目标源代码数据对应的结构信息;

34、第三输入模块,用于将训练智能合约的目标源代码数据对应的语义信息和训练智能合约的目标源代码数据对应的结构信息输入预设检测模型的第三分支,得到训练智能合约的漏洞预测结果;

35、训练模块,用于采用交叉熵损失函数,基于训练智能合约的漏洞预测结果,对第三分支进行训练,得到训练后的漏洞检测模型。

36、第四方面,根据本公开的内容,提供了一种智能合约的漏洞检测装置,包括:

37、第二获取模块,用于获取待检测智能合约对应的目标源代码数据;

38、第四输入模块,用于将待检测智能合约对应的目标源代码数据输入漏洞检测模型,得到待检测智能合约的漏洞检测结果;

39、其中,漏洞检测模型为第一方面中任一项的方法所训练生成的漏洞检测模型。

40、第五方面,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,处理器执行计算机程序时实现如以上任意一个实施例中漏洞检测模型训练方法的步骤,或者,实现如以上任意一个实施例中智能合约的漏洞检测方法的步骤。

41、第六方面,提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如以上任意一个实施例中漏洞检测模型训练方法的步骤,或者,实现如以上任意一个实施例中智能合约的漏洞检测方法的步骤。

42、本技术实施例提供的漏洞检测模型训练方法,应用于预设检测模型,预设检测模型包括:第一分支、第二分支和第三分支;包括:获取训练智能合约对应的训练样本,训练智能合约对应的训练样本中包括:训练智能合约的目标源代码数据;将训练智能合约的目标源代码数据输入预设检测模型的第一分支,得到训练智能合约的目标源代码数据对应的语义信息;将训练智能合约的目标源代码数据输入预设检测模型的第二分支,得到训练智能合约的目标源代码数据对应的结构信息;将训练智能合约的目标源代码数据对应的语义信息和训练智能合约的目标源代码数据对应的结构信息输入预设检测模型的第三分支,得到训练智能合约的漏洞预测结果;采用交叉熵损失函数,基于训练智能合约的漏洞预测结果,对第三分支进行训练,得到训练后的漏洞检测模型。如此,通过学习智能合约的源代码的语义信息以及结构信息,有效增强模型对智能合约的理解能力,并通过对智能合约的预测结果进行优化训练,有效解决传统方式检测导致漏报率高的问题,提升智能合约漏洞检测的准确性。

43、上述说明仅是本技术实施例技术方案的概述,为了能够更清楚了解本技术实施例的技术手段,而可依照说明书的内容予以实施,并且为了让本技术实施例的上述和其它目的、特征和优点能够更明显易懂,以下特举本技术的具体实施方式。

本文地址:https://www.jishuxx.com/zhuanli/20240730/194857.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。