【Cross-Chain】Xscope 跨链交易攻击检测

💡 本次解读的文章是 2022 年发表于 ASE(IEEE/ACM International Conference on Automated Software Engineering) 的跨链交易攻击检测论文。本篇论文首先对跨链交易的工作流进行了分析,梳理了跨链交易的整体过程,接着从源链中继目标链的角度提出了 3 类跨链安全漏洞,并针对 3 类漏洞提出对应的安全检测模式,最终实现了自动化跨链交易安全检查工具 Xscope,用于检测本文提及的 3 类跨链安全漏洞,Xscope 工具的介绍视频链接为:Xscope

一、跨链桥的工作流

跨链桥有两个关键部分组成:『链上路由器合约』和『链下中继器』。在整个跨链交易过程中,从交易发送方发起跨链交易,到最终跨链交易的执行完成,可分为 9 个顺序执行步骤:

  1. 发送方向源链 A 发出跨链交易请求
  2. A 路由器合约接收请求并调用代币合约来锁定发送方在 A 上的交易代币,并触发锁定事件 E l k \mathbb{E}_{lk} Elk
  3. A 路由器合约触发存储事件 E d e p \mathbb{E}_{dep} Edep(包含锁定的资产类型和金额等信息,作为锁定资产的证明)
  4. 链下中继器监听和提取存储事件 E d e p \mathbb{E}_{dep} Edep
  5. 链下中继器解析存储事件 E d e p \mathbb{E}_{dep} Edep,并学习和确认 A 上的锁定动作 A l k \mathbb{A}_{lk} Alk
  6. 链下中继器执行交易,并授权目标链 B 的解锁动作 A u n l k \mathbb{A}_{unlk} Aunlk
  7. 链下中继器将交易发送给 B 路由器合约
  8. B 路由器合约验证交易发送方和其他可选的证明,如多重签名和调用目标代币合约
  9. B 路由器合约发出解锁事件 E u n l k \mathbb{E}_{unlk} Eunlk,并将目标代币解锁到用户的账户地址中

二、跨链桥存在的 Bug

虽然上述跨链交易过程较为简单,但是在『链上路由器合约』和『链下中继器』交互的过程中,容易引起 3 种安全 Bug,分别是 UDE、IEP 和 UU。

2.1 UDE

UDE,全称 Unrestricted Deposit Emitting,发生在路由器合约执行步骤 2 和 3 的过程中。

这种 Bug 是说正常情况下,源链的路由器合约在触发锁定事件 E l k \mathbb{E}_{lk} Elk 之前,需要确保执行了代币锁定的操作,然而,如果合约接口处理不当(如使用不安全的转账函数等),就可能会让攻击者绕过锁定资产的过程,直接触发有效的存款事件,这意味着攻击者能够在不支付 A 链资产的情况下,获取B 链对应的交易资产。

这种 Bug 导致 Qubit、Meter.io、Wormhole 和 Multichain 跨链桥遭受到了攻击!

2.2 IEP

IEP,全称 Inconsistent Event Parsing,发生在中继器执行步骤 5 的过程中。

这种 Bug 是说中继器在解析事件的过程中,引起了存储事件 E d e p \mathbb{E}_{dep} Edep 和锁定动作 A l k \mathbb{A}_{lk} Alk 的不一致。常见的错误主要有两种:1)中继器中的解析器可能将恶意合约发出的无效存储事件识别为有效存款事件;2)中继器中的解析器可能错误地解析了有效存储事件,导致解析出的代币类型或数目有误等。

这种 Bug 导致 THORChain、pNetwork 跨链桥遭受到了攻击!

2.3 UU

UU,全称 Unauthorized Unlocking,发生在中继器与路由器智能合约交接步骤 7 和 8 的过程中。

通常情况下,只有可信的链下中继器才能对目标链中的解锁行为进行授权,而这种 Bug 是说传统网络攻击造成的密钥泄露或链上/链下代码的访问控制不当,可能会使未经授权的攻击者成功调用路由器合约的解锁函数,并将对应的资金恶意转出。

这种 Bug 导致 Robin Bridge、Anyswap 和 PolyNetwork 跨链桥遭受到了攻击!

三、跨链交易安全检测

前文的跨链交易文字描述过程可以具体地表示成包含四步的状态序列过程,即:
E l k → E d e p → A l k → A u n l k → E u n l k \mathbb{E}_{lk} \rightarrow \mathbb{E}_{dep} \rightarrow \mathbb{A}_{lk} \rightarrow \mathbb{A}_{unlk} \rightarrow \mathbb{E}_{unlk} ElkEdepAlkAunlkEunlk
其中,根据执行的发起者不同,又可将四步序列过程细分成三个操作阶段,分别是:

  • E l k → E d e p \mathbb{E}_{lk} \rightarrow \mathbb{E}_{dep} ElkEdep:描述源链上路由器合约的动作
  • E d e p → A l k → A u n l k \mathbb{E}_{dep} \rightarrow \mathbb{A}_{lk} \rightarrow \mathbb{A}_{unlk} EdepAlkAunlk:描述链下中继器的动作
  • A u n l k → E u n l k \mathbb{A}_{unlk} \rightarrow \mathbb{E}_{unlk} AunlkEunlk:描述目标链上路由器合约的动作

为了检测三个操作阶段的安全性,本文用『逻辑约束』来表述安全问题,为每种状态建立相应的推理规则,当某种推理规则不成立时,认为存在安全漏洞。这个检测过程主要包括状态的符号化表示、基于两类安全事实建立推理规则、基于推理规则建立安全检测模式。

3.1 符号化表示

其中,符号表中的 s s s d d d 分别表示源链和目标链, t x tx tx 表示(源链/目标链)交易, s c sc sc 表示(源链/目标链)的调用合约, a s s e t asset asset 表示(源链/目标链)的资产类型, t o to to 表示(源链/目标链)的接收地址, I D ID ID 表示(源链/目标链)的交易 ID 号, T ( t x ) \mathbb{T}(tx) T(tx) 表示 t x tx tx 所涉及到的事件集。

3.2 推理规则建立

本文引入了两类安全事实来描述推理规则,分别是『有效性事实』(Validity facts,简写为 V)和『一致性事实』(Consistence facts,简写为 C)。

(1)有效性事实

有效性事实定义了一个状态作为执行序列的一部分是否有效。

举例来说, V ( E d e p ) V(\mathbb{E}_{dep}) V(Edep) 表示只有路由器合约触发的 E d e p \mathbb{E}_{dep} Edep 才能出现在执行序列中(即事件对应的合约 sc 为 routerContract),并最终引起目标链上的解锁动作,而恶意合约发出的无效 E d e p \mathbb{E}_{dep} Edep 不应该出现在正常执行序列中。

(2)一致性事实

一致性事实定义了两个状态之间的关系是否一致。

举例来说, C ( E d e p , A l k ) C(\mathbb{E}_{dep},\mathbb{A}_{lk}) C(Edep,Alk) 表示要求事件 E d e p \mathbb{E}_{dep} Edep 和动作 A l k \mathbb{A}_{lk} Alk 中的资产类型(asset 相同)和金额(amount 相同)完全相同。

3.3 安全属性模式建立

基于上述的安全性事实,本文引入了 3 个安全属性模式来检测前文中对应的三类跨链桥 Bug:

四、Xscope 工具实现

基于前文提及的 3 种安全属性模式,本文实现了一个自动检测跨链桥攻击的工具 Xscope 。

4.1 使用模式

Xscope 提供了两种使用模式:运行时监控离线分析

  • 运行时监控

在运行时监控模式下,Xscope 被部署为链下中继器的扩展,来检测安全属性并中止恶意请求。具体而言,即在步骤 7 生成交易后,链下的中继器会额外调用 Xscope。然后,Xscope 会预先执行生成的交易,得到从 E l k \mathbb{E}_{lk} Elk E u n l k \mathbb{E}_{unlk} Eunlk 的完整执行序列并检测其中的安全违规行为。如果检测到违规,中继器将中止交易以防止潜在的损失。

  • 离线分析

在离线分析模式下,Xscope 被动分析历史请求并对可疑执行序列发出警告。

4.2 体系框架

由于 Xscope 工具是部署在链下中继器的模块中,因此,在 Xscope 中提供了 Chain Connector 模块和 Relayer Adaptor 模块用于适配不同的区块链和中继者。而 Xscope 的检测核心在于 Analyser 模块,Xscope 将链上的事件和链下学习到的动作转换成了逻辑表示,并输入 Analyser 模块,该模块使用 Z3 作为 SMT 求解器来检测每个执行序列中的违规行为。另外,Configurator 模块主要用于支持用户特定的配置,例如从特定地址过滤出交易或导入外部知识(如黑名单)。最后的 Task Manager 模块主要用于规划、分析和监听任务,用户生成报告并反馈给用户。

五、论文实验

本文利用 Xscope 工具检测了前文提及的遭受攻击的跨链桥,包括 THORChain、pNetwork、Anyswap 以及 Qubit Bridge,实验报告结果如下:

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值