CN115442380A - 针对智能合约漏洞攻击的交易阻断方法和装置 - Google Patents
针对智能合约漏洞攻击的交易阻断方法和装置 Download PDFInfo
- Publication number
- CN115442380A CN115442380A CN202211113706.XA CN202211113706A CN115442380A CN 115442380 A CN115442380 A CN 115442380A CN 202211113706 A CN202211113706 A CN 202211113706A CN 115442380 A CN115442380 A CN 115442380A
- Authority
- CN
- China
- Prior art keywords
- transaction
- contract
- attack
- address
- deployment
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
-
- 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
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1416—Event detection, e.g. attack signature detection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1433—Vulnerability analysis
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/1466—Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks
Abstract
本发明公开了一种针对智能合约漏洞攻击的交易阻断方法和装置。通过分析交易日志数据,定位攻击最终获利地址。通过对智能合约部署代码的替换修改获利地址并绕过权限控制,以自动化利用攻击者原有合约实现快速攻击复现和获利转移。最终利用高矿工费使得构建的替代交易抢先于原交易上链,实现攻击交易的阻断,减少智能合约漏洞攻击造成的损失。提出了一种有效的自动化交易替换策略,通过替换修改攻击者原有合约中的权限控制及获利地址,实现了对攻击合约中攻击逻辑的直接利用,无需对攻击交易中的具体逻辑进行识别,避免了攻击逻辑识别不准确,进而无法实现对复杂攻击行为阻断的问题。
Description
技术领域
本发明属于信息安全领域,具体涉及一种针对智能合约漏洞攻击的交易阻断方法和装置。
背景技术
以太坊是著名的去中心化的智能合约平台,开发者可以基于以太坊平台便捷的开发和部署去中心化应用程序。2019年以来,基于以太坊智能合约的去中心化金融(DeFi)高速发展。不断涌现的去中心化金融项目利用了区块链技术开放、透明、不可篡改的特性,以公开的智能合约代码为基础,提供了兑换、借贷、存款等一系列金融服务,构建了一套无需依赖和第三方信任的金融生态系统。去中心化金融系统的低信任成本与高收益迅速吸引了大量用户。
去中心化金融协议的开放性意味着其运行规则完全由链上代码制定,但代码总是存在漏洞和缺陷,智能合约漏洞往往会严重威胁DeFi用户资产的安全。而“野蛮生长”的去中心化金融领域仍然没有对安全引起足够的重视。据不完全统计,仅2021年1月至12月,针对去中心化金融生态的攻击事件就已经超过195起,累计造成经济损失数十亿美金。
在传统安全领域,已有防火墙、入侵检测系统等安全防护系统可以对攻击行为进行有效检测和阻断,减少安全漏洞带来的损失。但在区块链安全领域,对于如何有效阻断攻击交易尚无有效解决方案。在传统安全领域的技术基础上对区块链攻击交易进行阻断尚存在诸多问题,主要表现在以下方面:
1)无法集中部署防御策略问题
传统中心化信息系统可以通过部署入侵检测系统等来尽可能降低攻击所带来的影响。但以太坊区块链完全去中心化,区块由全世界各地的区块生产者打包并广播。区块生产者只负责验证交易的合法性,不对交易是否是攻击行为负责,因此无法统一部署针对DeFi攻击的防御策略。
2)时间限制问题
智能合约漏洞攻击的主要目标是链上的去中心化金融(DeFi)项目,攻击者通过利用项目合约的潜在漏洞,从而达到盗取项目中用户资产的目的。以太坊允许在一笔交易中包含大量的“内部交易”,很多情况下,仅需一笔交易就可以完成攻击的全过程。安全生态参与者一旦发现异常,攻击者很可能已经“卷款潜逃”。因而阻断攻击交易的时间窗口受到很大限制,除了提前审计发现漏洞,就只能在攻击交易广播到内存池中到攻击交易正式被打包到区块中的数秒时间内完成阻断。数秒的时间意味着无法依靠人工进行分析,只能使用算法进行自动化分析和阻断。
3)缺乏自动化替换交易策略问题
上述的时间限制要求攻击阻断必须能自动化构建新的交易替换原有的攻击交易。虽然通过预执行攻击者交易可以很容易得到攻击合约的外部调用信息和参数,但这些参数往往是攻击合约通过获取到的链上的当前状态计算得来。如果只是单纯复制这些参数,一旦交易实际上链的位置和时间发生改变,就很可能导致交易替换失败。DeFi攻击种类多,各种项目也缺乏统一的标准,很难对攻击交易的语义进行准确的分析和定位,从而使得攻击交易阻断很难实现。
4)阻断成本问题
在以太坊网络中,每笔交易都需要根据其计算资源的消耗支付对应交易费。若阻断交易上链但没有成功阻断攻击,仍需要支付高昂的交易费成本。
发明内容
当用户向以太坊区块链提交一笔交易时,需要首先将交易发送至特定全节点,再由该节点将交易广播至全网,收到交易的区块生产者会将交易打包在下一个区块中,从而该交易得以“上链”。因而交易从被广播到上链会有数秒的时间延迟。为减少DeFi攻击造成的损失,我们可以利用这数秒的时间窗口构建自己的攻击交易,抢先于攻击者上链,从而实现对攻击交易的阻断。
基于上述想法,本发明提供了一种针对智能合约漏洞攻击的交易阻断方法和装置,通过分析交易日志数据,定位攻击最终获利地址。通过对智能合约部署代码的替换修改获利地址并绕过权限控制,以自动化利用攻击者原有合约实现快速攻击复现和获利转移。最终利用高交易费使得构建的替代交易抢先于原交易上链,实现攻击交易的阻断,减少智能合约漏洞攻击造成的损失。具体技术方案如下:
本发明公开了一种针对智能合约漏洞攻击的交易阻断方法,
接收区块链节点提供的内存池中的攻击交易;
提取攻击交易中的日志信息,过滤出其中的转账事件;
根据转账事件建立交易资金流转表,定位最终资金流入地址为攻击获利地址;
获取攻击交易所调用智能合约的合约创建信息;
根据所获取的合约创建信息,替换合约部署代码及部署参数中的地址信息;
使用替换后的合约创建信息,构建新的合约部署交易和调用交易;
将新的合约部署交易和调用交易提交区块链节点,获取其执行结果;
若执行结果显示获利已转移至替换后的地址,则向区块链节点广播构建后的新的合约部署交易和调用交易。
作为进一步的改进,本发明所述的转账事件包括通过交易Value域分析得出的基本资产转账和通过分析ERC-20资产特定Topic的转账事件得出的ERC-20资产转账。
作为进一步的改进,本发明所述的交易资金流转表的构建方法为遍历交易中所有的转账记录,将每笔转账中转出者的亏损计入,转入者的盈利计入;交易资金流转表的内容为交易中涉及到的各个地址的盈亏信息。
作为进一步的改进,本发明所述的定位最终资金流入地址的方法为从交易资金流转表中选择出一个或多个最终有资产流入的地址。
作为进一步的改进,本发明所述的合约创建信息包括合约创建时的部署代码及对应的部署参数。
作为进一步的改进,本发明替换合约创建信息的目的是绕开合约调用权限控制并更改攻击获利地址。需被替换的地址为合约中或交易调用参数中的攻击发起者地址及攻击获利者地址。
作为进一步的改进,本发明所述的替换的主要方法是对合约创建信息中的合约部署代码,即合约字节码中操作码涉及的地址信息进行替换,同时也要对合约部署参数中操作码涉及的地址信息进行替换。
作为进一步的改进,本发明所述的构建的新的合约部署交易和调用交易使用了替换后的合约创建信息,包括合约部署交易和合约调用交易。
作为进一步的改进,本发明所述的构建的新的合约部署交易和调用交易使用大于或等于原有交易的汽油消耗限制,使用大于原有交易的交易费价格。
作为进一步的改进,本发明对于从区块链节点获取到的新的合约部署交易和调用交易的执行结果,要重新检查其日志,构建交易资金流转表,确认替换后的新地址是否在流转表中为获利地址。
本发明还公开了一种针对智能合约漏洞攻击的交易阻断装置,包括:
通信单元,用于和区块链节点通信,接收待处理的攻击交易及其执行结果,获取合约创建信息,发送已经构建完毕的新的合约部署交易和调用交易;
流转表构建单元,用于提取交易日志信息,过滤转账事件,并构建交易的资金流转表;
地址确定单元,用于根据构建的资金流转表,确定最终的交易获利地址;
合约替换单元,用于根据获取的合约创建信息,替换合约部署代码及部署参数中的地址信息,构建新的合约创建信息;
交易构建单元,用于根据构建的合约创建信息,构建新的合约部署交易和调用交易。
本发明的有益效果如下:
(1)提出了能有效解决分布式系统中防御部署问题的方案
本发明利用以太坊共识协议中“竞价排序”的交易排序特点,提出了通过在交易从被广播到上链的数秒时间窗口,广播更高交易费价格的阻断交易,以实现在以太坊等分布式系统中的攻击阻断部署的方案。该方案遵循以太坊共识协议,且可以有效解决传统安全领域中的集中部署方案不适用于分布式系统的问题。
(2)有效利用了短暂时间窗口
本发明通过直接利用原有攻击者的攻击合约,实现了对阻断交易对快速构建,能有效利用交易从被广播到上链的数秒时间窗口。
(3)提出了一种有效的自动化交易替换策略
本发明中,通过替换修改攻击者原有合约中的权限控制及获利地址,实现了对攻击合约中攻击逻辑的直接利用,无需对攻击交易中的具体逻辑进行识别,避免了攻击逻辑识别不准确,进而无法实现对复杂攻击行为阻断的问题。
(4)有效降低了攻击阻断所需的成本
在本发明中,正式发送新的阻断交易前,对获利地址是否转移进行了链下的提前验证,避免了获利转移失败导致的资金损失问题。
附图说明
图1是本发明中交易阻断方法的流程示意图;
图2是某笔交易中资产转移情况的示意图;
图3是本发明中交易阻断装置的设计示意图;
具体实施方式
本发明记载一种针对智能合约攻击的交易阻断方法,利用攻击者原有的攻击合约,实现对攻击交易的有效阻断。如图1所示,包含以下步骤:
步骤1,接收已被分类的攻击交易。
步骤2,提取所述交易中的日志信息,过滤出其中的转账事件。
字段 | 用途 |
From | 交易发起者 |
To | 交易目标地址 |
Nonce | 该交易是发起者的第几个交易,防止重放 |
GasPrice | 发起者最高愿意支付的单位GAS价格 |
GasLimit | 交易最高可以消耗的GAS数量 |
Value | 交易转移的Ether数量,单位Wei |
ChainID | 交易所在的区块链ID,防止重放 |
Data | 交易的调用参数 |
以太坊交易的基本结构如上表所示,包含交易的发起者、目标地址、调用参数、转移Ether数目等基本信息,还包含交易的交易费限制、交易费价格等额外信息。因而Ether的转移可以很容易通过交易的Value字段获取到。
但在以太坊区块链中,还有另一种非常流行的资产标准,即ERC-20资产标准。如上图所示,ERC-20资产标准通过定义包括转账、查询余额、批准等功能在内的一系列接口函数,通过智能合约记录状态,实现了链上的自定义资产。统一的标准使得兼容ERC-20标准的资产都可以使用统一的代码进行操作。借助于以太坊网络的安全性,任何以ERC-20标准运行的同质化资产的安全性都可以得到保障。与传统的自建公链相比,ERC-20资产标准极大降低了资产运行的门槛。
为了能准确获取一笔交易中ERC-20资产的转账情况,需要使用到交易执行后产生的收据。由于执行收据中不会保存交易执行过程中产生的调用信息,为了便于链下程序获取合约执行的结果和状态,交易的收据中会保存智能合约产生的所有日志信息。在ERC-20资产标准中,定义了如上图所示的转账和批准两种日志信息。
其中的转账日志信息可以有效确定一笔交易中的ERC-20资产转账情况。但在实际的交易收据中,不会记录日志的名称和参数类型,只能依靠日志的Topic进行定位。日志的Topic是根据日志的名称和参数类型计算出的哈希值,具有唯一性,因而我们需要过滤出该交易中Topic为0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef的事件,即为交易中所有的转账记录。
步骤3,根据所述转账事件建立交易资金流转表,定位最终资金流入地址为攻击获利地址。
为详细介绍交易资金流转表的构建,下面根据附图和优选实施例详细描述应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
以附图2中的交易为例,其实际完成的转账操作为A地址将10个AAA资产转移到B地址,B地址将4个AAA资产转移到C地址,则根据各地址在交易完成后的盈亏,构建交易资金流转表如表1所示。
地址 | 资产 | 盈亏 |
A | AAA | -10 |
B | AAA | +6 |
C | AAA | +4 |
表1
则在该笔交易中,最终资金流入地址为B地址和C地址。
步骤4,获取攻击交易所调用智能合约的创建信息,所述创建信息包括合约创建时的部署代码及对应的部署参数。
步骤5,根据所获取的合约创建信息,替换合约部署代码及部署参数中的地址信息,以绕开合约调用权限控制并更改攻击获利地址。
为防止他人直接使用已部署或未部署的合约字节码,攻击者一般会在合约中记录允许调用合约的调用者地址,若调用者地址和获利地址不一致的,还会记录对应的获利地址,因而将原合约创建信息中的这些地址进行替换,即可达到绕开合约权限控制并转移攻击获利的目的。
合约中记录数据一般由两种方式,即在字节码中硬编码地址和在合约状态中存储地址,针对这两种不同的情况,本发明提出了两种不同的方法来进行替换。
对于在字节码中硬编码地址的情况。合约在执行时获取到的EVM操作码数据中即包含了对应的地址信息。因而该地址会以明文出现在对应的EVM指令中。合约创建信息中的合约部署代码,即合约字节码包含了合约中所有可能执行的EVM指令,因而对于在字节码中硬编码地址的情况,只需要将字节码中所有需替换的地址替换为新地址即可。
对于在合约状态中存储地址的情况。
以太坊允许智能合约以键值对的形式存储合约状态数据,每个键值对允许使用一个32字节的键对应一个32字节数据。在常用的智能合约编程语言Solidity中,链上存储一个变量的实质就是将其值拆分或扩充为一个或多个键值对进行存储。
一个常见的具备权限控制的攻击合约如上图所示,其状态中存储了合约所有者地址,并在攻击函数被触发前对当前调用者和此前存储的合约所有者是否一致进行对比,若不一致则回滚交易。
当该攻击合约通过编译器进行编译时,针对owner变量的初始化赋值会被编译器自动转换为部署参数中的一部分。在EVM中,使用SSTORE操作码进行状态的存储,因而初始化赋值会被转换为SSTORE指令。SSTORE操作码接收两个参数,其中第一个参数为键,此处由于是合约中的第一个变量,因而键会被记为0x0,而值即为我们需要替换的合约所有者地址。为替换合约所有者信息,我们需要将获取到的合约部署参数中的攻击交易调用者地址及获利地址均替换为受控制的新地址,即可实现对在合约状态中存储数据的修改。
除了该攻击合约中的在合约代码中内置所有者地址,攻击者还可以将所有者地址作为构造函数参数,并在合约创建时传入。但通过这样方式传入的所有者地址同样会出现在合约部署参数中,可以使用上述方法进行有效替代。
步骤6,使用所述替换后的合约创建信息,构建新的合约部署交易和调用交易,所述新交易需使用高于原有攻击交易的交易费用。
通过替换后的合约部署信息,即部署参数和合约源代码,拼接可得到新的合约部署数据。在以太坊网络中,目的地址为空的交易被定义为合约部署交易。使用新的合约部署数据构建目的地址为空的交易即可得到新的合约部署交易。
由于获利地址和控制者地址同样可能在合约调用交易的交易数据中出现,即作为参数传递给攻击函数,因而对于合约调用交易的交易数据同样需要进行替换后,方可用于构造新的合约调用交易。
根据以太坊网络共识协议,区块生产者在区块中排序交易时,一般按照交易费价格(Gas Price)从高到低排序。在区块中排序在前的交易会优先执行,因而排序在后的交易可能受到排序在前交易的状态影响。由于攻击交易从广播到上链具备一定时间间隔,因而在该时间段内广播到交易均可能和攻击交易在同一区块内被打包。若交易费价格高于原始攻击交易,替代交易的排序就会在原始攻击交易前,从而实现对原始攻击交易的有效阻断。
步骤7,将所述新交易提交区块链节点,获取其执行结果,确认执行结果中攻击获利地址已经转移为新地址。
将构建的新交易重新提交给区块链节点,得到交易执行后的收据信息。根据步骤3所述的方法重新构建交易资金流转表,若替换后的新地址在交易资金流转表中的获利为正,则认为攻击获利已经得到有效转移。
步骤8,向区块链节点广播所述构建后的新交易。
本发明还包含了一种针对智能合约漏洞攻击的交易阻断装置。如附图3所示,其主要单元如下:
通信单元,用于和区块链节点通信,接收待处理的攻击交易及其执行结果,获取合约创建信息,发送已经构建完毕的新交易。
通信单元使用WebSocket协议与区块链节点通信,使用该协议可以保持通信单元与区块链节点的长连接,保证交易推送的实时性。区块链节点通过协议将当前内存池中交易的基本信息、执行产生的收据等推送到通信单元,再由通信单元调用流转表构建单元进行进一步处理。通信单元还支持通过HTTP协议与公共区块链节点进行通信,使用公共区块链节点提供的RPC接口进行交易提交和基本状态获取。
流转表构建单元,用于提取交易日志信息,过滤转账事件,并构建交易的资金流转表。
流转表构建单元使用多线程方式运行,以提高交易处理效率。其从通信单元接收待处理交易,并对交易数据进行反序列化解析。解析的交易基本结构如上图所示。在该基本结构中,Logs字段记录了交易执行中产生的所有日志信息,通过从Logs字段中筛选ERC-20转账对应的事件,过滤出所有的转账数据。
得到所有的转账信息后,对其遍历,将每笔转账中转出者的亏损计入,转入者的盈利计入,最终得到包含每个地址盈亏信息的交易资金流转表。
地址确定单元,用于根据所述构建的资金流转表,确定最终的交易获利地址。
地址确定单元遍历交易资金流转表,将其中有资产盈利的地址标记。若仅有单个获利地址,则需替换获利地址为该地址。若有多个获利地址,则需替换获利地址为多个地址。
合约替换单元,用于根据所述获取的合约创建信息,替换合约部署代码及部署参数中的地址信息,构建新的合约创建信息。
合约替换单元从存档节点或数据库查询对应合约地址的合约创建信息,并根据上述方法中的替换策略对合约创建信息中的部署代码及部署参数进行替换,得到新的合约创建信息。
交易构建单元,用于根据所述构建的合约创建信息,构建新的合约部署交易和调用交易。
交易构建单元负责进行新交易的构建和签名。合约替换单元产生的交易数据需要和交易费限制及交易费价格等结合到一起,形成一笔完整的交易。由于本发明中的方法直接使用了攻击合约中的逻辑,因而交易费消耗也和原有合约基本一致,因此可以将交易费限制和原有合约设置得一致或稍放大。为获得优先上链权,交易费价格需要比原始交易高。为提高成功率,一般选择比当前区块链节点内存池中最高价格更高的交易费价格进行广播。
确定结构化交易数据后,交易构建单元会使用RLP编码对交易数据进行序列化,得到交易原始数据,并提交给区块链节点。
为验证本发明记载技术方案在实际应用中的所达到的技术效果,发明人进行人如下实验。
发明人选取了2022年1月DeFi总锁仓量分别为第一和第二的公链以太坊(ETH)和币安智能链(BSC)进行阻断装置部署。其中,ETH链使用工作量证明(PoW)的共识机制,出块间隔大约为13秒。BSC链使用权益证明(PoS)的共识机制,出块间隔大约为3秒。由于BSC和ETH均是基于以太坊虚拟机(EVM)的智能合约平台链,链上生态相似,仅有共识机制不同,因而均可使用本发明提出的阻断方法与装置。
自2022年1月部署阻断装置以来,本发明已经成功阻断7起链上攻击事件,阻断交易获利超过400万美金。上述获利已经全部归还给原项目方或用户。7起成功阻断案例详情如表2所示。
表2
目前,系统处理一笔交易的平均时间为242965ns,即每秒可以处理约4665笔交易。按照目前吞吐量最高的币安智能链计算,其在拥堵时每个区块约可打包700笔交易,区块时间间隔3s,平均每秒处理233笔交易,因而本发明中阻断装置的处理时间完全可以满足当前区块链性能的需要。
综上所述,本发明中1)阻断方法所需运算量不大,可以在短时间内生成替代交易,有效利用攻击交易从广播到上链的短暂时间窗口2)通过对攻击者原有合约的获利地址及权限控制地址进行替换,绕过了攻击者原有合约中的权限控制和获利设置,能有效利用原有攻击逻辑,提升替代交易构建的成功率,解决了攻击阻断中对攻击逻辑分析困难的问题3)通过链下预先校验替换交易的执行结果,确保上链交易能实现获利转移,避免不必要的经济损失。
本领域普通技术人员可以理解,以上所述仅为发明的优选实例而已,并不用于限制发明,尽管参照前述实例对发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在发明的精神和原则之内,所做的修改、等同替换等均应包含在发明的保护范围之内。
Claims (10)
1.一种针对智能合约漏洞攻击的交易阻断方法,其特征在于,
接收区块链节点提供的内存池中的攻击交易;
提取所述攻击交易中的日志信息,过滤出其中的转账事件;
根据所述转账事件建立交易资金流转表,定位最终资金流入地址为攻击获利地址;
获取攻击交易所调用智能合约的合约创建信息;
根据所获取的合约创建信息,替换合约部署代码及部署参数中的地址信息;
使用所述替换后的合约创建信息,构建新的合约部署交易和调用交易;
将所述新的合约部署交易和调用交易提交区块链节点,获取其执行结果;
若执行结果显示获利已转移至替换后的地址,则向区块链节点广播所述构建后的新的合约部署交易和调用交易。
2.根据权利要求1所述的针对智能合约漏洞攻击的交易阻断方法,其特征在于,所述的转账事件包括通过交易Value域分析得出的基本资产转账和通过分析ERC-20标准中特定Topic的转账事件得出的ERC-20资产转账。
3.根据权利要求1所述的针对智能合约漏洞攻击的交易阻断方法,其特征在于,所述的交易资金流转表的构建方法为遍历交易中所有的转账记录,将每笔转账中转出者的亏损计入,转入者的盈利计入;所述的交易资金流转表的内容为交易中涉及到的各个地址的盈亏信息。
4.根据权利要求1所述的针对智能合约漏洞攻击的交易阻断方法,其特征在于,定位最终资金流入地址的方法为从交易资金流转表中选择出一个或多个最终有资产流入的地址。
5.根据权利要求1所述的针对智能合约漏洞攻击的交易阻断方法,其特征在于,所述的合约创建信息包括合约创建时的部署代码及对应的部署参数。
6.根据权利要求1所述的针对智能合约漏洞攻击的交易阻断方法,其特征在于,所述的替换合约创建信息的目的是绕开合约调用权限控制并更改攻击获利地址。需被替换的地址为合约中或交易调用参数中的攻击发起者地址及攻击获利者地址。
7.根据权利要求6所述的针对智能合约漏洞攻击的交易阻断方法,其特征在于,所述的替换的主要方法是对合约创建信息中的合约部署代码,即合约字节码中操作码涉及的地址信息进行替换,同时也要对合约部署参数中操作码涉及的地址信息进行替换。
8.根据权利要求1所述的针对智能合约漏洞攻击的交易阻断方法,其特征在于,构建的新的合约部署交易和调用交易使用了替换后的合约创建信息,包括合约部署交易和合约调用交易,且交易均使用大于或等于原有交易的资源消耗限制以及大于原有交易的交易费价格。
9.根据权利要求1所述的针对智能合约漏洞攻击的交易阻断方法,其特征在于,对于从区块链节点获取到的新的合约部署交易和调用交易的执行结果,要重新检查其日志,构建交易资金流转表,确认替换后的新地址是否在流转表中为获利地址。
10.一种针对智能合约漏洞攻击的交易阻断装置,其特征在于,
通信单元,用于和区块链节点通信,接收待处理的攻击交易及其执行结果,获取合约创建信息,发送已经构建完毕的新的合约部署交易和调用交易;
流转表构建单元,用于提取交易日志信息,过滤转账事件,并构建交易的资金流转表;
地址确定单元,用于根据所述构建的资金流转表,确定最终的交易获利地址;
合约替换单元,用于根据所述获取的合约创建信息,替换合约部署代码及部署参数中的地址信息,构建新的合约创建信息;
交易构建单元,用于根据所述构建的合约创建信息,构建新的合约部署交易和调用交易。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211113706.XA CN115442380A (zh) | 2022-09-14 | 2022-09-14 | 针对智能合约漏洞攻击的交易阻断方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211113706.XA CN115442380A (zh) | 2022-09-14 | 2022-09-14 | 针对智能合约漏洞攻击的交易阻断方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115442380A true CN115442380A (zh) | 2022-12-06 |
Family
ID=84246488
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211113706.XA Pending CN115442380A (zh) | 2022-09-14 | 2022-09-14 | 针对智能合约漏洞攻击的交易阻断方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115442380A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116663012A (zh) * | 2023-05-31 | 2023-08-29 | 烟台大学 | 一种跨合约漏洞的检测方法、系统和设备 |
CN116743499A (zh) * | 2023-08-09 | 2023-09-12 | 杭州安碣信息安全科技有限公司 | 一种针对智能合约攻击的模仿交易生成方法 |
-
2022
- 2022-09-14 CN CN202211113706.XA patent/CN115442380A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116663012A (zh) * | 2023-05-31 | 2023-08-29 | 烟台大学 | 一种跨合约漏洞的检测方法、系统和设备 |
CN116663012B (zh) * | 2023-05-31 | 2023-11-03 | 烟台大学 | 一种跨合约漏洞的检测方法、系统和设备 |
CN116743499A (zh) * | 2023-08-09 | 2023-09-12 | 杭州安碣信息安全科技有限公司 | 一种针对智能合约攻击的模仿交易生成方法 |
CN116743499B (zh) * | 2023-08-09 | 2023-10-27 | 杭州安碣信息安全科技有限公司 | 一种针对智能合约攻击的模仿交易生成方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Saad et al. | Exploring the attack surface of blockchain: A systematic overview | |
Saad et al. | Exploring the attack surface of blockchain: A comprehensive survey | |
Zhou et al. | Sok: Decentralized finance (defi) attacks | |
Chauhan et al. | Blockchain and scalability | |
US11188977B2 (en) | Method for creating commodity assets from unrefined commodity reserves utilizing blockchain and distributed ledger technology | |
CN115442380A (zh) | 针对智能合约漏洞攻击的交易阻断方法和装置 | |
CN108881187A (zh) | 一种适用于许可链场景的跨链数据传递方法及设备 | |
Kipchuk et al. | Assessing Approaches of IT Infrastructure Audit | |
CN108009818B (zh) | 一种基于分布式网络的线上支付方法及系统 | |
Piet et al. | Extracting godl [sic] from the salt mines: Ethereum miners extracting value | |
CN111738724B (zh) | 跨境资源转移真实性审核方法及装置、电子设备 | |
CN111639125A (zh) | 基于区块链的资源流通方法及装置 | |
Lee et al. | Who Spent My {EOS}? On the ({In) Security} of Resource Management of {EOS. IO} | |
CN111861440A (zh) | 基于区块链网络的银行转账方法及系统 | |
CN111667270A (zh) | 基于区域的数字货币使用方法、装置及电子设备 | |
Hrga et al. | Technical analysis of an initial coin offering | |
Qin et al. | The blockchain imitation game | |
CN111667271A (zh) | 基于区域与时间的数字货币使用方法、装置及电子设备 | |
Garcia Bringas et al. | BlockChain platforms in financial services: current perspective | |
Li et al. | Protect your smart contract against unfair payment | |
Ainsworth et al. | A VATCoin Solution to MTIC Fraud: Past Efforts, Present Technology, and the EU’s 2017 Proposal | |
Wüst et al. | Bitcontracts: Supporting smart contracts in legacy blockchains | |
US20230061813A1 (en) | Systems and methods for programmable payments enabled by triggers based on mutual validation | |
Hefny et al. | Open Banking API Framework to Improve the Online Transaction between Local Banks in Egypt Using Blockchain Technology | |
Yu et al. | State synchronization in process-oriented chaincode |
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 |