CN115357902A - 一种面向区块链系统的模糊测试方法 - Google Patents
一种面向区块链系统的模糊测试方法 Download PDFInfo
- Publication number
- CN115357902A CN115357902A CN202210871373.0A CN202210871373A CN115357902A CN 115357902 A CN115357902 A CN 115357902A CN 202210871373 A CN202210871373 A CN 202210871373A CN 115357902 A CN115357902 A CN 115357902A
- Authority
- CN
- China
- Prior art keywords
- data
- checking
- transaction
- block
- test
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/577—Assessing vulnerabilities and evaluating computer system security
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/033—Test or assess software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/034—Test or assess a computer or a system
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种面向区块链系统的模糊测试方法,其步骤包括:1)收集区块链系统脆弱性测试的种子数据作为模糊测试的初始输入数据;2)搭建运行所述区块链系统的测试环境;标记所述测试环境的区块链系统中与所述种子数据相关的代码变量;根据所标记代码变量的功能及其位置,在所述测试环境的区块链系统中插入对应代码变量的监测代码;3)根据每一所述代码变量及对应的模糊测试目标,生成对应的测试数据并输入所述测试环境的区块链系统中,根据所述测试环境中的区块链系统运行情况确定所述区块链系统的安全性。本发明能用于系统性地评估区块链系统的安全性。
Description
技术领域
本发明属于区块链信息安全技术领域,具体来说,是一种通过生成测试输入以评估区块链系统安全性的信息安全检测方法。
背景技术
相比其它软件系统,区块链系统对安全性保障的要求更高。一旦出现安全问题,往往会导致资金被盗或被恶意套利、链分叉或停机升级,乃至客户端或整个系统崩溃等严重后果,造成不可估量的经济损失。根据国家互联网应急中心在2021年发布的区块链安全态势感知报告,2020年发生区块链安全事件555起,造成的经济损失高达179亿美元;Chainalysis在2022年发布的加密领域安全报告显示,在2021年链上恶意地址收到约140亿美元,远超2020年的78亿美元。因此,区块链系统上线之前应进行充分测试,提前发现并修复相关安全问题。
模糊测试技术可用于动态检测软件系统运行时的安全性,是一种常用的信息安全检测方法。该技术通过构造畸形或满足边界条件的输入,提供作为软件系统运行时的参数,并在运行执行过程中监测是否产生异常情况,以收集信息并判断系统的安全性问题所在。对于每一类软件系统,模糊测试技术均需研发人员根据系统运行机制和特点,厘清系统调用接口并定制相应的输入,以有效地检测系统的安全性。从现有国内外相关研究领域来看,(1)现有用于区块链领域的模糊测试技术主要是以Solidity等语言开发的智能合约为对象,用于测试智能合约的安全性,并不能用于测试底层区块链系统的安全性;(2)部分面向区块链加密机制、共识机制测试的研究工作也不适用于开展区块链系统的通用测试;(3)一些可用于C/C++、Golang等语言模糊测试的框架仍需根据区块链系统的运行机制和特点定制有效的测试输入。综上所述,目前还缺乏一种面向区块链系统的通用模糊测试方法,以用于系统性和全面性地检测区块链系统的安全性。
发明内容
为应对现有技术难以直接用于开展区块链系统通用模糊测试的不足,本发明针对区块链的运行机制和特点,提供一种面向区块链系统的通用模糊测试方法。
本发明所采用的技术方案如下:
一种面向区块链系统的模糊测试方法,其步骤包括:
1)收集区块链系统脆弱性测试的种子数据作为模糊测试的初始输入数据;
2)搭建运行所述区块链系统的测试环境;标记所述测试环境的区块链系统中与所述种子数据相关的代码变量;根据所标记代码变量的功能及其位置,在所述测试环境的区块链系统中插入对应代码变量的监测代码;
3)根据每一所述代码变量及对应的模糊测试目标,生成对应的测试数据并输入所述测试环境的区块链系统中,根据所述测试环境中的区块链系统运行情况确定所述区块链系统的安全性。
(1)收集区块链系统脆弱性测试的种子数据,即采集用于模糊测试的初始输入数据。因模糊测试的效果好坏与种子数据的质量密切相关,本发明从实际漏洞中总结触发条件信息作为种子数据。因而,针对区块链系统的运行机制和特点,主要收集5类漏洞的相关触发信息和检查条件:
i.交易相关漏洞信息:交易发送地址检查数据、交易池中的交易数量检查数据、交易序列检查数据、交易序列随机性检查数据、重复交易检查数据、不正确的交易格式检查数据、双花交易检查数据等;
ii.区块相关漏洞信息:区块头的来源区块验证数据、区块头的手续检查数据、区块时间戳检查数据、区块各个域的取值检查数据、所连接区块是否已损坏的检查数据、有缺陷的区块传播或分叉相关变量检查数据、共识机制相关变量检查数据等;
iii.客户端节点相关漏洞信息:区块头同步超时检查数据、客户端节点的合法性检查数据、客户端节点的区块不合法难度检查数据、数据存储的崩溃检查数据等;
iv.钱包相关漏洞信息:密钥的内存清除检查数据、公钥地址的内存检查数据、只读时的密码和密钥检查数据、调用者的余额检查数据等;
v.语言通用漏洞信息:用以实现区块链系统以及客户端节点的编程语言中所存在的漏洞检查条件数据。
(2)识别区块链系统中的关键模块,插入监测代码。即识别系统各模块中漏洞可能出现的代码位置,并加入相关漏洞的专有检查代码。
i.标记系统中与交易、区块、节点、钱包、语言通用漏洞相关的代码变量及其所在的模块的函数代码。针对交易相关漏洞信息,标记的代码变量包括交易发送地址、交易数目、交易序列、交易格式字段、交易金额等关键点;对于区块相关漏洞信息,标记变量包括区块头字段、手续费用字段、时间戳字段、区块格式字段、区块传播或分叉相关变量、共识机制相关变量等关键点;对于节点相关漏洞信息,标记区块同步时间、合法检查字段、数据存储字段等关键点;对于钱包相关漏洞信息,标记钱包密钥、余额等关键点;对于语言通用相关漏洞信息,标记区块链系统中与编程语言漏洞相关的关键点,如内存复制所涉及的关键变量等;
ii.进一步地,围绕所标记的代码变量,在变量生命周期内插入系统运行时的漏洞检查代码作为监测。例如,针对交易相关漏洞修补,可添加检查发送地址是否为空和地址长度是否符合规定的代码,当senderAddr==nil或者len(senderAddr)!=20时,反馈相应的报错情况。具体来说,检查代码包括交易相关的交易发送地址一致性(即检查发送地址相关变量在生命周期内是否会发生改变)、交易数量一致性(即通过检查已处理和未处理交易数量是否在业务逻辑代码上一致从而发现被错误丢弃等异常情况)、交易序列正确性(即检查业务逻辑代码上存在先后顺序的交易序列是否正确)、重复交易检查(即检查是否会出现哈希值相同、交易序号相同等可能违反业务逻辑的重复情况)、交易格式正确性(即检查交易格式相关变量是否会出现业务逻辑设计之外的取值)、交易完整性(即检查交易从发起到最终执行或回退的过程中是否会出现业务逻辑设计之外的修改或损坏等情况)等验证;区块相关的区块头正确性(即检查区块头是否能通过业务逻辑设计校验)、区块时间戳正确性(即检查区块时间戳是否在允许范围之内)、区块字段正确性(即检查区块字段相关取值是否在业务逻辑设计考虑范围之内)、共识正确性(即在共识形成过程中检查业务逻辑代码是否存在违反共识设计的情况)等验证;节点相关的节点区块头同步超时(即检查节点同步区块头是否存在异常超时或同步错误的情况)、节点合法性(即检查节点接入网络的过程及其权限是否符合业务逻辑设计)、区块难度(即检查区块难度是否符合系统设计)、数据存储完整性(即在节点接入系统运行周期内检查本地数据存储是否符合业务逻辑设计)等验证;钱包相关的钱包密钥内存读取(即检查钱包程序运行过程中密钥是否可能在内存中被读取)、调用者余额(即检查区块链系统钱包模块在交互的过程中是否检查调用者的钱包余额)等验证,以及区块链系统及客户端节点中的通用漏洞检查验证(如常见的内存类漏洞)。
(3)编写测试模块,生成区块链系统输入,观察系统运行是否出现异常。
i.编写测试模块。一方面,区块链系统一般会提供Web3接口供用户在线调用,可针对Web3接口提供测试输入;另一方面,在Web3接口难以生成相应测试数据的特定场景下,可编写额外的模拟数据生成模块,根据需要构造特定的区块和交易序列;
ii.进一步地,设定模糊测试目标。围绕所标记的代码变量和相关漏洞检查代码,设定模糊测试应覆盖的相关代码位置,并以此计算所生成测试数据的路径覆盖度;例如,在交易相关代码中,测试不一致或变更的异常交易发送地址是否能在系统中对应代码位置处运行通过;在区块相关代码中,测试校验错误的区块头是否能在系统中对应代码位置处运行通过;在节点相关代码中,模拟同步超时的区块头,测试系统对应代码位置是否执行了符合业务逻辑设计的处理;在钱包代码中,测试相应位置是否可读取钱包密钥。
iii.进一步地,搭建区块链系统测试环境,生成输入并观察系统运行是否出现异常。在测试运行时,可根据模糊测试目标,通过求解器对测试输入进行限制,提高测试的指向性和效率。
本发明的有益效果是:
本发明针对区块链的运行机制和特点,提供一种面向区块链系统的通用模糊测试方法,能用于系统性地评估区块链系统的安全性。相比之下,(1)现有区块链领域的大部分模糊测试工作仅可用于智能合约安全评估,不能用于开展底层系统的安全评估;(2)部分面向加密、共识等机制的测试工作也不适用于针对区块链系统开展通用测试;(3)一些可用于C/C++、Golang等语言模糊测试的框架并未考虑到区块链系统的运行机制和特点。
附图说明
图1是本发明的实施流程图。
具体实施方式
下面结合附图对本发明进行进一步详细描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
本发明实施方式包括但不限于以下实施例。
本实施例提供了一种面向区块链系统的通用模糊测试方法,如图1所示。该方法包括收集区块链系统脆弱性测试种子数据、识别区块链系统关键模块并插入监测代码、生成系统测试输入并观察运行是否异常等步骤。具体如下:
(1)收集区块链系统历史漏洞数据,整理形成脆弱性测试种子信息。因众多区块链漏洞未公开申报漏洞库编号,难以收集到充分的测试数据。本实施例从区块链系统代码更新中发现漏洞信息线索,总结相关的漏洞测试点。
i.建立漏洞信息关键词表。将交易、区块、节点、钱包及语言通用相关的漏洞信息映射成相关的英文检索关键词。例如,通常的漏洞信息及其修复日志可能包括关键词[vulnerability,bug,fix,crash,sanity,uninitialized,null,denial of service,race,attack];具体的漏洞信息,如“交易发送地址未检查”可映射成[transaction,sender,address,un-checked];
ii.总结有效的漏洞测试信息。在区块链系统代码库中检索漏洞信息关键词表,依据关键词在代码、注释及日志中的命中率或命中阈值判定相应的代码更新是否为漏洞修补操作;在判定某次更新为漏洞修补之后,根据代码更新判断触发漏洞的取值,进行归纳。例如,对于“交易发送地址未检查”可归纳为将发送地址替换为任意地址,检查是否能通过测试;“交易池中的交易数量未检查”可归纳为产生多余/重复的交易,使得交易数量与实际情况不符,检查系统是否未完全检查或妥善处理交易数量的异常情况;
(2)从区块链系统的源代码中识别关键的待测试模块,针对可能出现的问题代码加入相关的监测代码。本实施例通过关键词定位待测试模块,以此进一步标记漏洞相关代码变量,并围绕标记变量的生命周期插入相关检查代码。
i.定位待测试模块,标记模块中的漏洞相关代码变量。根据区块链系统开发方所提供的说明文档,可以定位到交易、区块、节点、钱包等相关的重点待测试模块,其后阅读模块源代码并理解其主要执行逻辑;根据执行逻辑,标记关键变量,如标记交易相关模块的交易发送地址、交易数目、交易序列、交易格式字段、交易金额等关键点。例如,在交易相关漏洞修补示例中,可标记关键变量为交易发送地址senderAddr。
ii.插入标记变量的检查代码。根据标记变量的功能及其在代码中出现的位置,设定完整性、一致性等检查条件,如针对交易相关变量的交易发送地址一致性、交易数量一致性、交易序列正确性、排除重复交易、交易格式正确性、交易完整性等验证。例如,针对交易相关漏洞修补示例,可添加检查发送地址是否为空和地址长度是否符合规定的代码,当senderAddr==nil或者len(senderAddr)!=20时,反馈相应的报错情况。
(3)不断生成区块链系统的测试输入,观察系统运行是否出现异常或是否有检查代码输出报错的情况。对于本模糊测试实施例来说,可进一步地设定测试目标或终止运行条件,如根据所标记关键变量或所属函数的覆盖程度、路径的覆盖程度以及超时时间等目标或条件停止测试。其后,在测试目标的基础上,基于搭建的测试环境,根据标记的代码变量,从脆弱性测试种子数据中生成输入覆盖这些变量位置并进行观察。
i.在添加检查代码的基础上,部署运行区块链系统的测试环境。根据测试需求,选择部署单个或多个链上节点以及客户端,开始基于共识机制产生区块;
ii.下一步,基于区块链系统提供的Web3接口,构造种子数据并生成所需要的测试输入。例如,对于“交易发送地址未检查”,可对照上面交易相关漏洞修补示例,可构造生成发送地址为空或者长度不等于20的测试用例;
iii.对于不能通过Web3接口进行测试的情况,可编写额外的模拟数据生成模块,根据需要构造特定的数据。例如,可构造包含非法Uncle和Transaction序列的区块作为测试用例;
iv.最后,在基于种子数据变异生成测试数据的过程中,可根据设定的测试目标,通过Z3等求解器进一步对生成的测试输入进行过滤或限制,更精确地执行到所需覆盖的路径,观察系统的运行情况。
(4)记录区块链系统运行时的异常或输出报错情况,进一步开展相应的安全性评估。
尽管为说明目的公开了本发明的具体实施例,其目的在于帮助理解本发明的内容并据以实施,本领域的技术人员可以理解:在不脱离本发明及所附的权利要求的精神和范围内,各种替换、变化和修改都是可能的。因此,本发明不应局限于最佳实施例所公开的内容,本发明要求保护的范围以权利要求书界定的范围为准。
Claims (9)
1.一种面向区块链系统的模糊测试方法,其步骤包括:
1)收集区块链系统脆弱性测试的种子数据作为模糊测试的初始输入数据;
2)搭建运行所述区块链系统的测试环境;标记所述测试环境的区块链系统中与所述种子数据相关的代码变量;根据所标记代码变量的功能及其位置,在所述测试环境的区块链系统中插入对应代码变量的监测代码;
3)根据每一所述代码变量及对应的模糊测试目标,生成对应的测试数据并输入所述测试环境的区块链系统中,根据所述测试环境中的区块链系统运行情况确定所述区块链系统的安全性。
2.根据权利要求1所述的方法,其特征在于,所述种子数据包括交易相关漏洞信息、区块相关漏洞信息、客户端节点相关漏洞信息、钱包相关漏洞信息和语言通用漏洞信息。
3.根据权利要求2所述的方法,其特征在于,所述交易相关漏洞信息包括:交易发送地址检查数据、交易池中的交易数量检查数据、交易序列检查数据、交易序列随机性检查数据、重复交易检查数据、不正确的交易格式检查数据、双花交易检查数据;所述区块相关漏洞信息包括:区块头的来源区块验证数据、区块头的手续检查数据、区块时间戳检查数据、区块各个域的取值检查数据、所连接区块是否已损坏的检查数据、有缺陷的区块传播或分叉相关变量检查数据、共识机制相关变量检查数据;所述客户端节点相关漏洞信息包括:区块头同步超时检查数据、客户端节点的合法性检查数据、客户端节点的区块不合法难度检查数据、数据存储的崩溃检查数据;所述钱包相关漏洞信息包括:密钥的内存清除检查数据、公钥地址的内存检查数据、只读时的密码和密钥检查数据、调用者的余额检查数据;所述语言通用漏洞信息包括:用以实现区块链系统以及客户端节点的编程语言中所存在的漏洞检查条件数据。
4.根据权利要求2或3所述的方法,其特征在于,标记所述代码变量的方法为:根据从所述种子数据中选取的关键词查询所述区块链系统的说明文档,定位到与交易、区块、节点、钱包相关的待测试模块,根据所述待测试模块的执行逻辑,确定出所述代码变量并对其进行标记;对于语言通用漏洞信息,标记区块链系统中与编程语言通用漏洞相关的代码变量。
5.根据权利要求2或3所述的方法,其特征在于,根据每一所述代码变量的功能及位置,设定对应的检查条件,根据所述代码变量的检查条件生成对应代码变量的监测代码。
6.根据权利要求5所述的方法,其特征在于,对于所述交易发送地址检查数据,设置交易发送地址一致性检查条件,检查发送地址对应的代码变量在生命周期内是否会发生改变;对于所述交易数量检查数据,设置交易数量一致性检查条件,检查已处理和未处理交易数量是否在业务逻辑代码上是否一致;对于所述交易序列检查数据,设置交易序列正确性检查条件,检查业务逻辑代码上存在先后顺序的交易序列是否正确;对于重复交易检查数据,设置重复交易检查条件,检查是否会出现哈希值相同、交易序号相同的情况;对于所述交易格式检查数据,设置交易格式正确性检查条件,检查交易格式相关变量是否会出现业务逻辑设计之外的取值;对于区块头的来源区块验证数据,设置区块头正确性检查条件,检查区块头是否能通过业务逻辑设计校验;对于区块时间戳检查数据,设置区块时间戳正确性检查条件,检查区块时间戳是否在允许范围之内;对于区块各个域的取值检查数据,设置区块字段正确性检查条件,检查区块字段相关取值是否在业务逻辑设计考虑范围之内;对于共识机制相关变量检查数据,设置共识正确性检查条件,检查共识形成过程中业务逻辑代码是否存在违反共识设计的情况;对于区块头同步超时检查数据,设置节点区块头同步超时检查条件,检查节点同步区块头是否存在异常超时或同步错误的情况;对于客户端节点的合法性检查数据,设置节点合法性检查条件,检查节点接入区块链系统的过程及其权限是否符合业务逻辑设计;对于客户端节点的区块不合法难度检查数据,设置区块难度检查条件,检查区块难度是否符合系统设计;对于数据存储的崩溃检查数据,设置数据存储完整性检查条件,检查节点本地数据存储是否符合业务逻辑设计;对于只读时的密码和密钥检查数据,设置钱包密钥内存读取条件,检查钱包程序运行过程中密钥是否能在内存中被读取;对于调用者的余额检查数据,设置调用者余额检查条件,检查区块链系统钱包模块在交互的过程中是否检查调用者的钱包余额。
7.根据权利要求1所述的方法,其特征在于,通过所述区块链系统的Web3输入测试数据;或者在所述测试环境中设置模拟数据生成模块,用于编写和输入测试数据。
8.根据权利要求1或7所述的方法,其特征在于,根据所标记的代码变量及其位置,设定模糊测试应覆盖的相关代码位置,并以此计算所述测试数据的路径覆盖度。
9.根据权利要求1或7所述的方法,其特征在于,根据所述模糊测试目标,通过求解器对生成的测试数据进行过滤或限制,使所述测试数据执行到所需覆盖的路径。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210871373.0A CN115357902A (zh) | 2022-07-22 | 2022-07-22 | 一种面向区块链系统的模糊测试方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210871373.0A CN115357902A (zh) | 2022-07-22 | 2022-07-22 | 一种面向区块链系统的模糊测试方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115357902A true CN115357902A (zh) | 2022-11-18 |
Family
ID=84031696
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210871373.0A Pending CN115357902A (zh) | 2022-07-22 | 2022-07-22 | 一种面向区块链系统的模糊测试方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115357902A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116170357A (zh) * | 2023-04-23 | 2023-05-26 | 清华大学 | 一种区块链共识协议的模糊测试方法和装置 |
-
2022
- 2022-07-22 CN CN202210871373.0A patent/CN115357902A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116170357A (zh) * | 2023-04-23 | 2023-05-26 | 清华大学 | 一种区块链共识协议的模糊测试方法和装置 |
CN116170357B (zh) * | 2023-04-23 | 2023-07-04 | 清华大学 | 一种区块链共识协议的模糊测试方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Dallmeier et al. | Generating fixes from object behavior anomalies | |
CN111488578A (zh) | 现代应用程序的连续漏洞管理 | |
Baker et al. | An empirical evaluation of mutation testing for improving the test quality of safety-critical software | |
Andesta et al. | Testing smart contracts gets smarter | |
Wu et al. | Mutation testing for ethereum smart contract | |
Islam et al. | Security vulnerabilities in categories of clones and non-cloned code: An empirical study | |
CN111311255A (zh) | 一种基于预言机的智能合约形式化验证和纠错方法 | |
US20190325145A1 (en) | Management of Security Vulnerabilities | |
US10657028B2 (en) | Method for replicating production behaviours in a development environment | |
CN112256593B (zh) | 一种程序处理方法、装置、计算机设备和可读存储介质 | |
Di Nardo et al. | Generating complex and faulty test data through model-based mutation analysis | |
CN116680756A (zh) | 一种基于区块链的体育企业财务数据安全系统 | |
CN115357902A (zh) | 一种面向区块链系统的模糊测试方法 | |
CN112419057A (zh) | 智能合约的日志生成及保存方法、装置、设备和存储介质 | |
CN116361807A (zh) | 风险管控方法、装置、存储介质及电子设备 | |
CN117221015B (zh) | 一种基于区块链技术的工控主机安全管理方法 | |
CN117076301A (zh) | 系统性能测试方法、装置及电子设备 | |
CN117081818A (zh) | 基于智能合约防火墙的攻击交易识别与拦截方法及系统 | |
Bartoletti et al. | Towards benchmarking of Solidity verification tools | |
Staderini et al. | Security Evaluation and Improvement of Solidity Smart Contracts | |
Huang | An empirical study on real bug fixes in smart contracts projects | |
CN113919841A (zh) | 一种基于静态特征和动态插桩的区块链交易监测方法及系统 | |
Seehusen | A technique for risk-based test procedure identification, prioritization and selection | |
CN112528331A (zh) | 隐私泄露风险的检测方法、设备及系统 | |
Kim et al. | Source code analysis for static prediction of dynamic memory usage |
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 |