0xhabitat Multisig 被盗取事件分析

DAOrayaki
分析:0xhabitat Multisig 被盗取
    一位 Gnosis Safe 用户遭遇了严重且复杂的网络钓鱼攻击,导致该项目的 Multisig 被抽干。
    
    重要提示:我们当前的分析表明,这是针对特定 Gnosis Safe 用户的针对性攻击,我们没有迹象表明此攻击还会影响任何其他用户。该攻击也没有利用任何智能合约漏洞,而是使用网络钓鱼技术让 Multisig 所有者签署恶意交易。
    这篇博文旨在阐明 0xhabitat 事件并详细说明从中学到的东西。为了使这份事故报告完全客观,我们只包含了我们在链上和通过我们的后端(交易索引器)收集的第一手数据。可以在此处阅读 0xhabitat 团队的观点。首先,让我们从分析发生的事情开始……
    特洛伊木马
    本次事件的主要来源是两个模仿以下官方 Gnosis Safe 智能合约的恶意合约:
    
  • Safe Singleton:这是核心逻辑合约。每个 Safe 都是指向特定 Safe Singleton 的代理合约。Safes 可以由其用户升级以指向一个新的 Singleton,例如添加功能。
  • Safe Multisend:这是一种中介智能合约,使 Safes 能够将多个交易合并为一个。

    在本文中,恶意合约将被称为 Evil Singleton 和 Evil Multisend。Evil Multisend 合约于 11 月 23 日在此地址部署。合约的特殊之处在于,它不仅允许批量交易,还可以在同一笔交易中更改 Safe 的 Singleton。同一天,Evil Singleton 被部署在这个地址。Evil Singleton 充当特洛伊木马程序,最初将所有交互转发到原始Singleton,但有一个后门,使第三方能够访问 Safe。
    这是一个陷阱!
    0xhabitat 的故事开始于 Evil Multisend 合约部署后几个小时。在与 Evil Multisend 合约交互的 0xhabitat Multisig 中提出了一项交易。对于所有相关方来说,它看起来就像是使用 Transaction builder Safe App 进行的常规批量交易。然而,这是一个精心设计的交易,乍一看,它看起来像一个普通的 Multisend 交易,但实际上,它也将 Safe 的 Singleton 更新为 Evil Singleton。
    可以在此处找到有关激活 Evil Singleton 的更多技术细节。
    转折点
    Safe 升级到 Evil Singleton 后,7 天内什么都没有发生。与此同时,0xhabitat 金库逐渐增长到价值 100 万美元的数字资产。很明显,攻击者在执行实际攻击之前希望蜜罐变大,希望他们的后门之前没有被发现。11 月 30 日,攻击开始。黑客创建了一个交易,激活了 Evil Singleton,允许第三方账户完全控制保险箱中的资产。
    资金被抽干
    在Evil Singleton被激活后仅 30 分钟,攻击者就能够将所有资金提取到他们的账户中。随后,攻击者通过 Uniswap 和 Sushiswap 将所有资产转换为 ETH。然后通过多笔交易将生成的 ETH 发送到 Tornado Cash 合约,这是路径的终点。
    
    那么,究竟发生了什么?
    从我们目前收集到的信息来看,很明显 Multisig 中的一个签名者密钥被泄露了。这是因为导致后门实施的恶意交易是由 Multisig 的签名者根据我们的后端数据提出的。虽然无法准确确定这是如何实现的,但有两大类事件可能导致了这种情况。
    网络钓鱼
    有几种方式可能会误导所有者,导致其提出导致损害 0xhabitat Multisig 安全性的交易。可能的选项包括:
    
  • 流氓浏览器扩展:浏览器扩展方便,但也有风险。由于扩展可以自由修改 Web 应用程序的任何内容。因此,欺诈性浏览器扩展程序可能已被用于修改 Gnosis Safe Web 界面,以欺骗用户提出恶意交易。
  • 恶意接口:如此文所述,Gnosis Safe 的安全性取决于用于与帐户交互的接口的完整性。受影响的 0xhabitat 用户可能已经与模仿官方 Gnosis Safe 界面的界面进行了交互,但通过将常规交易的目标地址更改为 Evil Multisend 合约来有效地创建恶意交易。
  • 供应链攻击/受损网站:虽然问题的根源可能是对官方 Gnosis Safe 软件的恶意收购,但我们目前的评估表明情况并非如此(更多详情)。所有信号都表明这是对 0xhabitat Multisig 的针对性攻击,而不是官方 Gnosis Safe 界面的普遍问题。但是,我们也在继续调查和观察这方面的情况。

    恶意所有者
    第二个假设选项是所有者没有被诱骗提出恶意交易,而是自愿提出的。Multisig 中的两个签名者之一欺骗另一方签署欺诈性交易,导致 Multisig 遭到破坏。我们没有理由怀疑 0xhabitat 团队的完整性。但是为了在我们的分析中进行彻底的分析,我们仍然必须考虑这是对事件的可行解释。
    Gnosis Safe 团队的经验教训
    在我们仍在分析此事件的同时,我们已经立即采取了一些措施来减轻未来的类似攻击。所有这些更改都作为修补程序实施。
    暴露multisend地址
    为了能够验证交易中使用了哪个multisend合约,Safe Web UI 显式显示了multisend合约地址。阅读详情。
    
    交易详细信息显示完整的 Multisend 合约地址以供验证
    防止解码未知的multisend交易
    我们对解码机制进行了更改,以仅解码通过官方multisend实现触发的multisend交易。这使得交易与未知合同的交互变得清晰起来。
    标记意外的委托调用
    当交易使用委托调用与我们未知的合约时,我们添加了一个明确的警告。这是我们让用户意识到交易需要特别注意的另一种方式。
    
    通过 Gnosis 未知的合约发起的委托调用被标记
    给 Gnosis Safe 用户的建议
    虽然我们的目标是建立安全机制以防止将来发生此类情况,但在与 Gnosis Safe 交互时提醒 Gnosis Safe 用户在操作安全方面的实践也很重要。
    
  • 验证接口完整性:恶意接口可以通过欺骗共同签名者签署恶意交易来危及 Multisig 的整个安全性。如果您使用 Gnosis Safe Web 应用程序,请确保为官方应用程序的链接添加书签并验证 URL 和安全证书。或者更好的是,开始使用 Gnosis Safe Desktop 应用程序。
  • 不要只相信一个信息源:我们强烈建议使用额外的独立客户端/接口来详细检查每笔交易。例如,使用 Gnosis Safe 移动应用程序在签名前仔细检查交易。这可以防止单个受损接口诱使用户签署恶意交易。
  • 小心 DelegateCall:DelegateCall 是一个强大的工具,例如,它允许 Safes 批处理交易。但这也伴随着巨大的风险。因此,在识别使用 DelegateCall 的交易时,Gnosis Safe 用户应该特别注意。验证交易数据时,请验证使用了正确的 Multisend 目标地址。可以在此列表中找到经过 Gnosis 验证的 Multisend 实现。
  • 减少浏览器扩展的使用:虽然方便,但浏览器扩展可能成为关键的攻击媒介,甚至可以欺骗最高级的用户。我们通常建议不要在用于与 Gnosis Safe Web 应用程序交互的浏览器中使用任何浏览器扩展。

    
    Nexus Mutual 的创始人 Hugh Karp 也遭受了利用恶意浏览器扩展的攻击
    结论
    为个人和组织构建合适的工具以在 Web3 中保持安全是我们使命的核心。这就是为什么我们很遗憾听到 0xhabitat 团队资金被盗的原因。我们希望团队和社区从这种不幸的情况中一切顺利,并希望最终能确定攻击者并退还资金。
    参考资料
    
  1. https://etherscan.io/address/0x3cb0652856d7eabe51f1e3cceda99c93b05d7cea
  2. https://etherscan.io/address/0x09afae029d38b76a330a1bdee84f6e03a4979359
  3. https://bafybeiat2xp7cicrlpq3h57wdnz4pzaoby2cx62c3lprh3lzgrworcitly.ipfs.infura-ipfs.io/Exploit_Info.pdf
  4. https://blog.gnosis.pm/the-impact-of-phishing-on-web-3-0-a62385c81310
  5. https://github.com/gnosis/safe-react/issues/3091
  6. https://github.com/gnosis/safe-react/issues/3090

    DAOrayaki DAO研究奖金池:
    资助地址: DAOrayaki.eth
    投票进展:DAO Committee /7 通过
    赏金总量:90 USDC
    研究种类:DAO, 0xhabitat Multisig, safety
    原文作者: ?Lukas Schor
    贡献者:Yofu, DAOctor @DAOrayaki
    原文: The 0xhabitat Multisig Got Drained: An Analysis