CN114896604A - 智能合约与链环境交互漏洞检测方法、系统、设备及介质 - Google Patents
智能合约与链环境交互漏洞检测方法、系统、设备及介质 Download PDFInfo
- Publication number
- CN114896604A CN114896604A CN202210620850.6A CN202210620850A CN114896604A CN 114896604 A CN114896604 A CN 114896604A CN 202210620850 A CN202210620850 A CN 202210620850A CN 114896604 A CN114896604 A CN 114896604A
- Authority
- CN
- China
- Prior art keywords
- intelligent contract
- model
- transaction
- interaction
- target
- 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
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
- G06F8/425—Lexical analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/466—Transaction processing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种智能合约与链环境交互漏洞检测方法,包括:将目标智能合约和链上智能合约源代码编译为智能合约中间码;将智能合约中间码转换成智能合约行为模型;将智能合约行为模型转化成交互事务模型;对交互事务模型与目标属性模型进行一致性检测与验证。本发明通过智能合约事务生成、处理及链环境仿真,能够检测出智能合约与链环境交互漏洞问题。
Description
技术领域
本发明涉及区块链智能合约安全技术领域,具体涉及一种智能合约与链环境交互漏洞检测方法、系统、设备及介质。
背景技术
区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。使用去中心化共识机制去维护一个完整的、分布式的、不可篡改的账本数据库的技术,它能够让区块链中的参与者在无需建立信任关系的前提下实现一个统一的账本系统。一个智能合约是一套以数字形式定义的承诺,包括合约参与方可以在上面执行这些承诺的协议。在区块链技术背景下,智能合约是指运行在区块链上,能够执行某些功能的程序代码。将智能合约以数字化的形式写入区块链中,由区块链技术的特性保障存储、读取、执行整个过程透明可追踪、不可篡改。同时,由区块链自带的共识算法构建出一套状态机系统,使得智能合约能够高效地运行。
由于区块链不可篡改特性,一旦因自身设计的缺陷,导致智能合约遭受攻击,或将产生不可逆转的重大损失。现有技术通常使用一些代码缺陷检查方法,例如形式化验证、静态代码分析、模糊测试等技术,提前发现程序缺陷代码,及时修改问题代码,可起防范于未然的作用。
黑客对智能合约的攻击手法可分为两类:1)对链上的单个智能合约代码进行分析,找到程序漏洞并发起攻击;2)对链上多个智能合约的组合交互行为进行分析,找到交互漏洞并发起攻击。现有的智能合约代码漏洞检测验证系统及工具都是利用静态代码分析、模糊测试和形式化验证等方法对单个智能合约程序进行检测验证,用于防范黑客的第一类攻击手法。现有技术还提到了智能合约组合交易的情形,但并未提出与目标属性相关的非重复行为完备事务裁剪与生成方法,而且所用验证引擎也无法推理事务执行时间对攻击效果的影响。总之,现有技术方案所设计的系统或工具缺少事务执行时间、事务随机执行等链环境仿真功能,导致无法推理或检测出因交易池中事务执行时间、事务重新排序、矿工插入恶意交易序列等导致的智能合约与链环境的交互漏洞,从而无法有效防范黑客的第二类攻击手法(即对交互漏洞的攻击)。
此外,现有技术缺少有效的事务生成与处理方案。在事务生成方面,现有技术缺少对事务的过滤与筛选,导致在事务处理过程中需要检测引擎处理大量目标属性无关事务,极大降低了检测系统的漏洞检测能力。特别的,当检测引擎采用形式化方法对大量事务进行处理时会因路径状态空间爆炸问题导致检测系统失效。
发明内容
为了解决现有技术无法有效检测出智能合约与链环境交互漏洞的问题,本发明提供了一种智能合约与链环境交互漏洞检测方法、系统、设备及介质。本发明通过智能合约事务生成、处理及链环境仿真,能够检测出智能合约与链环境交互漏洞问题。
本发明通过下述技术方案实现:
一种智能合约与链环境交互漏洞检测方法,包括:
将目标智能合约和链上智能合约源代码编译为智能合约中间码;
将智能合约中间码转换成智能合约行为模型;
将智能合约行为模型转化成交互事务模型;
对交互事务模型与目标属性模型进行形式化验证。
作为优选实施方式,本发明的将智能合约中间码转换成智能合约行为模型,具体为:
通过词法分析器将智能合约中间码转换成标记序列;
根据标记序列判断每行智能合约中间码的类型并生成中间码类型序列;
根据中间码类型序列生成以智能合约函数为基本单元的抽象中间码;
按照预设的语言语法规则将抽象中间码转换成基于时间自动机的行为模型。
作为优选实施方式,本发明的一个智能合约行为对应一个智能合约函数的时间自动机,包含合约状态、时间或非时间变量、事件和状态转移关系。
作为优选实施方式,本发明的将智能合约行为模型转化成交互事务模型,具体为:
从智能合约行为模型中选取若干行为组成与目标属性相关的非重复行为完备事务集,形成交互事务模型。
作为优选实施方式,本发明的在生成交互事务的过程中还包括:
利用启发策略库裁剪掉与目标属性无关的交互事务;
所述启发策略库存储了能够满足目标属性的必要事务特征,如果生成的交互事务满足这些必要事务特征才能够满足目标属性,否则应当被裁剪掉。
作为优选实施方式,本发明的目标属性模型通过将目标属性文档输入属性模型生成器自动生成;
所述目标属性文档为智能合约的安全需求描述文档。
第二方面,本发明提出了一种智能合约与链环境交互漏洞检测系统,包括:智能合约前端编译器、自动化建模工具、属性模型生成器、统计模型检测引擎和报告生成器;
其中,所述智能合约前端编译器用于接收目标智能合约和链上智能合约源代码并将其编译为智能合约中间码;
所述自动化建模工具用于接收所述智能合约前端编译器输出的中间码,并依赖行为模型生成器和事务模型生成器,对中间码进行自动化建模得到智能合约交互事务模型;
所述属性模型生成器用于接收目标属性文档,并将其翻译成含时间属性的目标属性模型;
所述统计模型检测引擎,用于接收所述自动化建模工具生成的交互事务模型和属性模型生成器生成的目标属性模型,并对其进行形式化验证;
所述报告生成器用于接收所述统计模型检测引擎输出的验证结果,并生成智能合约漏洞检测文档。
作为优选实施方式,本发明的检测系统还包括启发策略库;
所述启发策略库,用于存储能够满足目标属性的必要事务特征,过滤掉所述行为模型生成器生成的与目标属性无关的事务。
作为优选实施方式,本发明的统计模型检测引擎具备时间特性和随机特性;
所述统计模型检测引擎利用时间特性和随机特性,得到两种类型的验证结果:
交互事务模型满足目标属性的概率;
以及目标属性模型满足目标属性的概率是否大于或等于预设阈值。
第三方面,本发明提出了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现本发明所述方法的步骤。
本发明具有如下的优点和有益效果:
1、本发明能够检测出智能合约与链环境交互漏洞问题,从而能够有效防范对智能合约的攻击,提高了智能合约的安全性。
2、本发明通过给出与目标属性相关的非重复行为完备事务集,在兼顾形式化检测引擎路径空间爆炸问题的同时,最大程度覆盖事务重新排序、旷工插入恶意交易序列等链上任意可能攻击事务,提高检测效率与检测性能。
3、本发明不仅可以分析出恶意事务及其发生的概率,还可以分析出事务执行时间对执行结果的影响,从而得到更加精准的验证结果。
附图说明
此处所说明的附图用来提供对本发明实施例的进一步理解,构成本申请的一部分,并不构成对本发明实施例的限定。在附图中:
图1为本发明实施例的检测方法流程示意图。
图2为本发明实施例的计算机设备原理框图。
图3为本发明实施例的检测系统原理框图。
图4为本发明实施例的时间状态机示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本发明作进一步的详细说明,本发明的示意性实施方式及其说明仅用于解释本发明,并不作为对本发明的限定。
实施例1
针对现有技术缺少有效的智能合约事务生成与处理及链环境仿真功能,无法检测出智能合约与链环境交互漏洞,从而导致无法有效防范对智能合约的攻击的问题,本实施例提出了一种智能合约与链环境交互漏洞检测方法。
如图1所示,本实施例的检测方法包括以下步骤:
步骤一、将目标智能合约和链上智能合约源代码编译为智能合约中间码。
该步骤中,目标智能合约为上链前待验证的合约;链上智能合约为与目标智能合约具有交互价值的链上智能合约,例如金融领域中的无抵押借贷合约、汇兑合约和抵押借贷合约之间就具有交互价值。
智能合约中间码通常采用字节码形式表征。
步骤二、将智能合约中间码转换成智能合约行为模型。
该步骤还包括以下子步骤:
步骤21,通过词法分析器将智能合约中间码转换为标记序列;
步骤22,根据标记序列判断每行智能合约中间码的类型并生成中间码类型序列(例如,函数体类型、普通指令类型等);
步骤23,根据中间码类型序列生成以智能合约函数为基本单元的抽象中间码;
步骤24,按照预设的语言语法规则将抽象中间码转换成基于时间自动机的行为模型。
其中,一个智能合约行为对应一个智能合约函数的时间自动机,包含合约状态、时间或非时间变量、事件和状态转移关系。
步骤三、将智能合约行为模型转换成交互事务模型。
该步骤具体为:从智能合约行为模型中选取若干行为组成与目标属性相关的非重复行为完备事务集,形成交互事务模型。一种可行的随机事务生成方法如下:
如果用集合A表示智能合约行为模型,那么一个事务t∈T是从集合A中提取的n个不重复行为的序列。用P(A)表示A的幂集,给定一个元素K∈P(A),用σ(K)表示K的全排列集合。式(1)给出了由不同长度、不同排列的事务所组成事务集T的定义:
上述随机事务生成方法给出在不重复选取行为的前提下,可从行为模型中生成的任意可能事务。在上述方法框架下,根据实际目标属性需求对K中的行为进行有选择性的重复则可对事务集作进一步扩充,因此,由时间自动机行为模型构造的随机事务集可模拟出链上交易池中的事务执行时间、事务重新排序、旷工插入恶意交易序列等任意可能攻击事务。
另外,由于交互事务模型中的每个事务都需要形式化推理,因此在事务生成过程中要尽可能的减少生成与目标属性无关的事务,故步骤三在生成交互事务的过程中还借助启发策略库裁剪掉与目标属性无关的事务。
启发策略库存储了能够满足目标属性的必要事务特征,所谓必要事务特征是指满足目标属性的事务必备特征,生成的事务只有满足这些必要事务特征才有可能满足目标属性,而不满足这些必要事务特征的事务应当被裁剪掉,即过滤掉与目标属性无关的事务,解决形式化验证中的组合路径爆炸问题。例如,满足目标属性的可能启发策略有:1)事务包含的行为不少于两个;2)事务必须以某个特殊行为开始;3)事务必须以某个特殊行为结束;4)事务中一个行为必须依赖于至少一个之前已执行的行为等等。
步骤四、对交互事务模型与目标属性模型进行形式化验证,并输出验证结果。
其中,目标属性模型通过将目标属性文档输入属性模型生成器自动生成。所谓目标属性文档为智能合约的安全需求描述文档,通常基于限定模板、领域词库的自然语言描述形式。
本实施例还提出了一种计算机设备,用于执行本实施例的上述方法。
具体如图2所示,计算机设备包括处理器、内存储器和系统总线;内存储器和处理器在内的各种设备组件连接到系统总线上。处理器是一个用来通过计算机系统中基本的算术和逻辑运算来执行计算机程序指令的硬件。内存储器是一个用于临时或永久性存储计算程序或数据(例如,程序状态信息)的物理设备。系统总线可以为以下几种类型的总线结构中的任意一种,包括存储器总线或存储控制器、外设总线和局部总线。处理器和内存储器可以通过系统总线进行数据通信。其中内存储器包括只读存储器(ROM)或闪存(图中未示出),以及随机存取存储器(RAM),RAM通常是指加载了操作系统和计算机程序的主存储器。
计算机设备一般包括一个外存储设备。外存储设备可以从多种计算机可读介质中选择,计算机可读介质是指可以通过计算机设备访问的任何可利用的介质,包括移动的和固定的两种介质。例如,计算机可读介质包括但不限于,闪速存储器(微型SD卡),CD-ROM,数字通用光盘(DVD)或其它光盘存储、磁带盒、磁带、磁盘存储或其它磁存储设备,或者可用于存储所需信息并可由计算机设备访问的任何其它介质。
计算机设备可在网络环境中与一个或者多个网络终端进行逻辑连接。网络终端可以是个人电脑、服务器、路由器、智能电话、平板电脑或者其它公共网络节点。计算机设备通过网络接口(局域网LAN接口)与网络终端相连接。局域网(LAN)是指在有限区域内,例如家庭、学校、计算机实验室、或者使用网络媒体的办公楼,互联组成的计算机网络。WiFi和双绞线布线以太网是最常用的构建局域网的两种技术。
应当指出的是,其它包括比计算机设备更多或更少的子系统的计算机系统也能适用于发明。
如上面详细描述的,适用于本实施例的计算机设备能执行智能合约与链环境交互漏洞检测方法的指定操作。计算机设备通过处理器运行在计算机可读介质中的软件指令的形式来执行这些操作。这些软件指令可以从存储设备或者通过局域网接口从另一设备读入到存储器中。存储在存储器中的软件指令使得处理器执行上述的群成员信息的处理方法。此外,通过硬件电路或者硬件电路结合软件指令也能同样实现本发明。因此,实现本实施例并不限于任何特定硬件电路和软件的组合。
实施例2
本实施例提出了一种智能合约与链环境交互漏洞检测系统。如图3所示,本实施例的检测系统包括:
智能合约前端编译器,用于接收相同或不同编程语言实现的区块链智能合约源代码,将智能合约源代码编译成统一表示形式的中间码。
自动化建模工具,用于接收智能合约前端编译器输出的中间码,并依赖行为模型生成器和事务模型生成器,对中间码进行自动化建模得到智能合约交互事务模型。
行为模型生成器,用于将将智能合约中间码转换成智能合约行为模型,具体过程如上述实施例1所述,此处不再赘述。
事务模型生成器,用于将智能合约行为模型转换成交互事务模型,交互事务生成方式如上述实施例1所述,此处不再赘述。
启发策略库,用于存储能够满足目标属性的必要事务特征,过滤掉行为模型生成器生成的与目标属性无关的事务,解决形式化验证中的组合路径爆炸问题。
属性模型生成器,用于接收目标属性文档,将目标属性文档翻译成含时间属性的目标属性模型(例如:对线性时序逻辑LTL进行时间扩展),并将目标属性模型输入至统计模型检测引擎。
统计模型检测引擎,用于接收事务模型生成器生成的交互事务模型和属性模型生成器生成的目标属性模型,并对其进行形式化验证,将验证结果输出至智能合约与链环境交互漏洞检测生成器。统计模型检测引擎在具备处理常规有限状态自动机基础上还需进一步拓展以下两个特性:1)时间特性,例如可基于时间自动机进行时间变量及实时语义支持;2)随机特性,例如可基于马尔科夫链进行概率变量及离散时间随机语义支持。利用时间特性和随机特性,统计模型检测引擎可以得到出两种类型的推理结果:1)交互模型满足目标属性的概率;
2)属性模型满足目标属性的概率是否大于或等于某个阈值。利用上述特性,链环境模拟与验证器可以不仅可以分析出恶意事务及其发生的概率还可以分析出事务执行时间对执行结果的影响,从而得到更加精确的验证结果。
智能合约与链环境交互漏洞检测报告生成器,用于接收统计模型检测引擎输出的验证结果,并生成智能合约漏洞检测文档。
实施例3
本实施例以太坊区块链平台的游戏类智能合约应用为例,假设两个游戏合约A和B,各自有游戏币AToken和BToken的发行权,并且AToken和BToken可以在A或B提供的任意一个游戏币交易市场AMarket或BMarket进行汇兑。黑客首先在BMarket将AToken兑换成BToken,然后在AMarket将BToken兑换回AToken,最后套取游戏币。结合图1或图3,使用本发明实施例提出的工具对上述套取游戏币的漏洞检测流程进行详细阐述,主要步骤如下:
1)将待验证的智能合约A与链上智能合约B的合约源代码导入智能合约前端编译器,本例中的游戏合约源码是由以太坊区块链中支持的高级编程语言:solidity语言;
2)智能合约前端编译器将以太坊solidity语言编写的游戏合约一对一转换为智能合约中间码,中间码包含源代码变量、常量、功能函数等游戏合约A和B的程序逻辑与数据信息。游戏合约A、B中的常量例如:用于汇率计算的常量因子A_RATIO、A_FEE、B_RATIO、B_FEE。游戏合约A、B中的变量例如:AMarket中当前AToken总量AMarket[AToken]、BToken总量AMarket[BToken],BMarket中当前BToken总量BMarket[BToken]、AToken总量BMarket[AToken],攻击者当前AToken总量Attacker[AToken]、BToken总量Attacker[BToken]。游戏合约A、B中的功能函数例如:汇兑函数AExchange(InToken,OutToken,InAmount),该函数表示卖出InAmount数量的InToken并获得OutAmount数量的OutToken,这里可获得的OutAmount需要通过常量因子A_RATIO、A_FEE和特定汇率算法得到,类似的B中的汇兑函数为BExchange(InToken,OutToken,InAmount)。
3)自动化建模工具首先借助行为模型生成器将智能合约中间码转换成智能合约行为模型,然后再通过事务模型生成器和启发策略库生成交互事务模型。例如:汇兑函数AExchange的时间自动机模型如图4所示,x为自动机时间变量,S0状态为初始状态,包含符号化的状态变量S0_Attacker[AToken]、S0_Attacker[BToken]、S0_AMarket[AToken]、S0_AMarket[BToken]、S0_BMarket[AToken]、S0_BMarket[BToken],经事件BExchange后状态由S0迁移到S1,修改后的状态为:S1_Attacker[AToken]=S0_Attacker[AToken]–InAmount、S1_Attacker[BToken]=S0_Attacker[BToken]+OutAmount、S1_BMarket[AToken]=S0_BMarket[AToken]+InAmount、S1_BMarket[BToken]=S0_BMarket[BToken]–OutAmount、S1_AMarket[AToken]=S0_AMarket[AToken]、S1_AMarket[BToken]=S0_AMarket[BToken],经事件AExchange后状态由S1迁移到S2,修改后的状态为:S2_Attacker[BToken]=S1_Attacker[BToken]–InAmount、S2_Attacker[AToken]=S1_Attacker[AToken]+OutAmount、S2_AMarket[BToken]=S1_AMarket[BToken]+InAmount、S2_AMarket[AToken]=S1_AMarket[AToken]–OutAmount、S2_BMarket[AToken]=S1_BMarket[AToken]、S2_BMarket[BToken]=S1_BMarket[BToken]。该示例状态机包含两个行为模型,{S0->S1}和{S1->S2}。可生成的四个事务{{S0->S1}、{S1->S2}、{S0->S1->S2}、{S0->S2->S1}},假设启发策略库规定a)事务必须包含不少于两个行为b)在BExchange之前必须有AExchange行为,那么上述四个事务经启发策略库裁剪后只有图2中的{S0->S1->S2}事务符合条件,极大缩减了形式化推理的路径状态空间。
4)该示例中目标属性文档描述的属性为“攻击者是否可通过不同平台合约市场的汇兑功能使攻击者账户增加N个AToken”,该属性文档经目标属性生成器转换为以下基于时间的LTL目标属性模型:
φ(t)=F[0,t]S2_Attacker[AToken]≥S0_Attacker[AToken]+N∧S2 Attacker[AToken]=S0 Attacker[AToken]
5)首先根据统计模型检测引擎的特性设置必要的统计参数、阈值,然后对交互事务模型和目标属性模型的可满足性进行推理论证,如果统计概率为0,则表明不存在目标属性中所描述的攻击者套取游戏币的漏洞风险,否则检测引擎会报告随事务执行时间的变化攻击者可成功攻击的概率变化,说明游戏合约A与链上已有合约B存在交互安全问题。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种智能合约与链环境交互漏洞检测方法,其特征在于,包括:
将目标智能合约和链上智能合约源代码编译为智能合约中间码;
将智能合约中间码转换成智能合约行为模型;
将智能合约行为模型转化成交互事务模型;
对交互事务模型与目标属性模型进行形式化验证。
2.根据权利要求1所述的一种智能合约与链环境交互漏洞检测方法,其特征在于,将智能合约中间码转换成智能合约行为模型,具体为:
通过词法分析器将智能合约中间码转换成标记序列;
根据标记序列判断每行智能合约中间码的类型并生成中间码类型序列;
根据中间码类型序列生成以智能合约函数为基本单元的抽象中间码;
按照预设的语言语法规则将抽象中间码转换成基于时间自动机的行为模型。
3.根据权利要求1或2所述的一种智能合约与链环境交互漏洞检测方法,其特征在于,一个智能合约行为对应一个智能合约函数的时间自动机,包含合约状态、时间或非时间变量、事件和状态转移关系。
4.根据权利要求1所述的一种智能合约与链环境交互漏洞检测方法,其特征在于,将智能合约行为模型转化成交互事务模型,具体为:
从智能合约行为模型中选取若干行为组成与目标属性相关的非重复行为完备事务集,形成交互事务模型。
5.根据权利要求1或4所述的一种智能合约与链环境交互漏洞检测方法,其特征在于,在生成交互事务的过程中还包括:
利用启发策略库裁剪掉与目标属性无关的交互事务;
所述启发策略库存储了能够满足目标属性的必要事务特征,如果生成的交互事务满足这些必要事务特征才能够满足目标属性,否则应当被裁剪掉。
6.根据权利要求1所述的一种智能合约与链环境交互漏洞检测方法,其特征在于,所述目标属性模型通过将目标属性文档输入属性模型生成器自动生成;
所述目标属性文档为智能合约的安全需求描述文档。
7.一种智能合约与链环境交互漏洞检测系统,其特征在于,包括:智能合约前端编译器、自动化建模工具、属性模型生成器、统计模型检测引擎和报告生成器;
其中,所述智能合约前端编译器用于接收目标智能合约和链上智能合约源代码并将其编译为智能合约中间码;
所述自动化建模工具用于接收所述智能合约前端编译器输出的中间码,并依赖行为模型生成器和事务模型生成器,对中间码进行自动化建模得到智能合约交互事务模型;
所述属性模型生成器用于接收目标属性文档,并将其翻译成含时间属性的目标属性模型;
所述统计模型检测引擎,用于接收所述自动化建模工具生成的交互事务模型和属性模型生成器生成的目标属性模型,并对其进行形式化验证;
所述报告生成器用于接收所述统计模型检测引擎输出的验证结果,并生成智能合约漏洞检测文档。
8.根据权利要求7所述的一种智能合约与链环境交互漏洞检测系统,其特征在于,还包括启发策略库;
所述启发策略库,用于存储能够满足目标属性的必要事务特征,过滤掉所述行为模型生成器生成的与目标属性无关的事务。
9.根据权利要求7所述的一种智能合约与链环境交互漏洞检测系统,其特征在于,所述统计模型检测引擎具备时间特性和随机特性;
所述统计模型检测引擎利用时间特性和随机特性,得到两种类型的验证结果:
交互事务模型满足目标属性的概率;
以及目标属性模型满足目标属性的概率是否大于或等于预设阈值。
10.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1-6中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210620850.6A CN114896604A (zh) | 2022-06-02 | 2022-06-02 | 智能合约与链环境交互漏洞检测方法、系统、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210620850.6A CN114896604A (zh) | 2022-06-02 | 2022-06-02 | 智能合约与链环境交互漏洞检测方法、系统、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114896604A true CN114896604A (zh) | 2022-08-12 |
Family
ID=82726516
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210620850.6A Pending CN114896604A (zh) | 2022-06-02 | 2022-06-02 | 智能合约与链环境交互漏洞检测方法、系统、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114896604A (zh) |
-
2022
- 2022-06-02 CN CN202210620850.6A patent/CN114896604A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP4010816A1 (en) | Modification of in-execution smart contract programs | |
Ciesinski et al. | On probabilistic computation tree logic | |
Van Dongen et al. | Structural patterns for soundness of business process models | |
Dalton et al. | Analyzing attack trees using generalized stochastic petri nets | |
US20100229230A1 (en) | System and method for securing computer system against unauthorized access | |
Hague et al. | Unboundedness and downward closures of higher-order pushdown automata | |
US10970449B2 (en) | Learning framework for software-hardware model generation and verification | |
US11868481B2 (en) | Method for discovering vulnerabilities of operating system access control mechanism based on model checking | |
CN111414402A (zh) | 一种日志威胁分析规则生成方法及装置 | |
CN113158189A (zh) | 一种恶意软件分析报告生成方法、装置、设备和介质 | |
Touati et al. | Testing language containment for ω-automata using BDDs | |
Bollig | Logic for communicating automata with parameterized topology | |
CN114896604A (zh) | 智能合约与链环境交互漏洞检测方法、系统、设备及介质 | |
He | Modeling and analyzing smart contracts using predicate transition nets | |
Finkel et al. | On the ω-language expressive power of extended petri nets | |
Oh et al. | A model independent S/W framework for search-based software testing | |
CN114637664A (zh) | 一种针对安卓应用程序性质的检测方法及装置 | |
Vizovitin et al. | Verifying UCM specifications of distributed systems using colored Petri nets | |
Milov et al. | Development of a scenario modeling of conflict tools in a security system based on formal grammars | |
Morbé et al. | Fully symbolic TCTL model checking for incomplete timed systems | |
Nain et al. | Synthesizing probabilistic composers | |
Wang et al. | Smart Contract Symbol Execution Vulnerability Detection Method Based on CFG Path Pruning | |
AU2021287457B2 (en) | "Log Data Compliance" | |
Vörös et al. | Advanced saturation-based model checking of well-formed coloured Petri nets | |
Boroday et al. | Techniques for Abstracting SDL Specifications |
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 |