Multichain合约漏洞事后分析

Multichain于2022年1月10日意识到其流动性池合约和路由合约存在关键漏洞,影响了WETH、WBNB等八种代币。漏洞被修复后,仍有部分用户未撤销对受影响路由合约的授权,面临风险。Multichain发布公告敦促用户立即采取行动,并提出补偿计划,对已撤销授权并提交申请的用户100%赔偿损失。团队还向报告漏洞的安全公司Dedaub支付了高额漏洞赏金。

Multichain 合约漏洞事后分析

2022 年 1 月 10 日,我们收到了来自 Dedaub 的警报,提示 Multichain 流动性池合约和路由合约存在两个严重漏洞,后来证实影响了八种代币(WETH、WBNB、MATIC、AVAX、MFI、WSPP、TLOS、IOTEX)。 在报告后不久,流动性池的漏洞得到了修复,因为我们将受影响的代币流动性升级到了新的合约。 然而,尚未撤销受影响的路由合约授权的用户仍然面临风险。 重要的是,用户自己必须撤销授权。 因此,我们在 1 月 18 日发布了关于此漏洞的正式公告,并敦促用户立即按照说明采取行动。

当前状态(截至 UTC 时间 2 月 18 日 24:00)

  • 总共有 7,962 个用户地址受到影响,4861 个地址已撤销了授权,而其余 3101 个地址尚未撤销授权,仍需尽快采取行动。
  • 总共有 1,889.6612 WETH 和 833.4191 AVAX 被利用,其中 Multichain 和白帽黑客共同努力挽救了 912.7984 WETH 和 125 AVAX。

每日攻击总和,来自 @Dune Analytics

经过一个月努力通知所有受影响的用户,到目前为止,超过 61% 的用户已撤销了授权。 根据 Dune Analytics 的监控数据,攻击主要发生在漏洞披露后的第一周。 自 1 月 25 日以来,黑客攻击交易和金额大幅下降。 过去两周出现了一些金额非常低的攻击。

赔偿计划

通过与白帽黑客的共同努力,我们已成功从黑客手中挽救了 912.7984 WETH 和 125 AVAX,约占被盗资金总额的 50%。 然而,尽管我们尽了最大努力,但总共有 976.8628 WETH 被盗。

该团队发起了一项提案,以 100% 赔偿用户的损失,资金(包括矿工费)将退还给 a) 已撤销其授权且 b) 已在我们的帮助台提交了工单的用户。 自从我们披露黑客攻击并敦促用户撤销授权以来已经一个月了,并且该团队已经采取一切可用选项来通知所有用户该风险。 因此,我们将不赔偿 UTC 时间 2 月 18 日 24:00 之后发生的任何损失。

我们当然会继续尽一切努力从进一步的漏洞利用中挽救尽可能多的资金,并将随时向大家更新。 在 UTC 时间 2 月 18 日 24:00 之后挽救的任何资金将退还给用户(扣除矿工费)。

再次,我们强烈敦促曾经授予受影响的代币合约授权的用户在将任何代币发送到他们的钱包之前撤销授权。 请使用此工具通过 Multichain UI 进行检查和撤销。 如果你不确定如何操作,请按照我们的说明步骤。 如果你遇到任何问题,可以在我们的帮助台提交工单,或者通过 Telegram 联系我们,我们的团队将为你提供帮助。

漏洞赏金支付

我们感谢 Dedaub 在发现漏洞的第一时间与我们联系,并协助我们对抗攻击。 该团队将为 Dedaub 的每项漏洞披露奖励最高 100 万美元的漏洞赏金。 我们非常感谢 Dedaub 为 Multichain 的安全性所做的一切,并且我们毫不怀疑他们为可持续的加密生态系统做出了贡献。 我们将继续提供丰厚的奖励,以鼓励漏洞研究和披露。

特别鸣谢

在关键时刻跳出来并提供帮助的每个人。 非常感谢 Etherscan Team, Gelato, Ava Labs, Sushiswap, Spookyswap, Metamask, Opensea, Looksrare, Tether, Popsicle Finance, Frax Finance, Gemini, Synapse Protocol, BlockSec, 0xlosha, MevRefund 和所有社区成员。

事件时间表

1 月 10 日: 在 Dedaub 报告了两个漏洞后不久,便创建了一个作战室来讨论该错误。 我们采取了一系列行动来保护面临风险的资金。

  1. 我们检查了所有合约,涉及 1500 多个受支持的代币,并将受影响的合约范围缩小到 6 个代币(WETH、WBNB、MATIC、AVAX、MFI、WSPP)。 与这 6 个代币相关的流动性池的漏洞在 24 小时内得到修复。
  2. 这六个代币的路由合约已暂停。
  3. 与不同的合作伙伴进行了全面检查,以扫描受影响的地址。
  4. 建立了一个实时监控系统。
  5. 在前端建立了一个撤销门户
  6. 创建了一个安全的托管合约。
  7. 用户被通知撤销授权。

1 月 18 日: 我们发布了一份警报公告,敦促受影响的用户撤销授权。 同时,Multichain 迅速采取措施,通过不断向所有用户发布更新,并通过联系所有可能的渠道(Opensea、MetaMask、Polygon Bridge、Dapps 等)创建警报并呼吁用户立即采取行动,从而最大限度地提高用户撤销授权的比例。

在发布警报公告 16 小时后,发生了第一次漏洞利用。 Multichain 和安全公司 Dedaub 立即加入了对抗黑客的战斗,通过运行白帽机器人来营救用户。

1 月 19 日: 为了防止用户受到影响,我们开始向所有受影响的 AVAX、MATIC、WBNB 地址发送链上警报交易。

此外,我们联系了 Etherscan 浏览器,为攻击者和受影响的 WETH 地址设置警报横幅。

1 月 20 日: 经过谈判,一名黑客同意归还 259+63 ETH。

1 月 22 日: 安全公司 BlockSec 通过进行白帽黑客攻击加入了战斗。

1 月 24 日: 我们为 Dapps 开发了一个授权撤销 API 以进行集成,用户可以通过该 API 直接撤销授权。 包括 SpookySwap、SushiSwap、SpiritSwap、AVAX bridge、AAVE 等在内的 Dapps 已经集成了它。

1 月 25 日:

  1. 一位社区成员(Twitter 账号 @0xlosha)加入了白帽救援并保存了 125 AVAX。
  2. Multichain 发现该漏洞涉及两个额外的代币(TLOS、IOTEX)。 迅速采取措施来解决该错误,并在 24 小时内成功修复,没有造成任何损失。

1 月 29 日: 我们协助 WSPP 持有者处理了 1 月 26 日发生的漏洞利用。

2 月 14 日: 在社区成员的帮助下,Tether 冻结了一位黑客的以太坊地址,该地址持有价值超过 715,000 美元的 USDT。

2 月 17 日: 所有受影响的代币都升级到 V6 合约,支持原生币,并且不需要批准代币。

我们将与 Multichain 社区一起,继续尽最大努力追踪黑客并保护用户资金安全。

技术说明

收到安全公司的警报后,我们立即进行了检查,并能够重现和验证该漏洞。 我们彻底检查了所有可能涉及的合约。 该团队最终确认该漏洞涉及 2 个合约,AnyswapERC20(V5 和以前的版本)和 AnyswapRouter(V5 和以前的版本)。 易受攻击的函数如下,它们仅影响上述八个代币。

AnyswapERC20:

  • depositWithPermit

AnyswapRouter:

  • anySwapOutUnderlyingWithPermit
  • anySwapOutExactTokensForTokensUnderlyingWithPermit
  • anySwapOutExactTokensForNativeUnderlyingWithPermit

根本原因:该漏洞是在 Anyswap 合约和底层代币合约的共同作用下产生的。 对于某些底层代币合约,它们没有实现 permit 方法,但包含一个 fallback(非回滚)函数。 当调用其 permit 方法时,合约运行而不回滚。 执行以下操作的后果是将资金置于风险之中。

AnyswapERC20 合约用于流动性池。 收到漏洞警告时,该团队立即修复了它并部署了升级后的 V6 合约。 同时,该团队向 MPC 网络发送了一个警报请求,以将面临风险的流动性转移到升级后的流动性池中。 然后,该团队验证了池资产是安全的。

AnyswapRouter 合约用于跨链资产路由。 此漏洞会影响用户授予路由合约授权的资产,这意味着用户是唯一能够撤销其自身授权的人。 该团队立即在官方网站上开发了一个工具,使用户可以撤销授权,同时我们尽可能地以所有可能的方式通知用户撤销其授权。 此外,我们还开发了一个安全的托管合约,并监控面临风险的资产,以便对它们进行我们自己的白帽黑客救援。

这是一个攻击示例,用于解释此漏洞。 最终结果是用户授予 AnyswapRouter 合约授权的资产被转移到攻击合约。

黑客如何攻击?

黑客部署攻击合约,并将受影响的代币合约地址设置为其底层代币参数。 然后,他们可以通过调用 anySwapOutUnderlyingWithPermit 到 AnyswapRouter 合约来窃取用户资金。

  • “from” 可以是用户批准 AnyswapRouter 的用户地址,
  • “token” 是攻击合约地址,
  • “amount” 是用户地址中的余额,以及具有任意值的其他参数。

为防止这种情况再次发生而采取的措施

  • 进一步的安全审计。 将对合约、跨链桥和 MPC 进行进一步的安全审计。 该团队将继续努力增强整个跨链桥架构的安全性,并密切监控所有新合约。
  • MULTI 安全基金。 Multichain 将启动安全基金的治理提案。 安全基金用于对 Multichain 自身系统和服务中可能存在的漏洞造成的资产损失采取必要和可能的救援措施。 该基金的建立和使用将在稍后公布。
  • 漏洞赏金计划。 我们鼓励社区继续审查我们的代码和安全性。 我们将与 Immunefi 合作开展漏洞赏金计划。 该计划旨在认可独立安全研究人员和团队的价值。 我们认为,让好人保持积极性并确保他们知道自己受到赞赏非常重要。 该团队将为发现和提交漏洞提供 500 美元至 1,000,000 美元的奖励。 单击此处了解更多详情。
  • 免费的公共监督 API。 我们为本次事件开发的授权撤销 API 已被证明是有效的。 集成此 API 的协议和应用程序可以轻松检测然后提醒受影响的用户地址采取相应措施。 我们正在更新它,并将为所有项目提供免费的公共 API。

感谢大家的耐心学习和理解本次事件。 我们感谢每一位支持者,并珍惜你对我们的信任。 我们将从本次事件中学习,并变得更强大、更好。 我们一直在努力工作,并将继续尽最大努力成为 Web3 的终极跨链路由器。

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

0 条评论

请先 登录 后评论
multichainorg
multichainorg
江湖只有他的大名,没有他的介绍。