跨链桥漏洞利用 – ImmuneBytes

本文回顾了Poly Network、Ronin、Harmony、BNB Bridge、Wormhole、Nomad Bridge和Qubit Finance等多个跨链桥被攻击的事件,分析了攻击的根本原因,包括不安全外部调用、密钥管理不当、加密证明伪造、签名验证绕过、初始化疏忽以及非回滚转账等问题。总结了跨链桥安全的关键经验教训,强调了在多链未来中桥梁的重要性和面临的巨大安全挑战。

2025年6月10日

在 Web3 的早期,用户可以舒服地存在于单个区块链上。但是,随着生态系统的成熟,跨多个链进行交互的需求变得至关重要。这种需求催生了跨链桥和智能合约,从而能够将代币从一个区块链转移到另一个区块链。

这个想法很简单:在链 A 上锁定资产,在链 B 上铸造包装版本,并在用户想要赎回原始资产时反转该过程。但是执行呢?没那么简单。桥已经成为 DeFi 中最大的蜜罐之一,攻击者已经反复证明,理论上的安全性在未正确实施时会崩溃。让我们来分析一下一些最重大的跨链桥失败案例。

1. Poly Network – 不安全的外部调用

2021 年 8 月,Poly Network 被攻击,损失 6.11 亿美元。根本原因是什么?一个特权合约 EthCrossChainManager 允许任意的外部调用。它接受用户控制的 _toContract 地址和 _methodbytes,让攻击者可以操纵对另一个特权合约 EthCrossChainData 的调用。攻击者成功绕过了所有权检查,并使用精心制作的 calldata 消耗了资金。

这次攻击突出了在没有强制执行严格的调用验证和访问控制的情况下,给予单个合约过多信任的危险。

2. Ronin & Harmony – 密钥管理不善

桥通常依赖多重签名进行操作。但是,当密钥受到保护不力时,整个系统就会崩溃。

Ronin Network(6.24 亿美元): 该桥使用了一个 9 验证器设置,只需要 5 个签名即可批准交易。攻击者入侵了 Sky Mavis(Axie Infinity 背后的团队),获得了 5 个验证器的访问权限,并提取了 17.3 万个 ETH 和 2500 万个 USDC。结果?迄今为止最大的 DeFi 黑客攻击。

Harmony Bridge(1 亿美元): Harmony 使用了 2/5 的多重签名设置。私钥可能以热钱包或纯文本形式存储,已被泄露。攻击者使用这些密钥签署恶意提款,并将资金桥接到以太坊、Tornado Cash 和其他链。

3. BNB Bridge – 加密证明伪造

由于其加密证明验证中的漏洞,BNB Bridge 遭受了 5.86 亿美元的损失。攻击者为合法区块 (110217401) 制作了一个伪造的 IAVL 树证明,伪造了一个通过验证的根哈希。

这座桥只处理了两个恶意消息,足以让攻击者铸造 200 万个 BNB。然后,黑客将其作为抵押品存入 Venus 协议,借用稳定币,并将资金分散到多个链上。币安不得不停止该链 8 个小时以减轻进一步的损失。

4. Wormhole – 签名验证绕过

2022 年 2 月,由于签名验证过程中的缺陷,Wormhole 损失了 3.26 亿美元的 ETH。verify_signatures 函数将检查委托给 Solana 的 secp256k1 预编译。但是由于错误的程序版本,没有进行真正的检查。攻击者通过制作伪造的 VAA(验证行动批准)消息并凭空铸造 12 万个 ETH 来利用这一点。

这次违规表明,确保正确集成和版本化依赖项(如加密程序)是多么重要。

5. Nomad Bridge – 初始化疏忽

由于配置错误的 Replica 合约,Nomad Bridge 被耗尽了 1.9 亿美元。升级后,该合约接受零地址作为可信根。这允许_任何_消息被认为是有效的。攻击者(以及复制该漏洞的随机用户)在没有证据的情况下调用了 process 函数,从而耗尽了资金。

第一个攻击者甚至第一次尝试失败,损失了 35 万美元的 gas 费——但在第二次尝试中成功了。黑客攻击的混乱性质导致了人群抢劫,机会主义的用户也加入了进来。

6. Qubit Finance – 非回滚转移

Qubit 的 QBridge 损失了 8000 万美元,因为当 tokenAddress 为零时,对 safeTransferFrom 的调用没有回滚。攻击者存入了零 ETH,但仍然被记入了价值。他们重复此操作以铸造虚假资产并将其桥接出去。

这里的教训是?永远不要假设失败的代币转账总是会回滚,尤其是在处理原生代币时。

经验教训

从自定义 calldata 操作到密钥管理不善和加密疏忽,这些攻击反映了一个反复出现的主题:复杂性会带来风险。以下是主要收获:

  • 不要过度信任特权合约。 始终验证输入、访问和目标调用。
  • 多重签名不是万能的。 安全的密钥管理至关重要,尤其是在热钱包或中心化实体控制密钥时。
  • 必须严格实施和验证加密原语。 单个处理不当的证明或版本不匹配都可能导致灾难性故障。
  • 初始化很重要。 未初始化或升级不善的合约可能会无意中接受无效数据。
  • 应仔细检查原生代币处理。 缺少调用成功检查是一个沉默的杀手。

桥对于多链未来至关重要,但它们也代表了 Web3 安全中最难解决的问题。只要它们的实现仍然复杂,并且其安全假设仍然脆弱,桥将继续成为黑客的主要目标。

结论

跨链桥旨在实现无缝的多链体验,但它们的复杂性使其成为 Web3 基础设施中最脆弱的组件之一。虽然这些系统背后的理论模型承诺安全高效的互操作性,但实际实现通常会因访问控制、加密验证和运营安全方面的疏忽而达不到要求。

从配置错误的合约和伪造的证明,到泄露的多重签名密钥和被忽视的初始化错误,攻击者甚至利用了最小的漏洞——将它们变成了数百万美元的漏洞。这些事件不仅仅是技术故障;它们是一个严峻的提醒,即在去中心化系统中,容错空间非常小。

  • 原文链接: blog.immunebytes.com/202...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
ImmuneBytes
ImmuneBytes
Stay Ahead of the Security Curve.