System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及软件测试,尤其涉及一种跨合约漏洞模糊测试方法、装置、设备及介质。
技术介绍
1、随着区块链技术的快速发展,智能合约成为支持去中心化应用的核心组成部分。智能合约在多个区块链平台上运行,允许用户通过定义好的规则自动执行交易和操作。然而,智能合约的安全性问题始终是业界关注的重点,特别是在涉及多个智能合约交互时,安全隐患尤为显著。这些交互可能会引发跨合约漏洞,导致攻击者能够通过特定的函数调用顺序和交错触发合约中的漏洞,进而窃取资产或损害合约执行的正确性。
2、现有的模糊测试技术(如x-fuzz等)虽然可以用于发现单个合约中的漏洞,但在处理跨合约交互的复杂路径时,仍存在代码覆盖率不足、效率低下等问题。随着代码执行路径的复杂性增加,模糊测试往往会陷入代码覆盖率停滞的瓶颈,难以继续生成有效的测试案例,这导致在跨合约环境下,模糊测试的适用性和覆盖率均受到限制。
技术实现思路
1、本专利技术提供了一种跨合约漏洞模糊测试方法、装置、设备及介质,用于解决现有技术容易陷入代码覆盖率停滞的瓶颈,难以继续生成有效的测试案例,导致在跨合约环境下模糊测试的适用性和覆盖率均受到限制的问题。
2、有鉴于此,本申请第一方面提供了一种跨合约漏洞模糊测试方法,所述方法包括:
3、s1、通过模糊测试方法随机生成测试用例并输入系统,使得系统执行智能合约,同时对漏洞进行检测,并对代码路径覆盖率进行分析;
4、s2、判断是否达到预置测试时间或代码是否覆盖全部路径,若是,
5、s3、当发生覆盖率停滞或出现复杂分支时,通过预训练模型生成变异测试案例,并将所述测试案例作为所述测试用例返回步骤s1,当未发生覆盖率停滞或未出现预置复杂分支时,返回步骤s1;
6、s4、获取代码路径覆盖率和漏洞检测结果。
7、可选地,所述预训练模型,包括:大语言模型、基于transformer架构的模型以及图神经网络。
8、可选地,所述对漏洞进行检测,包括:
9、当所述智能合约执行过程中出现预置异常情况,判定所述智能合约出现漏洞,所述预置异常情况包括:调用失败、状态不一致以及回退错误;
10、或,结合阈值漏洞特征库对所述智能合约执行过程进行监测,识别所述智能合约的漏洞。
11、可选地,所述对代码路径覆盖率进行分析,包括:
12、通过分析所述智能合约执行时的函数调用栈、执行分支和循环结构,确定当前所述测试用例的覆盖情况。
13、可选地,出现所述复杂分支的分析方法包括:
14、通过动态分析是否出现预置复杂复杂分支,所述预置复杂复杂分支包括:循环嵌套、条件判断频繁;
15、或,通过静态分析工具判断是否出现复杂分支。
16、可选地,当所述预训练模型为所述大语言模型时,所述通过预训练模型生成变异测试案例,包括:
17、根据漏洞检测情况和代码路径覆盖率分析情况,设计提示语并输入至所述预训练模型,使得所述所述预训练模型输出变异测试案例。
18、可选地,所述模糊测试方法,包括:模糊测试引擎、强化学习以及遗传算法。
19、本申请第二方面提供一种跨合约漏洞模糊测试装置,所述装置包括:
20、测试单元,用于通过模糊测试方法随机生成测试用例并输入系统,使得系统执行智能合约,同时对漏洞进行检测,并对代码路径覆盖率进行分析;
21、分析单元,用于判断是否达到预置测试时间或代码是否覆盖全部路径,若是,触发获取单元,否则触发生成单元;
22、生成单元,用于当发生覆盖率停滞或出现复杂分支时,通过预训练模型生成变异测试案例,并将所述测试案例作为所述测试用例并触发测试单元,当未发生覆盖率停滞或未出现预置复杂分支时,触发测试单元;
23、获取单元,用于获取代码路径覆盖率和漏洞检测结果。
24、本专利技术第三方面提供一种跨合约漏洞模糊测试设备,所述设备包括处理器以及存储器:
25、所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
26、所述处理器用于根据所述程序代码中的指令,执行如上述第一方面所述的跨合约漏洞模糊测试方法的步骤。
27、本专利技术第四方面提供一种计算机可读存储介质,所述计算机可读存储介质用于存储程序代码,所述程序代码用于执行上述第一方面所述的跨合约漏洞模糊测试方法。
28、从以上技术方案可以看出,本专利技术具有以下优点:
29、1)通过代码路径复杂性分析,筛选出难以覆盖的跨合约交互路径,并智能决定大语言模型的调用时机。该机制提升了跨合约漏洞检测的效率,避免在简单路径上浪费资源。
30、2)结合大语言模型,通过精心设计的prompt(提示语)生成针对跨合约漏洞的复杂测试案例,特别是针对复杂函数调用顺序、交错和依赖性场景的测试。此技术显著提高了模糊测试在复杂路径覆盖上的表现。
31、3)设计了一种模糊测试与大语言模型的智能调度机制,在覆盖率增长停滞或复杂路径检测时,调用大语言模型生成高效的变异测试案例,突破模糊测试的瓶颈。
32、4)针对多个合约之间复杂交互路径下的跨合约漏洞,提供了一种高效的检测方法,提升了模糊测试在多合约场景下的代码覆盖率和测试精度。
本文档来自技高网...【技术保护点】
1.一种跨合约漏洞模糊测试方法,其特征在于,包括:
2.根据权利要求1所述的跨合约漏洞模糊测试方法,其特征在于,所述预训练模型,包括:大语言模型、基于Transformer架构的模型以及图神经网络。
3.根据权利要求1所述的跨合约漏洞模糊测试方法,其特征在于,所述对漏洞进行检测,包括:
4.根据权利要求1所述的跨合约漏洞模糊测试方法,其特征在于,所述对代码路径覆盖率进行分析,包括:
5.根据权利要求1所述的跨合约漏洞模糊测试方法,其特征在于,出现所述复杂分支的分析方法包括:
6.根据权利要求2所述的跨合约漏洞模糊测试方法,其特征在于,当所述预训练模型为所述大语言模型时,所述通过预训练模型生成变异测试案例,包括:
7.根据权利要求1所述的跨合约漏洞模糊测试方法,其特征在于,所述模糊测试方法,包括:模糊测试引擎、强化学习以及遗传算法。
8.一种跨合约漏洞模糊测试装置,其特征在于,包括:
9.一种跨合约漏洞模糊测试设备,其特征在于,所述设备包括处理器以及存储器:
10.一种计算机
...【技术特征摘要】
1.一种跨合约漏洞模糊测试方法,其特征在于,包括:
2.根据权利要求1所述的跨合约漏洞模糊测试方法,其特征在于,所述预训练模型,包括:大语言模型、基于transformer架构的模型以及图神经网络。
3.根据权利要求1所述的跨合约漏洞模糊测试方法,其特征在于,所述对漏洞进行检测,包括:
4.根据权利要求1所述的跨合约漏洞模糊测试方法,其特征在于,所述对代码路径覆盖率进行分析,包括:
5.根据权利要求1所述的跨合约漏洞模糊测试方法,其特征在于,出现所述复杂分支的分析方法包括:
6.根据权利要求2所述的跨...
【专利技术属性】
技术研发人员:郑子彬,陈玉轩,张景文,莫一凡,郑沛霖,
申请(专利权)人:中山大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。