CN116132142B - 一种区块链攻击拦截方法及装置 - Google Patents
一种区块链攻击拦截方法及装置 Download PDFInfo
- Publication number
- CN116132142B CN116132142B CN202211739360.4A CN202211739360A CN116132142B CN 116132142 B CN116132142 B CN 116132142B CN 202211739360 A CN202211739360 A CN 202211739360A CN 116132142 B CN116132142 B CN 116132142B
- Authority
- CN
- China
- Prior art keywords
- transaction
- executed
- account
- interception
- attack
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 52
- 238000012545 processing Methods 0.000 claims description 27
- 238000004088 simulation Methods 0.000 claims description 19
- 239000000446 fuel Substances 0.000 claims description 16
- 238000003860 storage Methods 0.000 claims description 3
- 238000012544 monitoring process Methods 0.000 abstract description 19
- 238000010586 diagram Methods 0.000 description 9
- 238000004519 manufacturing process Methods 0.000 description 6
- 238000004590 computer program Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000004075 alteration Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 150000001875 compounds Chemical class 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005242 forging Methods 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 238000007639 printing Methods 0.000 description 1
- NQLVQOSNDJXLKG-UHFFFAOYSA-N prosulfocarb Chemical compound CCCN(CCC)C(=O)SCC1=CC=CC=C1 NQLVQOSNDJXLKG-UHFFFAOYSA-N 0.000 description 1
- 238000004080 punching Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
Classifications
-
- 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
-
- 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/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
技术领域
本发明实施例涉及区块链技术领域,尤其涉及一种区块链攻击拦截方法及装置。
背景技术
在区块链电子票据服务系统中,由于电子票据的特殊性,因此区块链电子票据从开票、打印、收票、报销、红冲等状态税局作为监管部门需要追溯整个的流程,对于监管恶意开票企业的需求,也需要追溯发票的全流程信息来更进一步对开票企业在发票的各个阶段中的对应的行为进行挖掘分析。但是,在目前的查询区块链上的数据的方案中,仅能获得的最新的区块链状态,而对区块链中的区块链状态变化情况是没有办法获取的,进而无法直接追溯区块中历史交易记录。
近几年,区块链技术应用范围日益增多,覆盖金融领域、公共服务领域、信息安全领域、物联网领域、供应链领域、汽车领域等,应用场景包含数字货币、数字藏品、金融资产、数字政务、存证防伪数据服领域等。区块链技术具有不可伪造、不可虚构、不可篡改的特性,较好的解决了传统信息技术领域的伪造身份攻击,但由于区块链还具有匿名性、去中心化等特点,一旦出现用户资产被盗、平台被攻击则会出现不可挽回的损失。
例如,近几年发生多起大金额的区块链攻击事件,攻击者使用DEFI应用如AAVE、UNISWAP、COMPOUND等服务闪电贷功能进行攻击,由于攻击者为保护自身安全性,使用tornado cash等区块链混币服务进行匿名转账获得公链基础攻击代币,并利用该代币作为交易手续费发起攻击。目前基于对多个公链如Ethereum、Solana、BSC、Avalance、Fantom的常见攻击事件的研究,提出的区块链攻击拦截的方法,主要是聚焦于特定场景下的攻击预防或者事后定位的技术方案,对于上述攻击者实施的区块链应用攻击案例,并不能实现有效检测攻击以及实时拦截。
发明内容
本发明实施例提供一种区块链攻击拦截方法及装置,用以有效监测区块链应用攻击并实现实时拦截。
第一方面,本发明实施例提供一种区块链攻击拦截方法,包括:
获取区块链节点中的待执行交易的信息,所述待执行交易为未打包进区块的交易,所述待执行交易的信息包括所述待执行交易的来源账户;
根据所述待执行交易的信息,确定所述待执行交易为疑似攻击交易;
根据所述待执行交易的信息,生成模拟交易,其中,所述模拟交易中的来源账户替换为模拟账户;
将所述模拟交易发送至模拟节点上部署的第一目标合约,并获取所述模拟交易对应的第一执行结果,所述第一目标合约为修改所述来源账户创建的合约中的来源账户得到;
若所述第一执行结果为所述模拟账户的代币增长量大于阈值,则确定所述待执行交易为真实攻击交易;
生成拦截交易,并将所述拦截交易发送至所述区块链节点,所述拦截交易的执行排序先于所述待执行交易的执行顺序。
上述技术方案中,通过监控区块链节点上未打包进区块的交易,并确定是否为攻击交易,由于在交易被打包进区块之前会有一段时间的时延,可以利用这段时延进行交易拦截,具体来说,针对攻击交易进行模拟拦截,如果模拟拦截成功,继续在区块链节点上发起拦截交易,由于拦截交易的执行顺序先于所述待执行交易的执行顺序,会被矿工优先打包进区块,从而实现拦截攻击交易。
可选的,所述根据所述待执行交易的信息,确定所述待执行交易为疑似攻击交易,包括:若待执行交易的来源账户与规则数据库中的关键来源账户一致且所述待执行交易创建的合约与所述规则数据库中的关键目标合约一致,则确定所述待执行交易为疑似攻击交易;或者,若所述待执行交易的交易输入包括预设名称,则确定所述待执行交易为疑似攻击交易。
可选的,该方法还包括:若所述待执行交易的来源账户为新账户、且所述来源账户收到来自防溯源应用的代币,则将所述来源账户标记为关键来源账户,存储于所述规则数据库。
可选的,该方法还包括:若所述区块链节点存在所述关键来源账户创建的合约,则将所述关键来源账户创建的合约标记为关键目标合约,存储于所述规则数据库。
可选的,该方法还包括:周期性读取所述规则数据库中的关键目标合约;若确定所述关键目标合约已开源,则将已开源的关键目标合约从所述规则数据库中删除。
可选的,所述区块链节点为区块链系统中的公共节点,或者,所述区块链节点为已加入所述区块链系统的私有节点。
可选的,该方法还包括:若所述第一执行结果为所述模拟账户的代币增长量大于阈值,则发出第一告警信息,所述第一告警信息用于提示发生攻击交易。
可选的,所述将所述拦截交易发送至所述区块链节点上部署的第二目标合约之后,还包括:获取所述拦截交易对应的第二执行结果;若所述第二执行结果为所述拦截账户的代币增长量大于所述阈值,则发出第二告警信息,所述第二告警信息用于提示攻击拦截成功;或者,若所述第二执行结果为所述拦截账户的代币增长量小于或等于所述阈值,则发出第三告警信息,所述第三告警信息用于提示攻击拦截失败。
可选的,所述生成拦截交易,并将所述拦截交易发送至所述区块链节点,包括:根据所述模拟交易的信息,生成拦截交易;其中,所述拦截交易中的来源账户替换为拦截账户;所述拦截交易的燃料单价大于所述攻击交易的燃料单价;将所述拦截交易发送至所述区块链节点上部署的第二目标合约,所述第二目标合约为将所述来源账户创建的合约中的来源账户修改为拦截账户得到。
可选的,该方法还包括:若待执行交易的来源账户与所述规则数据库中的关键来源账户不一致且所述待执行交易的交易输入不包括预设名称,或者,所述待执行交易创建的合约与所述规则数据库中的关键目标合约不一致且所述待执行交易的交易输入不包括预设名称,则确定所述待执行交易为正常交易。
可选的,该方法还包括:若所述第一执行结果包括所述模拟账户的代币增长量小于或等于所述阈值,则确定所述待执行交易为正常交易。
第二方面,本发明实施例提供一种区块链攻击拦截装置,包括:
获取单元,用于获取区块链节点中的待执行交易的信息,所述待执行交易为未打包进区块的交易,所述待执行交易的信息包括所述待执行交易的来源账户;
处理单元,用于根据所述待执行交易的信息,确定所述待执行交易为疑似攻击交易;根据所述待执行交易的信息,生成模拟交易,其中,所述模拟交易中的来源账户替换为模拟账户;将所述模拟交易发送至模拟节点上部署的第一目标合约,并获取所述模拟交易对应的第一执行结果,所述第一目标合约为修改所述来源账户创建的合约中的来源账户得到;若所述第一执行结果为所述模拟账户的代币增长量大于阈值,则确定所述待执行交易为真实攻击交易;生成拦截交易,并将所述拦截交易发送至所述区块链节点,所述拦截交易的执行顺序先于所述待执行交易的执行顺序。
可选的,所述处理单元具体用于:若待执行交易的来源账户与规则数据库中的关键来源账户一致且所述待执行交易创建的合约与所述规则数据库中的关键目标合约一致,则确定所述待执行交易为疑似攻击交易;或者,若所述待执行交易的交易输入包括预设名称,则确定所述待执行交易为疑似攻击交易。
可选的,所述处理单元还用于:若所述待执行交易的来源账户为新账户、且所述来源账户收到来自防溯源应用的代币,则将所述来源账户标记为关键来源账户,存储于所述规则数据库。
可选的,所述处理单元还用于:若所述区块链节点存在所述关键来源账户创建的合约,则将所述关键来源账户创建的合约标记为关键目标合约,存储于所述规则数据库。
可选的,所述处理单元还用于:周期性读取所述规则数据库中的关键目标合约;若确定所述关键目标合约已开源,则将已开源的关键目标合约从所述规则数据库中删除。
可选的,所述区块链节点为区块链系统中的公共节点,或者,所述区块链节点为已加入所述区块链系统的私有节点。
可选的,所述处理单元还用于:若所述第一执行结果为所述模拟账户的代币增长量大于阈值,则发出第一告警信息,所述第一告警信息用于提示发生攻击交易。
可选的,所述获取单元还用于:获取所述拦截交易对应的第二执行结果;
所述处理单元还用于:若所述第二执行结果为所述拦截账户的代币增长量大于所述阈值,则发出第二告警信息,所述第二告警信息用于提示攻击拦截成功;或者,若所述第二执行结果为所述拦截账户的代币增长量小于或等于所述阈值,则发出第三告警信息,所述第三告警信息用于提示攻击拦截失败。
可选的,所述处理单元具体用于:根据所述模拟交易的信息,生成拦截交易;其中,所述拦截交易中的来源账户替换为拦截账户;所述拦截交易的燃料单价大于所述攻击交易的燃料单价;将所述拦截交易发送至所述区块链节点上部署的第二目标合约,所述第二目标合约为将所述来源账户创建的合约中的来源账户修改为拦截账户得到。
可选的,所述处理单元还用于:若待执行交易的来源账户与所述规则数据库中的关键来源账户不一致且所述待执行交易的交易输入不包括预设名称,或者,所述待执行交易创建的合约与所述规则数据库中的关键目标合约不一致且所述待执行交易的交易输入不包括预设名称,则确定所述待执行交易为正常交易。
可选的,所述处理单元还用于:若所述第一执行结果包括所述模拟账户的代币增长量小于或等于所述阈值,则确定所述待执行交易为正常交易。
第三方面,本发明实施例还提供一种计算设备,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行上述区块链攻击拦截方法。
第四方面,本发明实施例还提供一种计算机可读非易失性存储介质,包括计算机可读指令,当计算机读取并执行所述计算机可读指令时,使得计算机执行上述区块链攻击拦截方法。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种系统架构的示意图;
图2为本发明实施例提供的一种区块链攻击拦截方法的流程示意图;
图3为本发明实施例提供的一种区块链攻击拦截装置的示意图;
图4为本发明实施例提供的存池监控模块执行的方法流程示意图;
图5为本发明实施例提供的规则数据生产模块执行的方法流程示意图;
图6为本发明实施例提供的攻击监测模块执行的方法流程示意图;
图7为本发明实施例提供的攻击模拟模块执行的方法流程示意图;
图8为本发明实施例提供的攻击拦截模块执行的方法流程示意图;
图9为本发明实施例提供的一种区块链攻击拦截装置的结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
图1示例性的示出了本发明实施例所适用的一种系统架构,该系统架构可以包括多个客户端100、区块链系统200以及区块链攻击拦截装置300。
其中,客户端100用于与区块链系统200进行通信,将交易数据发送给区块链系统200进行处理并上链。
区块链系统200由多个区块链节点210组成,与客户端100进行通信,用于处理和存储客户端100发送的交易数据。该多个区块链节点210可以相互连接通信,每个区块链节点210中包括多个区块,区块用于存储客户端100发送的交易数据。
区块链攻击拦截装置300与区块链系统200中的至少一个区块链节点连接,区块链攻击拦截装置300可以监控与之连接的区块链节点的内存池中的交易状态,例如未打包进区块的交易也可以称为等待(pending)交易。
区块链攻击拦截装置300还可以包括规则数据库310,在区块链攻击拦截装置300确定一个交易的该规则数据库310可以存储关键来源账户以及关键目标合约等信息。
可选的,该系统架构还可以包括区块链浏览器400,该区块链浏览器400是一种可以为用户提供区块链系统的数据信息的第三方应用。
需要说明的是,上述图1所示的结构仅是一种示例,本发明实施例对此不做限定。
基于上述描述,图2详细的示出了本发明实施例提供的一种区块链攻击拦截方法的流程,该流程可以由区块链攻击拦截装置执行。如图2所示,该流程具体包括:
步骤201,获取区块链节点中的待执行交易的信息。
该待执行交易为未打包进区块的交易,也可以称为pending交易。该待执行交易的信息可以包括待执行交易的来源账户。
可选的,该待执行交易的信息还可以包括来源账户、目标账户、主币数量(Value)、燃料单价(Gas Price)、Gas总数(Gas Limit)、交易输入(Input)等。
在步骤201中,该区块链节点可以为区块链系统中的公共节点,这样区块链攻击拦截装置直接与公共节点进行通信,以获取待执行交易的信息。
为进一步提升区块链攻击拦截装置与区块链节点的通讯速率和执行效率,本申请实施例中,可以自建区块链私有节点并加入区块链系统中,完成区块数据的同步及启动实时更新,这样区块链攻击拦截装置与区块链私有节点之间的通信不会有网络延迟。
步骤202,根据待执行交易的信息,确定待执行交易为疑似攻击交易。
本申请实施例中,可以通过以下方式一或方式二实现步骤202。
方式一,若待执行交易的来源账户与规则数据库中的关键来源账户一致且待执行交易创建的合约与规则数据库中的关键目标合约一致,则确定待执行交易为疑似攻击交易。
本申请实施例中在步骤202之前,可以在监控区块链节点上的所有待执行交易,针对每个待执行交易,若确定待执行交易的来源账户为新账户、且来源账户收到来自防溯源应用的代币,则将该待执行交易的来源账户标记为关键来源账户,并存储于规则数据库。该防溯源应用为可以防止溯源或者追踪到转入交易的账户的应用,例如龙卷风(tornadocash)等区块链混币服务应用。若区块链节点存在关键来源账户创建的合约,则将关键来源账户创建的合约标记为关键目标合约,存储于规则数据库。这样可以在规则数据库中存储所有关键来源账户以及关键目标合约,从而在找到与规则数据库中的关键来源账户以及关键目标合约匹配的pending交易时,将pending交易确定为疑似攻击交易,以便及时对该疑似攻击交易进行模拟。
可选的,还可以周期性读取规则数据库中的关键目标合约,检查该关键目标合约是否开源。用户在部署合约时,部署在区块链上的是编译后的代码,称为字节码,并将合约的源代码放在区块链浏览器上,所以区块链攻击拦截装置可以将关键目标合约的地址发送至区块链浏览器,以便查询区块链浏览器上是否有关键目标合约的源代码,若是,则说明该关键目标合约已开源;若否,则说明该关键目标合约未开源。区块链攻击拦截装置可以从区块链浏览器获取查询结果。
若查询结果为关键目标合约未开源,说明该待执行交易创建的合约是攻击合约的可能性比较大,则不删除规则数据库中的该关键目标合约。
若查询结果为关键目标合约已开源,说明该待执行交易创建的合约是攻击合约的可能性比较小,则可以将已开源的关键目标合约从规则数据库中删除。举例来说,以待执行交易A为例,该待执行交易A的来源账户B为关键来源账户,该来源账户B创建的合约C为关键来源合约,规则数据库存储有来源账户B以及合约C;若检查该合约C已开源,将合约C从规则数据库中删除,此时规则数据库人家包括来源账户B,这样在按照方式一进行匹配时,由于无法在规则数据库中匹配到关键目标合约,所以确定该待执行交易A不是攻击交易。
方式二,待执行交易的交易输入(Input)包括预设名称,则确定待执行交易为疑似攻击交易。该预设名称例如为攻击(Attack)。
在步骤202确定待执行交易为疑似攻击交易之后,继续执行步骤203。在其它一些实施例中,在获取待执行交易的信息之后,若确定待执行交易为正常交易,则不再继续执行步骤203~步骤206。
具体来说,若待执行交易的来源账户与规则数据库中的关键来源账户不一致且待执行交易的交易输入不包括预设名称,或者,待执行交易创建的合约与规则数据库中的关键目标合约不一致且待执行交易的交易输入不包括预设名称,则确定待执行交易为正常交易。
步骤203,根据待执行交易的信息,生成模拟交易,其中,模拟交易中的来源账户替换为模拟账户。
可选的,模拟交易的燃料单价大于待执行交易的燃料单价,这样可以提高该模拟交易的交易成功率,从而及时判断待执行交易是否为真实攻击交易。
步骤204,将模拟交易发送至模拟节点上部署的第一目标合约,并获取模拟交易对应的第一执行结果。
该第一目标合约是修改来源账户创建的合约中的来源账户为模拟账户得到。
具体来说,可以fork区块链节点上最新区块,例如区块A,在区块A分叉了一个新链,在区块A之前的数据是共享的,该新链上的数据与区块链主网上的数据不共享,即区块A之后的新链上所有数据都是模拟数据,这样可以对新链进行操作,不会对区块链主网上的数据造成影响。步骤204中的模拟交易在新链上执行,区块链主网上的其它节点不会收到该模拟交易,也就是说,模拟交易并不会在区块链主网上执行。
在步骤204中获取第一执行结果之后,判断第一执行结果包括模拟账户的代币增长量是否大于阈值,若是,则确定待执行交易为真实攻击交易,继续执行步骤205;若否,则确定待执行交易为正常交易,不再进行交易拦截,也就不需要生成拦截交易。
可选的,若第一执行结果为模拟账户的代币增长量大于阈值,则可以发出第一告警信息,第一告警信息用于提示发生攻击交易。本申请实施例涉及到的阈值可以根据实际需要进行设置,此处不作限制。
步骤205,若第一执行结果为模拟账户的代币增长量大于阈值,则确定待执行交易为真实攻击交易。
步骤206,生成拦截交易,并将拦截交易发送至区块链节点。
其中,拦截交易的执行顺序先于待执行交易的执行顺序。
下面提供三种可实现步骤206的可能的实施方式。
方式一,根据模拟交易的信息,生成拦截交易,然后,将拦截交易发送至区块链节点上部署的第二目标合约,第二目标合约是将来源账户创建的合约中的来源账户修改为拦截账户得到。
在步骤205中,根据模拟交易的信息,生成拦截交易可以通过以下方式实现:将拦截交易中的来源账户替换为拦截账户,将拦截交易的燃料单价设置为大于攻击交易的燃料单价,这样有助于提高拦截交易的成功率。
方式二,发送大量燃料单价高于攻击交易的拦截交易,以实现将攻击交易挤到下一区块被打包,由于链上数据发生变化,会导致攻击失败。
方式三,通过自建的私人节点,将内存池中燃料单价相同的交易重新进行排序,使得拦截交易排序先于攻击交易打包,从而实现拦截攻击交易。这种方式适用于拦截交易的燃料单价大于或等于攻击交易的场景。
本申请实施例中,通过监控区块链节点上未打包进区块的交易,并确定是否为攻击交易,由于在交易被打包进区块之前会有一段时间的时延,可以利用这段时延进行交易拦截,具体来说,针对攻击交易进行模拟拦截,如果模拟拦截成功,继续在区块链节点上发起拦截交易,由于拦截交易的执行顺序先于攻击交易的执行顺序,会被矿工优先打包进区块,从而实现拦截攻击交易。
可选的,在步骤206之后,还可以获取拦截交易对应的第二执行结果。
若第二执行结果为拦截账户的代币增长量大于阈值,则可以发出第二告警信息,第二告警信息用于提示攻击拦截成功。
若第二执行结果为拦截账户的代币增长量小于或等于阈值,则发出第三告警信息,第三告警信息用于提示攻击拦截失败。
为了更好地解释本申请实施例,下面结合区块链拦截装置的结构,进一步介绍区块链攻击拦截的具体实施例。
如图3所示,上述区块链攻击拦截装置300可以包括六个模块,分别为内存池监控模块301、规则数据生产模块302、攻击监测模块303、攻击模拟模块304、攻击拦截模块305,可选的,还可以包括报警模块306。
其中,内存池监控模块301可以实现对区块链上的交易监控。如图4所示,具体可以执行如下流程:
S401,自建区块链私有节点。
该私有节点加入区块链中,并同步区块链上的数据。
S402,监听私有节点的内存池。
S403,确定内存池中是否存在pending交易;若是,则执行S404;若否,则执行S402;
S404,获得pending交易;
S405,分别向规则数据生产模块302以及攻击监测模块303发送该pending交易的信息。
通过上述实施例,内存池监控模块301可以及时将监听到的pending交易发送给规则数据生产模块302以及攻击监测模块303,以便确定该pending交易是否为攻击交易。
如图5所示,规则数据生产模块302具体可以执行如下流程:
S500,持续等待内存池监控模块的输入信息,若接收到输入信息则进入S501,否则继续等待输入。
S501,对获得的pending交易的信息进行分析。
S502,判断pending交易的来源账户是否收到来自标记合约的转入交易;若是,则执行S503;若否,则执行S510。
该标记合约例如为tornado cash等区块链混币服务应用。
S503,将来源账户设置为关键来源账户并录入规则数据库。
S504,判断区块链节点是否存在关键来源账户创建的合约;若是,则执行S505;若否,则执行S510。
S505,标记为关键目标合约,并记录到规则数据库。
S506,定期读取规则数据库中的关键目标合约。
S507,获取合约地址并向区块浏览器查询目标合约是否开源。
S508,目标合约是否开源,若是,则执行S510;若否,则执行S509。
S509,删除规则数据库中该键目标合约。
S510,正常交易。
如图6所示,攻击监测模块303具体可以执行如下流程:
S601,持续等待内存池监控模块的输入信息,若接收到输入信息则进入S602,否则继续等待输入。
S602,对获得的pending交易的信息进行分析。
S603,判断pending交易是否命中规则数据库中的规则;若是,则执行S604;若否,则执行S601。
S604,确定pending交易为疑似攻击交易,向攻击模拟模块304发送pending交易的信息。
如图7所示,攻击模拟模块304具体可以执行如下流程:
S701,持续等待攻击监测模块的输入信息,若接收到输入信息则进入S702,否则继续等待输入。
S702,针对获取到的疑似攻击交易,重新组装模拟交易。
重新组装例如包括修改交易来源账户为本地模拟账户。
S703,fork私有节点最新区块成为模拟节点。
S704,发送模拟交易发送至模拟节点。
S705,检查本地模拟账户的token代币数量是否有显著增加;若是,则执行S706;若否,则继续执行S701。
其中,token主要包含当前主流代币或稳定币种,如ETH、USDT、BTC。
S706,确定pending交易为真实攻击交易,分别向攻击拦截模块305和报警模块306发送模拟交易信息。
如图8所示,攻击拦截模块305具体可以执行如下流程:
S801,持续等待攻击模拟模块的输入信息,若接收到输入信息则进入S802,否则继续等待输入。
S802,针对获取到的模拟交易,重新组装拦截交易。
重新组装例如包括修改本地模拟账户为拦截账户。
S803,发送拦截交易发送至区块链节点。
S804,检查拦截账户的token代币数量是否有显著增加;若是,则执行S805;若否,则继续执行S801。
S805,攻击交易拦截成功,向报警模块306发送拦截交易信息。
报警模块306持续等待攻击模拟模块、攻击拦截模块的输入信息,然后根据输入信息的来源,定制报警信息;例如输入信息来自攻击模拟模块304,提示第一告警信息,又例如,输入信息来自攻击拦截模块305,提示第一告警信息或第二告警信息。
基于相同的技术构思,图9示例性的示出了本发明实施例提供的一种区块链攻击拦截装置的结构,该装置可以执行区块链攻击拦截方法的流程。
如图9所示,该装置具体包括:
获取单元901,用于获取区块链节点中的待执行交易的信息,所述待执行交易为未打包进区块的交易,所述待执行交易的信息包括所述待执行交易的来源账户;
处理单元902,用于根据所述待执行交易的信息,确定所述待执行交易为疑似攻击交易;根据所述待执行交易的信息,生成模拟交易,其中,所述模拟交易中的来源账户替换为模拟账户;将所述模拟交易发送至模拟节点上部署的第一目标合约,并获取所述模拟交易对应的第一执行结果,所述第一目标合约为修改所述来源账户创建的合约中的来源账户得到;若所述第一执行结果为所述模拟账户的代币增长量大于阈值,则确定所述待执行交易为真实攻击交易;生成拦截交易,并将所述拦截交易发送至所述区块链节点,所述拦截交易的执行顺序先于所述待执行交易的执行顺序。
可选的,所述处理单元902具体用于:若待执行交易的来源账户与规则数据库中的关键来源账户一致且所述待执行交易创建的合约与所述规则数据库中的关键目标合约一致,则确定所述待执行交易为疑似攻击交易;或者,若所述待执行交易的交易输入包括预设名称,则确定所述待执行交易为疑似攻击交易。
可选的,所述处理单元902还用于:若所述待执行交易的来源账户为新账户、且所述来源账户收到来自防溯源应用的代币,则将所述来源账户标记为关键来源账户,存储于所述规则数据库。
可选的,所述处理单元902还用于:若所述区块链节点存在所述关键来源账户创建的合约,则将所述关键来源账户创建的合约标记为关键目标合约,存储于所述规则数据库。
可选的,所述处理单元902还用于:周期性读取所述规则数据库中的关键目标合约;若确定所述关键目标合约已开源,则将已开源的关键目标合约从所述规则数据库中删除。
可选的,所述区块链节点为区块链系统中的公共节点,或者,所述区块链节点为已加入所述区块链系统的私有节点。
可选的,所述处理单元902还用于:若所述第一执行结果为所述模拟账户的代币增长量大于阈值,则发出第一告警信息,所述第一告警信息用于提示发生攻击交易。
可选的,所述获取单元901还用于:获取所述拦截交易对应的第二执行结果;
所述处理单元902还用于:若所述第二执行结果为所述拦截账户的代币增长量大于所述阈值,则发出第二告警信息,所述第二告警信息用于提示攻击拦截成功;或者,若所述第二执行结果为所述拦截账户的代币增长量小于或等于所述阈值,则发出第三告警信息,所述第三告警信息用于提示攻击拦截失败。
可选的,所述处理单元902具体用于:所述生成拦截交易,并将所述拦截交易发送至所述区块链节点,包括:根据所述模拟交易的信息,生成拦截交易;其中,所述拦截交易中的来源账户替换为拦截账户;所述拦截交易的燃料单价大于所述攻击交易的燃料单价;将所述拦截交易发送至所述区块链节点上部署的第二目标合约,所述第二目标合约为将所述来源账户创建的合约中的来源账户修改为拦截账户得到。
可选的,所述处理单元902还用于:若待执行交易的来源账户与所述规则数据库中的关键来源账户不一致且所述待执行交易的交易输入不包括预设名称,或者,所述待执行交易创建的合约与所述规则数据库中的关键目标合约不一致且所述待执行交易的交易输入不包括预设名称,则确定所述待执行交易为正常交易。
可选的,所述处理单元还用于:若所述第一执行结果包括所述模拟账户的代币增长量小于或等于所述阈值,则确定所述待执行交易为正常交易。
基于相同的技术构思,本发明实施例还提供了一种计算设备,包括:
存储器,用于存储程序指令;
处理器,用于调用存储器中存储的程序指令,按照获得的程序执行上述区块链攻击拦截的方法。
基于相同的技术构思,本发明实施例还提供了一种计算机可读非易失性存储介质,包括计算机可读指令,当计算机读取并执行计算机可读指令时,使得计算机执行上述区块链攻击拦截的方法。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (14)
1.一种区块链攻击拦截方法,其特征在于,包括:
获取区块链节点中的待执行交易的信息,所述待执行交易为未打包进区块的交易,所述待执行交易的信息包括所述待执行交易的来源账户;
根据所述待执行交易的信息,确定所述待执行交易为疑似攻击交易;
根据所述待执行交易的信息,生成模拟交易,其中,所述模拟交易中的来源账户替换为模拟账户;
将所述模拟交易发送至模拟节点上部署的第一目标合约,并获取所述模拟交易对应的第一执行结果,所述第一目标合约为修改所述来源账户创建的合约中的来源账户得到;
若所述第一执行结果为所述模拟账户的代币增长量大于阈值,则确定所述待执行交易为真实攻击交易;
生成拦截交易,并将所述拦截交易发送至所述区块链节点,所述拦截交易的执行顺序先于所述待执行交易的执行顺序。
2.如权利要求1所述的方法,其特征在于,所述根据所述待执行交易的信息,确定所述待执行交易为疑似攻击交易,包括:
若待执行交易的来源账户与规则数据库中的关键来源账户一致且所述待执行交易创建的合约与所述规则数据库中的关键目标合约一致,则确定所述待执行交易为疑似攻击交易;或者,
若所述待执行交易的交易输入包括预设名称,则确定所述待执行交易为疑似攻击交易。
3.如权利要求2所述的方法,其特征在于,所述方法还包括:
若所述待执行交易的来源账户为新账户、且所述来源账户收到来自防溯源应用的代币,则将所述来源账户标记为关键来源账户,存储于所述规则数据库。
4.如权利要求3所述的方法,其特征在于,所述方法还包括:
若所述区块链节点存在所述关键来源账户创建的合约,则将所述关键来源账户创建的合约标记为关键目标合约,存储于所述规则数据库。
5.如权利要求4所述的方法,其特征在于,所述方法还包括:
周期性读取所述规则数据库中的关键目标合约;
若确定所述关键目标合约已开源,则将已开源的关键目标合约从所述规则数据库中删除。
6.如权利要求1-5任一项所述的方法,其特征在于,所述区块链节点为区块链系统中的公共节点,或者,所述区块链节点为已加入所述区块链系统的私有节点。
7.如权利要求1-5任一项所述的方法,其特征在于,所述方法还包括:
若所述第一执行结果为所述模拟账户的代币增长量大于阈值,则发出第一告警信息,所述第一告警信息用于提示发生攻击交易。
8.如权利要求1-5任一项所述的方法,其特征在于,所述将所述拦截交易发送至所述区块链节点上部署的第二目标合约之后,还包括:
获取所述拦截交易对应的第二执行结果;
若所述第二执行结果为所述拦截账户的代币增长量大于所述阈值,则发出第二告警信息,所述第二告警信息用于提示攻击拦截成功;或者,
若所述第二执行结果为所述拦截账户的代币增长量小于或等于所述阈值,则发出第三告警信息,所述第三告警信息用于提示攻击拦截失败。
9.如权利要求1-5任一项所述的方法,其特征在于,所述生成拦截交易,并将所述拦截交易发送至所述区块链节点,包括:
根据所述模拟交易的信息,生成拦截交易;其中,所述拦截交易中的来源账户替换为拦截账户;所述拦截交易的燃料单价大于所述攻击交易的燃料单价;
将所述拦截交易发送至所述区块链节点上部署的第二目标合约,所述第二目标合约为将所述来源账户创建的合约中的来源账户修改为拦截账户得到。
10.如权利要求1-5任一项所述的方法,其特征在于,所述方法还包括:
若待执行交易的来源账户与所述规则数据库中的关键来源账户不一致且所述待执行交易的交易输入不包括预设名称,或者,所述待执行交易创建的合约与所述规则数据库中的关键目标合约不一致且所述待执行交易的交易输入不包括预设名称,则确定所述待执行交易为正常交易。
11.如权利要求1-4任一项所述的方法,其特征在于,所述方法还包括:
若所述第一执行结果包括所述模拟账户的代币增长量小于或等于所述阈值,则确定所述待执行交易为正常交易。
12.一种区块链攻击拦截装置,其特征在于,包括:
获取单元,用于获取区块链节点中的待执行交易的信息,所述待执行交易为未打包进区块的交易,所述待执行交易的信息包括所述待执行交易的来源账户;
处理单元,用于根据所述待执行交易的信息,确定所述待执行交易为攻击交易;根据所述待执行交易的信息,生成模拟交易,其中,所述模拟交易中的来源账户替换为模拟账户;将所述模拟交易发送至模拟节点上部署的第一目标合约,并获取所述模拟交易对应的第一执行结果,所述第一目标合约为修改所述来源账户创建的合约中的来源账户得到;若所述第一执行结果为所述模拟账户的代币增长量大于阈值,则根据所述模拟交易的信息,生成拦截交易;其中,所述拦截交易中的来源账户替换为拦截账户,所述拦截交易的燃料单价大于所述攻击交易的燃料单价;将所述拦截交易发送至所述区块链节点上部署的第二目标合约,所述第二目标合约为将所述来源账户创建的合约中的来源账户修改为拦截账户得到。
13.一种计算设备,其特征在于,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行权利要求1至11任一项所述的方法。
14.一种计算机可读非易失性存储介质,其特征在于,包括计算机可读指令,当计算机读取并执行所述计算机可读指令时,使得计算机执行如权利要求1至11任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211739360.4A CN116132142B (zh) | 2022-12-30 | 2022-12-30 | 一种区块链攻击拦截方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211739360.4A CN116132142B (zh) | 2022-12-30 | 2022-12-30 | 一种区块链攻击拦截方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116132142A CN116132142A (zh) | 2023-05-16 |
CN116132142B true CN116132142B (zh) | 2024-04-12 |
Family
ID=86300350
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211739360.4A Active CN116132142B (zh) | 2022-12-30 | 2022-12-30 | 一种区块链攻击拦截方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116132142B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109064063A (zh) * | 2018-09-11 | 2018-12-21 | 北京工商大学 | 一种基于区块链的食品安全风险溯源分析系统及方法 |
CN109785121A (zh) * | 2019-01-11 | 2019-05-21 | 中信梧桐港供应链管理有限公司 | 基于区块链架构的仓单质押融资方法及装置 |
CN110650128A (zh) * | 2019-09-17 | 2020-01-03 | 西安电子科技大学 | 一种检测以太坊数字货币盗取攻击的系统及方法 |
KR20200049491A (ko) * | 2019-07-26 | 2020-05-08 | 최우혁 | 블록체인 정보 관리 및 거래 지원 서비스 제공 방법 |
CN111386514A (zh) * | 2017-11-27 | 2020-07-07 | 诺克诺克实验公司 | 扩展安全密钥存储以用于交易确认和加密货币 |
CN111478878A (zh) * | 2020-02-28 | 2020-07-31 | 新华三技术有限公司 | 一种防攻击方法及装置 |
CN111683084A (zh) * | 2020-06-05 | 2020-09-18 | 广州大学 | 一种智能合约入侵检测方法、装置、终端设备及存储介质 |
CN112163857A (zh) * | 2020-10-10 | 2021-01-01 | 杭州时戳信息科技有限公司 | 区块链交易处理方法、系统、存储介质及计算设备 |
CN112883112A (zh) * | 2020-08-20 | 2021-06-01 | 王红根 | 基于区块链数字货币金融的信息管理方法及信息管理系统 |
CN115330523A (zh) * | 2022-08-18 | 2022-11-11 | 中国银行股份有限公司 | 基于区块链的贷后处理方法及系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200118131A1 (en) * | 2018-10-11 | 2020-04-16 | International Business Machines Corporation | Database transaction compliance |
US11568384B2 (en) * | 2020-12-04 | 2023-01-31 | Code Inc. | Cryptocurrency transactions with synchronized images |
-
2022
- 2022-12-30 CN CN202211739360.4A patent/CN116132142B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111386514A (zh) * | 2017-11-27 | 2020-07-07 | 诺克诺克实验公司 | 扩展安全密钥存储以用于交易确认和加密货币 |
CN109064063A (zh) * | 2018-09-11 | 2018-12-21 | 北京工商大学 | 一种基于区块链的食品安全风险溯源分析系统及方法 |
CN109785121A (zh) * | 2019-01-11 | 2019-05-21 | 中信梧桐港供应链管理有限公司 | 基于区块链架构的仓单质押融资方法及装置 |
KR20200049491A (ko) * | 2019-07-26 | 2020-05-08 | 최우혁 | 블록체인 정보 관리 및 거래 지원 서비스 제공 방법 |
CN110650128A (zh) * | 2019-09-17 | 2020-01-03 | 西安电子科技大学 | 一种检测以太坊数字货币盗取攻击的系统及方法 |
CN111478878A (zh) * | 2020-02-28 | 2020-07-31 | 新华三技术有限公司 | 一种防攻击方法及装置 |
CN111683084A (zh) * | 2020-06-05 | 2020-09-18 | 广州大学 | 一种智能合约入侵检测方法、装置、终端设备及存储介质 |
CN112883112A (zh) * | 2020-08-20 | 2021-06-01 | 王红根 | 基于区块链数字货币金融的信息管理方法及信息管理系统 |
CN112163857A (zh) * | 2020-10-10 | 2021-01-01 | 杭州时戳信息科技有限公司 | 区块链交易处理方法、系统、存储介质及计算设备 |
CN115330523A (zh) * | 2022-08-18 | 2022-11-11 | 中国银行股份有限公司 | 基于区块链的贷后处理方法及系统 |
Non-Patent Citations (2)
Title |
---|
基于双层协同的联盟区块链隐私数据保护方法;蔡亮;端豪;鄢萌;夏鑫;;软件学报;20200815(08);全文 * |
面向智能终端的快捷支付"双花攻击"检测模型;邓红莉;杨韬;;网络空间安全;20200525(05);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN116132142A (zh) | 2023-05-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20240074004A1 (en) | Verification of interactions system and method | |
US11799660B2 (en) | Optimizations for verification of interactions system and method | |
JP2020505799A (ja) | リプレイ攻撃の検出のためのシステム及び方法 | |
JP2020505663A (ja) | リプレイ攻撃の検出のためのシステム及び方法 | |
CN111090581B (zh) | 智能合约测试方法、装置、计算机设备和存储介质 | |
CN110689349A (zh) | 一种区块链中的交易哈希值存储和搜索方法及装置 | |
CN111523890A (zh) | 基于区块链的数据处理方法、装置、存储介质及设备 | |
KR102151746B1 (ko) | 블록체인 기반의 IoT플랫폼을 활용한 데이터 저장 방법 | |
CN109656778A (zh) | 数据获取方法、装置、计算机设备和存储介质 | |
CN109214817A (zh) | 一种基于算力寄生的区块链共识装置 | |
CN112132577B (zh) | 一种基于区块链的多重监管的交易处理方法及装置 | |
CN115174279B (zh) | 一种以太坊智能合约漏洞实时检测方法、终端及存储介质 | |
CN110704464B (zh) | 一种分叉问题的处理方法及装置 | |
CN113886817A (zh) | 主机入侵检测方法及装置、电子设备、存储介质 | |
CN109544165B (zh) | 资源转移处理方法、装置、计算机设备和存储介质 | |
CN109905366A (zh) | 终端设备安全验证方法、装置、可读存储介质及终端设备 | |
CN116132142B (zh) | 一种区块链攻击拦截方法及装置 | |
CN112948499A (zh) | 信息获取方法和装置、电子设备和存储介质 | |
CN114363839B (zh) | 一种诈骗数据的预警方法、装置、设备及存储介质 | |
KR102531661B1 (ko) | 내용 기반 차단을 이용한 피싱 위험 경고 서비스 제공 시스템 | |
CN112632497B (zh) | 一种基于区块链的身份信息验证方法及系统 | |
CN115330419A (zh) | 基于区块链的防伪验证方法、平台及计算机可读介质 | |
Heo et al. | Behind block explorers: public blockchain measurement and security implication | |
CN112581129A (zh) | 区块链交易数据治理方法及装置、计算机设备及存储介质 | |
CN109919767B (zh) | 交易风险管理方法、装置及设备 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |