CN117081818A - 基于智能合约防火墙的攻击交易识别与拦截方法及*** - Google Patents
基于智能合约防火墙的攻击交易识别与拦截方法及*** Download PDFInfo
- Publication number
- CN117081818A CN117081818A CN202311102742.0A CN202311102742A CN117081818A CN 117081818 A CN117081818 A CN 117081818A CN 202311102742 A CN202311102742 A CN 202311102742A CN 117081818 A CN117081818 A CN 117081818A
- Authority
- CN
- China
- Prior art keywords
- transaction
- contract
- attack
- executing
- protection strategy
- 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
- 238000000034 method Methods 0.000 title claims abstract description 39
- 230000002159 abnormal effect Effects 0.000 claims abstract description 34
- 238000004458 analytical method Methods 0.000 claims abstract description 33
- 230000005856 abnormality Effects 0.000 claims abstract description 15
- 238000012544 monitoring process Methods 0.000 claims abstract description 10
- 238000010586 diagram Methods 0.000 claims description 20
- 230000003068 static effect Effects 0.000 claims description 15
- 238000001514 detection method Methods 0.000 claims description 9
- 238000001914 filtration Methods 0.000 claims description 6
- 238000004364 calculation method Methods 0.000 claims description 4
- 238000013528 artificial neural network Methods 0.000 claims description 3
- 230000008878 coupling Effects 0.000 abstract 1
- 238000010168 coupling process Methods 0.000 abstract 1
- 238000005859 coupling reaction Methods 0.000 abstract 1
- 230000006870 function Effects 0.000 description 22
- 238000012360 testing method Methods 0.000 description 5
- 238000012795 verification Methods 0.000 description 5
- 230000006399 behavior Effects 0.000 description 4
- NQLVQOSNDJXLKG-UHFFFAOYSA-N prosulfocarb Chemical compound CCCN(CCC)C(=O)SCC1=CC=CC=C1 NQLVQOSNDJXLKG-UHFFFAOYSA-N 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- RWSOTUBLDIXVET-UHFFFAOYSA-N Dihydrogen sulfide Chemical compound S RWSOTUBLDIXVET-UHFFFAOYSA-N 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000005206 flow analysis Methods 0.000 description 1
- 230000000750 progressive effect Effects 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/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/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种基于智能合约防火墙的攻击交易识别与拦截方法及***,该方法包括预先在智能合约的交易入口部署防火墙代理合约;当检测到有交易进入受保护智能合约时,执行防火墙代理合约,对交易进行参数解析;根据参数解析结果将交易转发到不同的防护策略合约;通过监听合约状态和解析交易数据,检测是否存在交易异常;若存在,则根据异常结果执行相应的防护策略合约。本发明能够实现智能合约链上链下的综合防护,提高对智能合约安全的覆盖范围和准确性,且最小程度地避免智能合约业务相关的耦合度,适用于检测与重入和价格预言机相关的所有漏洞。
Description
技术领域
本发明涉及区块链技术领域,特别是涉及基于智能合约防火墙的攻击交易识别与拦截方法及***。
背景技术
保护链上数字资产对基于区块链的业务至关重要。最近几年频繁发生黑客攻击去中心化应用生态***的事件。重入漏洞与价格预言机操纵漏洞作为两类链上较为常见的漏洞。现有针对重入攻击的防护技术,例如通过对智能合约源代码进行静态分析来检测潜在的重入漏洞;通过对智能合约进行实际执行和模拟测试来检测重入攻击;使用数字推理和形式化验证技术对智能合约进行建模和分析,以检测漏洞和逻辑错误;采用OpenZeppelin智能合约开发框架来防止重入攻击。现有针对价格预言机操纵攻击的防护技术,例如通过对比不同预言机的价格数据来检测潜在的操纵攻击。
然而,上述针对重入攻击和预言机操纵攻击的防护技术存在着一些弊端。针对重入攻击的防护技术中,静态分析只能分析合约的静态代码,无法覆盖所有可能的动态行为;动态测试和模拟工具对于复杂合约和大规模测试覆盖面有限,无法覆盖所有可能的输入情况;形式化验证的建模和分析过程复杂,需要专业知识和时间投入,对于复杂合约和新特性的支持有限;OpenZeppelin的重入锁方案需要在合约中手动添加代码来防止重入攻击,增加了开发人员的开发成本,且多个函数都带有重入锁的话,会使合约部署成本与调用成本增加。针对预言机操纵攻击的防护技术中,开发人员可能无法选择到可靠有效的预言机,单一的预言机也存在着被黑客操纵的风险,从而提供虚假或操纵的价格数据。而且,在将多个预言机纳入协议时,进行预言机价格的加权计算可能导致每次在链上获取有关代币价格的gas成本飙升。
现有技术在防护重入攻击和预言机操纵攻击方面主要集中在合约上链前进行防护措施,一旦合约上链后出现问题,很难解决这类漏洞,这限制了现有技术在实时监测和拦截攻击的能力。因此,亟需一种能够为链上易受攻击的智能合约提供安全保护的方法。
发明内容
针对现有技术在防护重入攻击和预言机操纵攻击方面的弊端,本发明旨在提供一种基于智能合约防火墙的攻击交易识别与拦截方法及***。
第一方面,本发明实施例提供了一种基于智能合约防火墙的攻击交易识别与拦截方法,包括:
预先在智能合约的交易入口部署防火墙代理合约;
当检测到有交易进入受保护智能合约时,执行所述防火墙代理合约,对所述交易进行参数解析;
根据参数解析结果将所述交易转发到不同的防护策略合约;
通过监听合约状态和解析交易数据,检测是否存在交易异常;
若存在,则根据异常结果执行相应的防护策略合约;所述异常结果至少包括价格操纵、重入攻击和权限控制,相应的所述防护策略合约至少包括价格操纵防护策略合约、重入攻击防护策略合约和权限控制防护策略合约。
优选地,所述通过监听合约状态和解析交易数据,检测是否存在交易异常,包括:
获取交易调用中所有子调用的信息;所述子调用的信息包括递归子调用与子调用中进行交易的合约地址和交易中使用的参数信息;
根据所述子调用的信息构建出子调用的路径图,并根据已有安全攻击交易的子调用的数据流和控制流得到相应的流向图;
利用图神经网络得到所述路径图和流向图的相似度,根据所述相似度判断所述交易是否存在异常。
优选地,所述若存在,则根据异常结果执行相应的防护策略合约,包括:
若异常结果为重入攻击,则执行所述重入攻击防护策略合约,包括:
根据受保护智能合约中的状态变量,过滤掉合约调用中不包含所述状态变量的交易;
通过符号执行工具与求解器对交易的控制流进行约束求解,得到所述交易在不同约束条件下的函数执行路径集合,并根据所述函数执行路径集合模拟所述交易可能的执行路径,若发现对同一个所述状态变量的操纵环路,则对所述交易进行拦截。
优选地,所述若异常结果为重入攻击,则执行所述重入攻击防护策略合约,还包括:
对所述状态变量进行锁定,若锁定失败,则对所述交易进行拦截。
优选地,还包括:
若异常结果为价格操纵,则执行所述价格操纵防护策略合约,包括:
通过合约代码静态分析工具检测受保护智能合约中的变量依赖关系,得到敏感变量集合;
根据所述敏感变量集合在链上查找相应的流动性池,检测所述流动性池是否***纵,若是则对所述交易进行拦截。
优选地,所述通过合约代码静态分析工具检测受保护智能合约中的变量依赖关系,得到敏感变量集合,包括:
使用合约代码静态分析工具检测受保护智能合约中依赖于流动性池或代币余额的变量;
判断所述变量是否用于操作敏感资金,若是则确定所述变量为敏感变量。
优选地,所述检测所述流动性池是否***纵,若是则对所述交易进行拦截,包括:
获取链下交易所的实时价格,并整合链上DEX的最新价格进行加权计算,得到预言机参考价格;
对所述预言机参考价格与所述流动性池的价格进行对比,若差距超过预设阈值,则判断所述流动性池***纵,对所述交易进行拦截。
第二方面,本发明实施例还提供了一种基于智能合约防火墙的攻击交易识别与拦截***,包括:
合约部署模块,用于预先在智能合约的交易入口部署防火墙代理合约;
参数解析模块,用于当检测到有交易进入受保护智能合约时,执行所述防火墙代理合约,对所述交易进行参数解析;
交易转发模块,用于根据参数解析结果将所述交易转发到不同的防护策略合约;
交易检测模块,用于通过监听合约状态和解析交易数据,检测是否存在交易异常;
防护策略合约执行模块,用于当存在交易异常时,根据异常结果执行相应的防护策略合约;所述异常结果至少包括价格操纵、重入攻击和权限控制,相应的所述防护策略合约至少包括价格操纵防护策略合约、重入攻击防护策略合约和权限控制防护策略合约。
优选地,所述防护策略合约执行模块,包括:
重入攻击检测模块,用于当异常结果为重入攻击时,执行所述重入攻击防护策略合约,包括:
根据受保护智能合约中的状态变量,过滤掉合约调用中不包含所述状态变量的交易;
通过符号执行工具与求解器对交易的控制流进行约束求解,得到所述交易在不同约束条件下的函数执行路径集合,并根据所述函数执行路径集合模拟所述交易可能的执行路径,若发现对同一个所述状态变量的操纵环路,则对所述交易进行拦截。
优选地,还包括:
价格操纵检测模块,用于当异常结果为价格操纵时,执行所述价格操纵防护策略合约,包括:
通过合约代码静态分析工具检测受保护智能合约中的变量依赖关系,得到敏感变量集合;
根据所述敏感变量集合在链上查找相应的流动性池,检测所述流动性池是否***纵,若是则对所述交易进行拦截。
本发明实施例一种基于智能合约防火墙的攻击交易识别与拦截方法及***与现有技术相比,其有益效果在于:通过在智能合约的交易入口部署防火墙代理合约和检测交易异常,实现了智能合约链上链下的综合防护,提高了对智能合约安全的覆盖范围和准确性。防火墙能够在不依赖于具体业务逻辑的情况下,识别并拦截与重入漏洞相关的恶意交易,提供了更可靠高效的重入漏洞防护。而且,防火墙能够检测价格预言机异常和操纵行为,并提供可靠的价格数据,减轻了开发人员在选择可信预言机和配置价格验证方面的负担。
附图说明
图1是本发明实施例一种基于智能合约防火墙的攻击交易识别与拦截方法的流程示意图。
图2是本发明实施例一种基于智能合约防火墙的攻击交易识别与拦截方法的另一示意图。
图3是本发明实施例防护策略合约执行步骤的流程示意图。
图4是本发明实施例重入攻击防护策略合约的示意图。
图5是本发明实施例价格操纵防护策略合约的示意图。
图6是本发明实施例一种基于智能合约防火墙的攻击交易识别与拦截***的结构示意图。
图7是本发明实施例防护策略合约执行模块的结构示意图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
在本发明的描述中,应当理解的是,本发明中采用术语“DEFI”,去中心化金融(Decentralized Finance,简称DEFI)是一种不依托中心化的金融机构或者交易场所的加密金融体系;
采用术语“DEX”,去中心化交易所(Decentralized Exchange,简称DEX)是一种在去中心化平台上运作的加密货币交易所。
如图1所示,本发明实施例提供了一种基于智能合约防火墙的攻击交易识别与拦截方法,包括步骤:
S1、预先在智能合约的交易入口部署防火墙代理合约;
在智能合约中部署防火墙代理合约作为入口,该代理合约负责接收所有进入受保护智能合约的交易。智能合约防火墙类似于传统防火墙,作为受保护智能合约项目的入口,旨在为已部署的智能合约项目提供可插拔的保护服务。
S2、当检测到有交易进入受保护智能合约时,执行防火墙代理合约,对交易进行参数解析;
在受保护智能合约的函数中***防火墙代理的外部调用。当交易进入防火墙代理合约入口时,会进入到防火墙的参数解析合约。参数解析合约对交易数据中包含的函数调用和参数信息进行处理。
S3、根据参数解析结果将交易转发到不同的防护策略合约;
根据参数解析结果,并结合用户的配置规则和策略,将交易转发到不同的防护策略合约。
在一具体实施例中,合约项目开发者将其要保护的函数签名作为key与不同的安全模块对应的地址构建成一个映射,存放到fillter合约中。当交易与DEFI项目中的某个合约中的某个函数进行交互的时候,该合约会将该交易的函数签名信息转发到fillter合约中,fillter合约根据函数签名信息,将该交易转发到不同的防护策略合约。
S4、通过监听合约状态和解析交易数据,检测是否存在交易异常;
使用模糊测试、静态分析和Z3求解器技术对智能合约进行分析。其中,模糊测试通过输入异常或边界情况的数据来检测合约中的漏洞。例如,通过输入异常的参数值或未预期的交易系列来检测智能合约的安全性。
以太坊链下框架会运行一个存档节点,以太坊存档节点可使用debug_tracer方法获取已经被发送到内存池但还未上链的交易调用中所有子调用的信息,该子调用的信息包括递归子调用与子调用中与哪些合约地址进行了交易,以及交易中使用的参数信息。
根据子调用的信息构建出子调用的路径图,并根据已经有的一些安全攻击,总结这些安全攻击的子调用的数据流和控制流,得出相对应的流向图,然后匹配要预测的交易的图信息与已经发生的攻击的图信息的相似度,即利用图神经网络方法进行定量计算,得到路径图和流向图的相似度,根据相似度判断交易是否存在异常。
S5、若存在,则根据异常结果执行相应的防护策略合约。
若相似度高于预设阈值,则判断交易存在异常。根据异常结果执行相应的防护策略合约,异常结果至少包括价格操纵、重入攻击和权限控制,相应的防护策略合约至少包括价格操纵防护策略合约、重入攻击防护策略合约和权限控制防护策略合约。
进一步地,本实施例中基于智能合约防火墙的攻击交易识别与拦截方法也可参见图2。
在一具体实施例中,步骤S5如图3所示,包括:
S501、若异常结果为重入攻击,则执行重入攻击防护策略合约;
具体地,重入攻击防护策略合约如图4所示,交易中的调用关系包括初次合约调用和重入合约调用。其中,重入合约调用即第n次调用到同一个合约。根据受保护智能合约中的状态变量,过滤掉合约调用中不包含状态变量的交易。Model.sol合约保存受保护智能合约中的状态变量。通过符号执行工具Manticore与Z3求解器对交易的控制流进行约束求解,获取交易在不同约束条件下的函数执行路径集合,并根据函数执行路径集合模拟交易可能的执行路径,若发现对同一个状态变量的操纵环路,则对交易进行拦截。
进一步地,对受保护智能合约中的状态变量进行锁定,若锁定失败,意味着该状态变量已经被修改但未写回,则对交易进行拦截。通过控制流分析和状态变量上锁,防火墙能够识别并拦截与重入漏洞相关的恶意交易,而不依赖于具体的业务逻辑。这种重入攻击防护策略合约适用于各种类型的智能合约项目,提供了更可靠高效的重入漏洞防护。
S502、若异常结果为价格操纵,则执行价格操纵防护策略合约;
价格操纵攻击通过操纵关键敏感资金操作的变量导致资产估值错误,攻击者从中获取非法利益。攻击的特点包括关键流动性池代币数额异常和某些地址代币余额异常。
具体地,价格操纵防护策略合约如图5所示,本实施例通过合约代码静态分析工具Slither检测受保护智能合约中哪些变量依赖于流动性池或代币余额,并判断是否用于敏感资金操作,若是则确定该变量为敏感变量,构成敏感变量集合V。使用合约代码静态分析工具Slither检测受保护智能合约中的变量依赖关系,生成函数变量操作表R。使用符号执行工具Manticore与Z3求解器找到不同约束条件下的函数执行路径集合F,并输出对应的约束条件集合S。在交易发生时,根据受保护智能合约中的状态变量,过滤掉合约调用中不包含状态变量的交易,根据输入参数确定约束条件集合S中的一个或多个函数调用路径集合F',根据函数调用路径集合F'获取相应的函数调用路径,并根据函数变量操作表R查找可能***控的敏感变量集合V。
根据敏感变量集合V在链上查找相应的防火墙自身维护的流动性池P,检测流动性池是否***纵,若是则对交易进行拦截,具体过程为:
获取链下交易所的实时价格,并整合链上DEX的最新价格进行加权计算,得到预言机参考价格;
对预言机参考价格与流动性池的价格进行对比,若差距超过预设阈值,则判断流动性池***纵,对交易进行拦截。本实施例优选设定的预设阈值为5%,预言机参考价格与流动性池的价格之间的差距若超过5%,则优先使用预言机参考价格;否则,选择流动性池的价格,以保证价格决策的稳定性和可靠性。当然,本实施例的预设阈值可以根据防火墙的设计要求适应性调整,如果设计要求高,可以设定较小的预设阈值,反之,亦可以相应调大预设阈值。
本发明实施例提供一种基于智能合约防火墙的攻击交易识别与拦截方法,该方法通过在智能合约的交易入口部署防火墙代理合约和检测交易异常,实现了智能合约链上链下的综合防护,提高了对智能合约安全的覆盖范围和准确性。防火墙能够在不依赖于具体业务逻辑的情况下,识别并拦截与重入漏洞相关的恶意交易,提供了更可靠高效的重入漏洞防护。而且,防火墙能够检测价格预言机异常和操纵行为,并提供可靠的价格数据,减轻了开发人员在选择可信预言机和配置价格验证方面的负担。
如图6所示,基于上述攻击交易识别与拦截方法,本发明实施例还提供了一种基于智能合约防火墙的攻击交易识别与拦截***,包括:
合约部署模块1,用于预先在智能合约的交易入口部署防火墙代理合约;
参数解析模块2,用于当检测到有交易进入受保护智能合约时,执行防火墙代理合约,对交易进行参数解析;
交易转发模块3,用于根据参数解析结果将交易转发到不同的防护策略合约;
交易检测模块4,用于通过监听合约状态和解析交易数据,检测是否存在交易异常;
防护策略合约执行模块5,用于当存在交易异常时,根据异常结果执行相应的防护策略合约;异常结果至少包括价格操纵、重入攻击和权限控制,相应的防护策略合约至少包括价格操纵防护策略合约、重入攻击防护策略合约和权限控制防护策略合约。
在一具体实施例中,防护策略合约执行模块5如图7所示,包括:
重入攻击检测模块51,用于当异常结果为重入攻击时,执行重入攻击防护策略合约,包括:
根据受保护智能合约中的状态变量,过滤掉合约调用中不包含状态变量的交易;
通过符号执行工具与求解器对交易的控制流进行约束求解,得到交易在不同约束条件下的函数执行路径集合,并根据函数执行路径集合模拟交易可能的执行路径,若发现对同一个状态变量的操纵环路,则对交易进行拦截。
价格操纵检测模块52,用于当异常结果为价格操纵时,执行价格操纵防护策略合约,包括:
通过合约代码静态分析工具检测受保护智能合约中的变量依赖关系,得到敏感变量集合;
根据敏感变量集合在链上查找相应的流动性池,检测流动性池是否***纵,若是则对交易进行拦截。
需要说明的是,上述一种基于智能合约防火墙的攻击交易识别与拦截***中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。关于一种基于智能合约防火墙的攻击交易识别与拦截***的具体限定参见上文中对于一种基于智能合约防火墙的攻击交易识别与拦截方法的限定,二者具有相同的功能和作用,在此不再赘述。
综上所述,本发明实施例提供一种基于智能合约防火墙的攻击交易识别与拦截方法及***,通过在智能合约的交易入口部署防火墙代理合约和检测交易异常,实现了智能合约链上链下的综合防护,提高了对智能合约安全的覆盖范围和准确性。防火墙能够在不依赖于具体业务逻辑的情况下,识别并拦截与重入漏洞相关的恶意交易,提供了更可靠高效的重入漏洞防护。而且,防火墙能够检测价格预言机异常和操纵行为,并提供可靠的价格数据,减轻了开发人员在选择可信预言机和配置价格验证方面的负担。
本说明书中的各个实施例均采用递进的方式描述,各个实施例直接相同或相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于***实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。需要说明的是,上述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和替换,这些改进和替换也应视为本发明的保护范围。
Claims (10)
1.一种基于智能合约防火墙的攻击交易识别与拦截方法,其特征在于,包括:
预先在智能合约的交易入口部署防火墙代理合约;
当检测到有交易进入受保护智能合约时,执行所述防火墙代理合约,对所述交易进行参数解析;
根据参数解析结果将所述交易转发到不同的防护策略合约;
通过监听合约状态和解析交易数据,检测是否存在交易异常;
若存在,则根据异常结果执行相应的防护策略合约;所述异常结果至少包括价格操纵、重入攻击和权限控制,相应的所述防护策略合约至少包括价格操纵防护策略合约、重入攻击防护策略合约和权限控制防护策略合约。
2.根据权利要求1所述的攻击交易识别与拦截方法,其特征在于,所述通过监听合约状态和解析交易数据,检测是否存在交易异常,包括:
获取交易调用中所有子调用的信息;所述子调用的信息包括递归子调用与子调用中进行交易的合约地址和交易中使用的参数信息;
根据所述子调用的信息构建出子调用的路径图,并根据已有安全攻击交易的子调用的数据流和控制流得到相应的流向图;
利用图神经网络得到所述路径图和流向图的相似度,根据所述相似度判断所述交易是否存在异常。
3.根据权利要求1所述的攻击交易识别与拦截方法,其特征在于,所述若存在,则根据异常结果执行相应的防护策略合约,包括:
若异常结果为重入攻击,则执行所述重入攻击防护策略合约,包括:
根据受保护智能合约中的状态变量,过滤掉合约调用中不包含所述状态变量的交易;
通过符号执行工具与求解器对交易的控制流进行约束求解,得到所述交易在不同约束条件下的函数执行路径集合,并根据所述函数执行路径集合模拟所述交易可能的执行路径,若发现对同一个所述状态变量的操纵环路,则对所述交易进行拦截。
4.根据权利要求3所述的攻击交易识别与拦截方法,其特征在于,所述若异常结果为重入攻击,则执行所述重入攻击防护策略合约,还包括:
对所述状态变量进行锁定,若锁定失败,则对所述交易进行拦截。
5.根据权利要求3所述的攻击交易识别与拦截方法,其特征在于,还包括:
若异常结果为价格操纵,则执行所述价格操纵防护策略合约,包括:
通过合约代码静态分析工具检测受保护智能合约中的变量依赖关系,得到敏感变量集合;
根据所述敏感变量集合在链上查找相应的流动性池,检测所述流动性池是否***纵,若是则对所述交易进行拦截。
6.根据权利要求5所述的攻击交易识别与拦截方法,其特征在于,所述通过合约代码静态分析工具检测受保护智能合约中的变量依赖关系,得到敏感变量集合,包括:
使用合约代码静态分析工具检测受保护智能合约中依赖于流动性池或代币余额的变量;
判断所述变量是否用于操作敏感资金,若是则确定所述变量为敏感变量。
7.根据权利要求5所述的攻击交易识别与拦截方法,其特征在于,所述检测所述流动性池是否***纵,若是则对所述交易进行拦截,包括:
获取链下交易所的实时价格,并整合链上DEX的最新价格进行加权计算,得到预言机参考价格;
对所述预言机参考价格与所述流动性池的价格进行对比,若差距超过预设阈值,则判断所述流动性池***纵,对所述交易进行拦截。
8.一种基于智能合约防火墙的攻击交易识别与拦截***,其特征在于,包括:
合约部署模块,用于预先在智能合约的交易入口部署防火墙代理合约;
参数解析模块,用于当检测到有交易进入受保护智能合约时,执行所述防火墙代理合约,对所述交易进行参数解析;
交易转发模块,用于根据参数解析结果将所述交易转发到不同的防护策略合约;
交易检测模块,用于通过监听合约状态和解析交易数据,检测是否存在交易异常;
防护策略合约执行模块,用于当存在交易异常时,根据异常结果执行相应的防护策略合约;所述异常结果至少包括价格操纵、重入攻击和权限控制,相应的所述防护策略合约至少包括价格操纵防护策略合约、重入攻击防护策略合约和权限控制防护策略合约。
9.根据权利要求8所述的攻击交易识别与拦截***,其特征在于,所述防护策略合约执行模块,包括:
重入攻击检测模块,用于当异常结果为重入攻击时,执行所述重入攻击防护策略合约,包括:
根据受保护智能合约中的状态变量,过滤掉合约调用中不包含所述状态变量的交易;
通过符号执行工具与求解器对交易的控制流进行约束求解,得到所述交易在不同约束条件下的函数执行路径集合,并根据所述函数执行路径集合模拟所述交易可能的执行路径,若发现对同一个所述状态变量的操纵环路,则对所述交易进行拦截。
10.根据权利要求9所述的攻击交易识别与拦截***,其特征在于,还包括:
价格操纵检测模块,用于当异常结果为价格操纵时,执行所述价格操纵防护策略合约,包括:
通过合约代码静态分析工具检测受保护智能合约中的变量依赖关系,得到敏感变量集合;
根据所述敏感变量集合在链上查找相应的流动性池,检测所述流动性池是否***纵,若是则对所述交易进行拦截。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311102742.0A CN117081818A (zh) | 2023-08-29 | 2023-08-29 | 基于智能合约防火墙的攻击交易识别与拦截方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311102742.0A CN117081818A (zh) | 2023-08-29 | 2023-08-29 | 基于智能合约防火墙的攻击交易识别与拦截方法及*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117081818A true CN117081818A (zh) | 2023-11-17 |
Family
ID=88707869
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311102742.0A Pending CN117081818A (zh) | 2023-08-29 | 2023-08-29 | 基于智能合约防火墙的攻击交易识别与拦截方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117081818A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117522583A (zh) * | 2024-01-08 | 2024-02-06 | 江苏通付盾科技有限公司 | 一种基于余额分析的链上合约攻击交易检测方法 |
-
2023
- 2023-08-29 CN CN202311102742.0A patent/CN117081818A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117522583A (zh) * | 2024-01-08 | 2024-02-06 | 江苏通付盾科技有限公司 | 一种基于余额分析的链上合约攻击交易检测方法 |
CN117522583B (zh) * | 2024-01-08 | 2024-04-26 | 江苏通付盾科技有限公司 | 一种基于余额分析的链上合约攻击交易检测方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7877780B2 (en) | System and method for enforcing functionality in computer software through policies | |
US7284274B1 (en) | System and method for identifying and eliminating vulnerabilities in computer software applications | |
US11022949B2 (en) | PLC virtual patching and automated distribution of security context | |
US11748487B2 (en) | Detecting a potential security leak by a microservice | |
SA515360536B1 (ar) | طريقة وجهاز وبرنامج حاسب لمراقبة نظام تحكم صناعي | |
CN112749389B (zh) | 一种检测智能合约破坏敏感数据漏洞的检测方法及装置 | |
US20210357501A1 (en) | Attack estimation device, attack estimation method, and attack estimation program | |
CN117081818A (zh) | 基于智能合约防火墙的攻击交易识别与拦截方法及*** | |
Nabi et al. | A process of security assurance properties unification for application logic | |
Ye et al. | Vulpedia: Detecting vulnerable ethereum smart contracts via abstracted vulnerability signatures | |
Ye et al. | Towards automated generation of bug benchmark for smart contracts | |
Liu et al. | A smart contract vulnerability detection mechanism based on deep learning and expert rules | |
US10089463B1 (en) | Managing security of source code | |
Yu et al. | Redetect: Reentrancy vulnerability detection in smart contracts with high accuracy | |
George et al. | A preliminary study on common programming mistakes that lead to buffer overflow vulnerability | |
Trifonov et al. | Automation of cyber security incident handling through artificial intelligence methods | |
CN114358934A (zh) | 智能合约的校验方法和相关设备 | |
US11238162B1 (en) | Method for systematically and objectively assessing system security risk | |
WO2018004523A1 (en) | Plc virtual patching and automated distribution of security context | |
CN113742724B (zh) | 一种网络协议软件的安全机制缺陷检测方法 | |
EP4044057B1 (en) | Method and system for identifying security vulnerabilities | |
CN117891749B (zh) | Api应用安全监测方法、装置、设备及存储介质 | |
US20240104191A1 (en) | Method for identifying potential data exfiltration attacks in at least one software package | |
Mohamed et al. | A control flow representation for component-based software reliability analysis | |
Abdelrazek et al. | Towards self-securing software systems: Variability spectrum |
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 |