【技术实现步骤摘要】
一种跨合约重入攻击检测方法及系统
[0001]本专利技术是属于区块链安全领域,提供了一种跨合约重入攻击检测方法及系统。
技术介绍
[0002]区块链作为目前最火热的技术之一,正在金融服务等方面获得技术采用,它的透明性、可追溯性、不可篡改性和可验证性在多方业务协作方面也很有价值,如供应链管理。智能合约是一种特殊协议,旨在提供、验证及执行合约,它允许我们在不需要第三方的情况下,执行可追溯、不可逆转和安全的交易。智能合约包含了有关交易的所有信息,只有在满足要求后才会执行结果操作。但是由于区块链技术的相对不成熟以及大量良莠不齐的智能合约的出现,导致当智能合约调用或利用其他外部合约的代码时,这些外部调用可能被攻击者所劫持,从而迫使合约执行更多的代码。攻击者可以在外部地址小心地构建合约,该地址包含回退函数中的恶意代码。因此当合约把数据送到此地址时,将激活恶意代码。通常恶意代码在易受攻击的合约上执行函数,是开发人员没有预期的操作。臭名昭著的The Dao事件中黑客就是利用了这种攻击,最终导致了以太坊的硬分叉。
[0003]目前针对 ...
【技术保护点】
【技术特征摘要】
1.一种跨合约重入攻击检测系统,其特征在于:合约处理模块:输入待检测的合约,对智能合约的源码进行分析,生成智能合约的跨合约函数调用图;静态分析模块:对跨合约函数调用图进行处理,针对生成的跨合约函数调用图进行静态污点分析,得到可疑的污点路径;路径确认模块:基于支付前验证、支付地址硬编码、执行锁保护、自定义修饰器保护、交易前内部更新规则,对可疑的路径进行综合审查,最终输出重入攻击路径检测结果。2.根据权利要求1所述的一种跨合约重入攻击检测系统,其特征在于:合约处理模块的输入是Solidity编写的智能合约,收集从外部函数开始的所有调用,具体包括以下步骤:步骤2.1、通过Solidity程序构建跨合约调用图,生成有向的跨合约调用图,跨合约调用图的节点是Solidity函数,有向边代表着调用关系;步骤2.2、添加fallback函数和自定义修饰器所代表的边,以得到更为准确的跨合约调用图;步骤2.3、对于跨合约调用图内的每一个函数,经过抽象语法分析器作用后生成合约内部函数调用图;步骤2.4、由步骤2.2得到的跨合约调用图和2.3得到的合约内部函数调用图相结合,得到最终所需的跨合约函数调用图,根据跨合约函数调用图得到调用链。3.根据权利要求1所述的一种跨合约重入攻击检测手段系统,基特征在于:静态分析模块对跨合约函数调用图进行静态污点分析,分析的目标是跨合约调用图中,所有从可疑合约地址开始,以外部函数调用结束的调用关系,在跨合约函数调用图里,如果一条路径满足以下任一条件,那么则认为该路径为遭受重入攻击的脆弱路径:(1)合约对象调用了其任意公有方法;(2)地址变量调用了任意低级函数。4.根据权利要求1所述的一种跨合约重入攻击检测系统,其特征在于:路径确认模块基于支付前访问控制技术、支付地址硬编码、...
【专利技术属性】
技术研发人员:牛伟纳,肖涛,张小松,王天瑞,周孝笑,陈曦,杨文武,陈瑞东,
申请(专利权)人:电子科技大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。