CN115659335A - 基于混合模糊测试的区块链智能合约漏洞检测方法及装置 - Google Patents

基于混合模糊测试的区块链智能合约漏洞检测方法及装置 Download PDF

Info

Publication number
CN115659335A
CN115659335A CN202211276689.1A CN202211276689A CN115659335A CN 115659335 A CN115659335 A CN 115659335A CN 202211276689 A CN202211276689 A CN 202211276689A CN 115659335 A CN115659335 A CN 115659335A
Authority
CN
China
Prior art keywords
intelligent contract
vulnerability
intelligent
test case
block chain
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202211276689.1A
Other languages
English (en)
Inventor
何道敬
李鑫吉
张民
朱珊珊
付章杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Jingshan Technology Co ltd
Shenzhen Graduate School Harbin Institute of Technology
Original Assignee
Shanghai Jingshan Technology Co ltd
Shenzhen Graduate School Harbin Institute of Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Jingshan Technology Co ltd, Shenzhen Graduate School Harbin Institute of Technology filed Critical Shanghai Jingshan Technology Co ltd
Priority to CN202211276689.1A priority Critical patent/CN115659335A/zh
Publication of CN115659335A publication Critical patent/CN115659335A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种基于混合模糊测试的区块链智能合约漏洞检测方法及装置,属于区块链智能合约安全检测领域,以解决现有智能合约静态检测方法中无法检测断言失败、未处理的异常等漏洞以及代码覆盖率、分支覆盖率、检测效率较低等技术问题。其中,该方法包括:获取智能合约数据集;通过智能合约漏洞检测工具处理智能合约数据集,获取存在漏洞的智能合约,并标记智能合约;指定漏洞类型进行检测,将待测智能合约输入模糊引擎中并生成接口测试用例;利用以太坊虚拟机执行接口测试用例,然后通过执行跟踪分析器跟踪并分析智能合约执行结果,根据分析结果判断是否存在漏洞。适用于智能合约漏洞检测领域。

Description

基于混合模糊测试的区块链智能合约漏洞检测方法及装置
技术领域
本发明涉及区块链智能合约安全检测技术领域,特别涉及一种基于混合模糊测试的区块链智能合约漏洞检测方法、装置、计算机及存储介质。
背景技术
随着以区块链智能合约为代表的区块链2.0时代的到来,基于区块链的应用如雨后春笋般涌出,智能合约的部署也越来越多,与此同时智能合约受到的威胁也与日俱增。目前智能合约漏洞根据发生层次不同可以分为Solidity代码层、虚拟机执行层、区块链系统层漏洞,智能合约检测工具根据检测过程是否执行智能合约,可以分为静态检测方法和动态检测方法。静态检测方法如深度学习、形式化验证、符号执行等方法检测智能合约漏洞效率、准确率较高,但是由于检测过程中不会执行智能合约,因此无法检测断言失败、未处理的异常等漏洞以及存在代码覆盖率、分支覆盖率以及检测效率较低的技术问题。
发明内容
本发明提供一种基于混合模糊测试的区块链智能合约漏洞检测方法及装置,以用于解决现有智能合约静态检测方法中无法检测断言失败、未处理的异常等漏洞以及代码覆盖率、分支覆盖率以及检测效率较低的技术问题。
本发明一方面实施例提供一种基于混合模糊测试的区块链智能合约漏洞检测方法,包括:
步骤S1,爬取区块链上部署的智能合约,以构建智能合约数据集;
步骤S2,利用智能合约漏洞检测工具处理所述智能合约数据集,以获取存在漏洞的智能合约,并对所有智能合约进行标记;
步骤S3,判断所述存在漏洞的智能合约的漏洞类型;
步骤S4,指定所述漏洞类型进行检测,将待测智能合约输入模糊引擎中并生成接口测试用例;
步骤S5,利用以太坊虚拟机在执行所述接口测试用例,并通过执行跟踪分析器分析执行结果,以判断所述待测智能合约中是否存在指定的漏洞类型。
本发明另一方面实施例提供了一种基于混合模糊测试的区块链智能合约漏洞检测装置,包括:
智能合约数据集构建模块,用于爬取区块链上部署的智能合约,以构建智能合约数据集;
检测智能合约漏洞模块,用于利用智能合约漏洞检测工具处理所述智能合约数据集,以获取存在漏洞的智能合约,并对所有智能合约进行标记;
漏洞类型判断模块,用于判断所述存在漏洞的智能合约的漏洞类型;
测试用例获取模块,用于指定所述漏洞类型进行检测,将待测智能合约输入模糊引擎中获取智能合约源代码,并生成接口测试用例;
跟踪分析和漏洞判断模块,用于利用以太坊虚拟机在所述智能合约源代码中执行所述接口测试用例,并通过执行跟踪分析器分析执行结果,以判断所述待测智能合约中是否存在指定的漏洞类型。
本发明又一方面实施例提供计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如上述实施例所述的基于混合模糊测试的区块链智能合约漏洞检测方法。
本发明还一方面实施例提供一种非临时性计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述实施例所述的基于混合模糊测试的区块链智能合约漏洞检测方法。
本发明的技术方案,至少实现了如下有益的技术效果:
通过提出线性排序分割算子、概率交叉算子、稳定突变算子等概念,在保证遗传算法中个体适应度较高的情况下可以提高个体生成的效率,即在保证生成的测试用例可以覆盖更多代码与分支的情况下又提高了测试用例生成的效率;
它比单独使用符号执行方法或者是模糊测试方法效果更好,可以覆盖深层分支提高代码覆盖率、检测效率等,并且可以有效解决其它智能合约静态漏洞检测方法无法检测断言失败漏洞、未处理的异常等漏洞的问题;
使用模糊引擎根据遗传算法生成智能合约接口测试用例,以太坊虚拟机执行智能合约接口测试用例,并通过执行跟踪分析器跟踪并分析智能合约执行结果,此处理过程提高了代码覆盖率、分支覆盖率以及检测效率,并能够检测断言失败、未处理的异常等智能合约静态检测方法无法检测的漏洞。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为本发明实施例所提供的一种基于混合模糊测试的区块链智能合约漏洞检测方法的流程图;
图2为本发明实施例所提供的一种基于混合模糊测试的区块链智能合约漏洞检测方法的整体架构示意图;
图3为本发明实施例所提供的针对断言失败、整数溢出、重入漏洞、事务顺序依赖、区块依赖、未处理的异常、不安全委托调用、以太泄漏、以太锁定、无保护自毁等漏洞实验效果图;
图4为本发明实施例所提供的一种基于混合模糊测试的区块链智能合约漏洞检测装置的结构示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
下面参照附图描述根据本发明实施例提出的基于混合模糊测试的区块链智能合约漏洞检测方法及装置,首先将参照附图描述根据本发明实施例提出的基于混合模糊测试的区块链智能合约漏洞检测方法。
图1是本发明一个实施例的基于混合模糊测试的区块链智能合约漏洞检测方法的流程图。
如图1所示,该基于混合模糊测试的区块链智能合约漏洞检测方法包括以下步骤:
在步骤S1中,爬取区块链上部署的智能合约,以构建智能合约数据集。
在实际应用中,本发明实施例可从以太坊区块链浏览器爬取Solidity编写的智能合约文件,包括但不限于以太坊区块链浏览器。
在步骤S2中,利用智能合约漏洞检测工具处理智能合约数据集,以获取存在漏洞的智能合约,并对所有智能合约进行标记。
进一步地,本发明实施例中的智能合约漏洞检测工具包括:Slither、Oyente和Securify,具体地,Slither是一种用于智能合约的静态分析框架,用于提供有关以太坊智能合约的有关信息,通过将Solidity智能合约转换成一种称为Slither的中间表示来工作,Slither能够获得智能合约的继承图、控制流图,通过预定义的分析列表来对Slither进行漏洞分析,能够自动的进行程序分析、数据流和污点追踪,主要可以应用于自动漏洞检测、自动优化检测、辅助用户理解智能合约以及协助代码审查;Oyente是一种符号执行工具,能够直接与以太坊虚拟机一起使用,而无需访问高级语言形式,其不仅可以检测不安全的错误,同时能够分析每条代码的实际执行路径;Secruify是一种智能合约安全分析工具,能够自动化的分析证明给定智能合约是否是安全的,Secruity主要包括两个步骤,首先分析智能合约的依赖关系图,从中分析精确的语义信息,然后检查特定的用于计算资产拥有者的代码模式,据此给出智能合约的安全性分析结果。最终本发明实施方式利用多种智能合约漏洞检测工具将智能合约数据集打标处理,获得存在漏洞的智能合约,并通过多票当选机制投票选出最终打标结果,保障数据的准确性。
需要说明的是,在实际应用中,智能合约漏洞检测工具包括但不限于上述所述的工具去检测漏洞。
在步骤S3中,判断存在漏洞的智能合约的漏洞类型。
具体地,本发明实施例可检测十种智能合约漏洞类型,包括断言失败、整数溢出、重入漏洞、事务顺序依赖、区块依赖、未处理的异常、不安全委托调用、以太泄漏、以太锁定、无保护自毁等漏洞类型。
在步骤S4中,指定漏洞类型进行检测,将待测智能合约输入模糊引擎中并生成接口测试用例。
进一步地,在本发明的一个实施例中,如图2所示,步骤S4具体包括:
步骤S401,指定漏洞类型进行检测,将待测智能合约输入模糊引擎中获取接口测试用例;
步骤S402,通过遗传算法分析将智能合约源代码进行编译,编译后的二进制接口为初始化种群生成个体;
步骤S403,根据代码覆盖率和数据依赖性相结合的适应度函数,对个体进行选择、交叉、突变操作选出适应度最优的接口测试用例。
也就是说,本发明实施例利用模糊引擎执行智能合约源代码并生成接口测试用例时,具体通过遗传算法分析智能合约代码,并通过初始种群、选择操作(采用线性排序分割算子)、交叉操作(采用概率交叉算子)、突变操作(采用稳定突变算子)四个阶段生成适应度最优的接口测试用例。
在步骤S5中,利用以太坊虚拟机执行接口测试用例,并通过执行跟踪分析器分析执行结果,以判断待测智能合约中是否存在指定的漏洞类型。
进一步地,本发明实施例中的以太坊虚拟机包括已执行指令的名称、程序计数器、执行堆栈、调用堆栈深度、存储模拟器和执行期间是否发生内部错误标志等部分构成,并取消了挖掘区块、编码事务的功能,从而加快了以太坊虚拟机的执行速度。另外,本发明实施例同时也实现了一种存储模拟器用来持久化在智能合约执行期间的状态更改,所有的状态更改被保存在内存中。
进一步地,本发明实施例中的执行跟踪分析器包括代码覆盖率统计、数据依赖分析、约束求解、终止分析、漏洞检测和污点分析等部分构成。
下面通过以太坊区块链浏览器上爬取的智能合约代码为例的具体实施例对本发明实施例提出的基于混合模糊测试的区块链智能合约漏洞检测方法进一步说明。
步骤1,构建智能合约测试集,从以太坊区块链浏览器上爬取智能合约数据集。本实施方式获取40932个以太坊智能合约,共计约有307396个函数。
步骤2,使用Slither、Oyente、Securify等智能合约漏洞检测工具对智能合约测试集合进行标记,之后通过多票当选机制投票选出最终打标结果。最终包含128个存在漏洞的智能合约,其中包含断言失败漏洞的智能合约有18个,包含整数溢出漏洞的智能合约有15个,包含重入漏洞漏洞的智能合约有10个,包含事务顺序依赖漏洞的智能合约有4个,包含区块依赖漏洞的智能合约有11个,包含未处理的异常漏洞的智能合约有51个,包含不安全委托调用漏洞的智能合约有3个,包含以太泄漏漏洞的智能合约有7个,包含以太锁定漏洞的智能合约有5个,包含无保护自毁漏洞的智能合约有4个。
步骤3,使用指定漏洞类型进行检测,一次只检测智能合约中是否存在指定类型的漏洞。
步骤4,将智能合约文件输入模糊引擎,通过遗传算法分析智能合约代码,并通过初始种群、选择操作、交叉操作、突变操作四个阶段生成适应度最优的接口测试用例。
步骤5,生成的测试用例会被输入以太坊虚拟机中执行。
步骤6,执行跟踪分析单元会跟踪以太坊虚拟机中智能合约接口测试用例执行的过程,并执行代码覆盖率分析、数据依赖性分析、污点分析、约束求解分析、终止分析和漏洞检测等过程。最终,如图3所示,针对除区块依赖漏洞之外的其他漏洞,平均代码覆盖率、分支覆盖率大都在90%以上,检测准确率及效率也都有很大提高。
步骤7,根据分析结果判断智能合约是否存在漏洞。
综上,根据本发明实施例提出的基于混合模糊测试的区块链智能合约漏洞检测方法,通过提出线性排序分割算子、概率交叉算子、稳定突变算子等概念,在保证遗传算法中个体适应度较高的情况下可以提高个体生成的效率,即在保证生成的测试用例可以覆盖更多代码与分支的情况下又提高了测试用例生成的效率;再通过使用模糊引擎根据遗传算法生成智能合约接口测试用例,以太坊虚拟机执行智能合约接口测试用例,并通过执行跟踪分析器跟踪并分析智能合约执行结果,解决了针对断言失败、未处理的异常等智能合约静态检测方法无法检测的问题,并提高了代码覆盖率、分支覆盖率以及检测效率。
其次参照附图描述根据本发明实施例提出的基于混合模糊测试的区块链智能合约漏洞检测装置。
图4是本发明一个实施例的基于混合模糊测试的区块链智能合约漏洞检测装置的结构示意图。
如图4所示,该装置10包括:智能合约数据集构建模块100、检测智能合约漏洞模块200、漏洞类型判断模块300、测试用例获取模块400和跟踪分析和漏洞判断模块500。
其中,智能合约数据集构建模块100用于爬取区块链上部署的智能合约,以构建智能合约数据集。检测智能合约漏洞模块200用于利用智能合约漏洞检测工具处理智能合约数据集,以获取存在漏洞的智能合约,并对所有智能合约进行标记。漏洞类型判断模块300用于判断存在漏洞的智能合约的漏洞类型。测试用例获取模块400用于指定漏洞类型进行检测,将待测智能合约输入模糊引擎中获取智能合约源代码,并生成接口测试用例。跟踪分析和漏洞判断模块500用于利用以太坊虚拟机在智能合约源代码中执行接口测试用例,并通过执行跟踪分析器分析执行结果,以判断待测智能合约中是否存在指定的漏洞类型。
进一步地,在本发明的一个实施例中,测试用例获取模块400具体包括:智能合约源代码获取单元,用于指定漏洞类型进行检测,将待测智能合约输入模糊引擎中获取智能合约源代码;个体生成单元,用于通过遗传算法分析将智能合约源代码进行编译,编译后的二进制接口为初始化种群生成个体;筛选最优接口测试用例单元,用于根据代码覆盖率和数据依赖性相结合的适应度函数,对个体进行选择、交叉、突变操作选出适应度最优的接口测试用例。
进一步地,在本发明的一个实施例中,以太坊虚拟机包括已执行指令的名称、程序计数器、执行堆栈、调用堆栈深度、存储模拟器和执行期间是否发生内部错误标志,并取消了挖掘区块、编码事务的功能。
进一步地,在本发明的一个实施例中,执行跟踪分析器包括代码覆盖率统计、数据依赖分析、约束求解、终止分析、漏洞检测和污点分析。
需要说明的是,前述对基于混合模糊测试的区块链智能合约漏洞检测方法实施例的解释说明也适用于该实施例的装置,此处不再赘述。
根据本发明实施例提出的基于混合模糊测试的区块链智能合约漏洞检测装置,通过提出线性排序分割算子、概率交叉算子、稳定突变算子等概念,在保证遗传算法中个体适应度较高的情况下可以提高个体生成的效率,即在保证生成的测试用例可以覆盖更多代码与分支的情况下又提高了测试用例生成的效率;再通过使用模糊引擎根据遗传算法生成智能合约接口测试用例,以太坊虚拟机执行智能合约接口测试用例,并通过执行跟踪分析器跟踪并分析智能合约执行结果,解决了针对断言失败、未处理的异常等智能合约静态检测方法无法检测的问题,并提高了代码覆盖率、分支覆盖率以及检测效率。
为了实现上述实施例,本发明还提出了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时,实现如前述实施例的基于混合模糊测试的区块链智能合约漏洞检测方法。
为了实现上述实施例,本发明还提出了一种非临时性计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现如前述实施例的基于混合模糊测试的区块链智能合约漏洞检测方法。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或N个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“N个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更N个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或N个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,N个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。

Claims (10)

1.一种基于混合模糊测试的区块链智能合约漏洞检测方法,其特征在于,包括以下步骤:
步骤S1,爬取区块链上部署的智能合约,以构建智能合约数据集;
步骤S2,利用智能合约漏洞检测工具处理所述智能合约数据集,以获取存在漏洞的智能合约,并对所有智能合约进行标记;
步骤S3,判断所述存在漏洞的智能合约的漏洞类型;
步骤S4,指定所述漏洞类型进行检测,将待测智能合约输入模糊引擎中并生成接口测试用例;
步骤S5,利用以太坊虚拟机执行所述接口测试用例,并通过执行跟踪分析器分析执行结果,以判断所述待测智能合约中是否存在指定的漏洞类型。
2.根据权利要求1所述的基于混合模糊测试的区块链智能合约漏洞检测方法,其特征在于,所述步骤S4具体包括:
步骤S401,指定所述漏洞类型进行检测,将待测智能合约输入模糊引擎中获取所述接口测试用例;
步骤S402,通过遗传算法分析将所述智能合约源代码进行编译,编译后的二进制接口为初始化种群生成个体;
步骤S403,根据代码覆盖率和数据依赖性相结合的适应度函数,对所述个体进行选择、交叉、突变操作选出适应度最优的接口测试用例。
3.根据权利要求1所述的基于混合模糊测试的区块链智能合约漏洞检测方法,其特征在于,所述以太坊虚拟机包括已执行指令的名称、程序计数器、执行堆栈、调用堆栈深度、存储模拟器和执行期间是否发生内部错误标志,并取消了挖掘区块、编码事务的功能。
4.根据权利要求1所述的基于混合模糊测试的区块链智能合约漏洞检测方法,其特征在于,所述执行跟踪分析器包括代码覆盖率统计、数据依赖分析、约束求解、终止分析、漏洞检测和污点分析。
5.一种基于混合模糊测试的区块链智能合约漏洞检测装置,其特征在于,包括:
智能合约数据集构建模块,用于爬取区块链上部署的智能合约,以构建智能合约数据集;
检测智能合约漏洞模块,用于利用智能合约漏洞检测工具处理所述智能合约数据集,以获取存在漏洞的智能合约,并对所有智能合约进行标记;
漏洞类型判断模块,用于判断所述存在漏洞的智能合约的漏洞类型;
测试用例获取模块,用于指定所述漏洞类型进行检测,将待测智能合约输入模糊引擎中并生成接口测试用例;
跟踪分析和漏洞判断模块,用于利用以太坊虚拟机执行所述接口测试用例,并通过执行跟踪分析器分析执行结果,以判断所述待测智能合约中是否存在指定的漏洞类型。
6.据权利要求5所述的基于混合模糊测试的区块链智能合约漏洞检测装置,其特征在于,所述测试用例获取模块具体包括:
智能合约源代码获取单元,用于指定所述漏洞类型进行检测,将待测智能合约输入模糊引擎中获取所述智能合约源代码;
个体生成单元,用于通过遗传算法分析将所述智能合约源代码进行编译,编译后的二进制接口为初始化种群生成个体;
筛选最优接口测试用例单元,用于根据代码覆盖率和数据依赖性相结合的适应度函数,对所述个体进行选择、交叉、突变操作选出适应度最优的接口测试用例。
7.据权利要求5所述的基于混合模糊测试的区块链智能合约漏洞检测装置,其特征在于,所述以太坊虚拟机包括已执行指令的名称、程序计数器、执行堆栈、调用堆栈深度、存储模拟器和执行期间是否发生内部错误标志,并取消了挖掘区块、编码事务的功能。
8.据权利要求5所述的基于混合模糊测试的区块链智能合约漏洞检测装置,其特征在于,所述执行跟踪分析器包括代码覆盖率统计、数据依赖分析、约束求解、终止分析、漏洞检测和污点分析。
9.一种计算机设备,其特征在于,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如权利要求1-4中任一所述的基于混合模糊测试的区块链智能合约漏洞检测方法。
10.一种非临时性计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-4中任一所述的基于混合模糊测试的区块链智能合约漏洞检测方法。
CN202211276689.1A 2022-10-18 2022-10-18 基于混合模糊测试的区块链智能合约漏洞检测方法及装置 Pending CN115659335A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211276689.1A CN115659335A (zh) 2022-10-18 2022-10-18 基于混合模糊测试的区块链智能合约漏洞检测方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211276689.1A CN115659335A (zh) 2022-10-18 2022-10-18 基于混合模糊测试的区块链智能合约漏洞检测方法及装置

Publications (1)

Publication Number Publication Date
CN115659335A true CN115659335A (zh) 2023-01-31

Family

ID=84989413

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211276689.1A Pending CN115659335A (zh) 2022-10-18 2022-10-18 基于混合模糊测试的区块链智能合约漏洞检测方法及装置

Country Status (1)

Country Link
CN (1) CN115659335A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117009979A (zh) * 2023-08-10 2023-11-07 哈尔滨工业大学 一种可处理合约信息的智能合约漏洞检测方法
CN117009980A (zh) * 2023-08-10 2023-11-07 哈尔滨工业大学 一种针对智能合约漏洞检测的有指导的模糊测试方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117009979A (zh) * 2023-08-10 2023-11-07 哈尔滨工业大学 一种可处理合约信息的智能合约漏洞检测方法
CN117009980A (zh) * 2023-08-10 2023-11-07 哈尔滨工业大学 一种针对智能合约漏洞检测的有指导的模糊测试方法
CN117009980B (zh) * 2023-08-10 2024-03-15 哈尔滨工业大学 一种针对智能合约漏洞检测的有指导的模糊测试方法
CN117009979B (zh) * 2023-08-10 2024-03-22 哈尔滨工业大学 一种可处理合约信息的智能合约漏洞检测方法

Similar Documents

Publication Publication Date Title
CN109426722B (zh) Sql注入缺陷检测方法、系统、设备及存储介质
Le Goues et al. Specification mining with few false positives
US20190138731A1 (en) Method for determining defects and vulnerabilities in software code
Arisholm et al. Predicting fault-prone components in a java legacy system
CN115659335A (zh) 基于混合模糊测试的区块链智能合约漏洞检测方法及装置
Chen et al. Coverage prediction for accelerating compiler testing
Pretschner Defect-Based Testing.
CN111104335B (zh) 一种基于多层次分析的c语言缺陷检测方法及装置
CN108804326B (zh) 一种软件代码自动检测方法
CN110245085B (zh) 利用在线模型检验的嵌入式实时操作系统验证方法及系统
Li et al. Deeplv: Suggesting log levels using ordinal based neural networks
Walkinshaw et al. Automated comparison of state-based software models in terms of their language and structure
Lin et al. Exploratory metamorphic testing for scientific software
Val et al. Precisely measuring quantitative information flow: 10k lines of code and beyond
CN104715190A (zh) 一种基于深度学习的程序执行路径的监控方法及系统
Mohamed et al. Enhancing test cases prioritization for internet of things based systems using Search-based technique
Saluja et al. Optimized approach for antipattern detection in service computing architecture
Satapathy et al. Usage of machine learning in software testing
Munson et al. Toward a quantifiable definition of software faults
Al Dallal Accounting for data encapsulation in the measurement of object‐oriented class cohesion
CN108763092B (zh) 一种基于交叉验证的代码缺陷检测方法及装置
de Santiago et al. Testing environmental models supported by machine learning
CN115827353A (zh) 故障诊断方法及装置
CN114579431A (zh) 一种基于混合分析的除零错误检测方法
Araújo et al. Correlating automatic static analysis and mutation testing: towards incremental strategies

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination