详细分析:黑客如何从 Solana 虫洞桥窃取 80k ETH PlatoBlockchain 数据智能。垂直搜索。人工智能。

细分:黑客如何从 Solana Wormhole 桥中窃取 80k ETH

最糟糕的之一 黑客 对 Solana 区块链的攻击发生在周三,当时一名黑客设法将 80,000 以太币(ETH)(在撰写本文时超过 214 亿美元)从 Solana 系统中转移到以太坊区块链中,通过 Wormhole 桥——一项提供转移能力的服务不同区块链之间的资金。

在推文中解释 通过化名的 Twitter 个人资料 智能合约,黑客通过一次将 80,000 ETH 从以太坊上的 Wormhole 智能合约中转移出来,从而完成了漏洞利用。 交易. 事实证明,这只是一系列黑客攻击中的最后一步,使黑客能够窃取资金。 

“虽然这很戏剧化,但这笔交易只是一系列有趣事件的结束。 我不得不开始逆向工作,以弄清楚这是怎么可能的,”smartcontracts 推文。

监护人签署了虚假转让

虫洞是所谓的桥梁, 聪明的合同,在这种情况下,在以太坊上,它提供了一种在不同区块链之间移动加密资产的方法。 根据智能合约,从高层的角度来看,Wormhole 特别有一组所谓的监护人,它们签署区块链之间的转移。

虫洞守护者以某种方式签署了这笔 80,000 ETH 的转账,就好像它是 100% 合法的一样。

“取出80,000万的交易 ETH 实际上是攻击者将 80,000 ETH 从 Solana 转移到 Ethereum。 我最初认为合同可能错误地验证了转账上的签名,但签名 [were] 已完全签出。”

根据智能合约,第一个突破和部分解释来自于 交易 在 Solana 上,不知何故铸造了 120,000 个“虫洞 ETH”,将以太包裹在 Solana 上,不知从何而来。 由于黑客能够在 Solana 上铸造 Wormhole ETH,因此他能够正确地将其撤回到以太坊。

“索拉纳有点奇怪”

检查黑客的交易历史,有一笔交易发生在 120,000 Wormhole ETH 铸造之前。 在这个 交易,黑客只铸造了0.1个Wormhole ETH,就好像黑客在用少量测试该功能一样。

对黑客交易历史的进一步检查表明,黑客确实做了一个 定金 0.1 ETH 从以太坊到 索拉纳. 尽管攻击者没有向以太坊上的 Wormhole 智能合约存入 120,000 ETH,但这笔存款有一些有趣的地方。

正如 smartcontract 在他的推文中解释的那样,在 Solana 上铸造 Wormhole ETH 的交易触发了 Wormhole 智能合约 功能 所谓的“完整包装“。 该函数采用的参数之一是“传输消息”,基本上是 的话 由桥的监护人签名,上面写着要铸造的令牌和数量。

“Solana 有点奇怪,所以这些参数本身就是智能合约。 但重要的是这些“传输消息”合约是如何创建的。 这是 交易 这使得 0.1 ETH 转移消息,“智能合约推文。

谁在检查跳棋?

这个“传输消息”合约是通过触发一个 功能 所谓的“后VAA“。 最重要的是 post_vaa 通过检查监护人的签名来检查消息是否有效。 smartcontracts 说,这部分似乎很合理,但正是这个签名检查步骤破坏了一切。

“post_vaa”函数实际上并不检查签名。 相反,以典型的 Solana 方式,通过调用“验证签名= 功能。 其中一个 输入 “verify_signatures”功能是一个 Solana 内置“系统”程序,其中包含合约可以使用的各种实用程序。

在“verify_signatures”中,Wormhole 程序尝试检查在触发该函数之前发生的执行,是 安全协议256k1 执行签名验证功能。

“这个验证功能是一个内置工具,可以验证给定的签名是否正确。 所以签名验证已经外包给了这个程序。 但这就是错误的来源,”智能合约推文说。

虫洞合约使用了这个函数 加载指令 检查是否首先调用了 Secp256k1 函数,但是 load_instruction_at 函数最近被弃用了,因为它 不检查它是否针对实际系统地址执行!

比赛结束

根据智能合约,调用者应该提供 输入 正在执行的程序的系统地址,但黑客提供了不同的系统地址。

这是该系统地址被用作合法存款 0.1 ETH 的“verify_signatures”的输入:

正确的系统地址输入
正确的系统地址输入

但这里是 120k ETH 假存款的“verify_signatures”交易:

系统地址输入
错误的系统地址输入 

那不是系统地址!

“使用这个‘假’系统程序,攻击者可以有效地谎报签名检查程序被执行的事实。 签名根本没有被检查!” 智能合约推文。

“在那之后,比赛就结束了。 攻击者让监护人看起来像是在 Solana 的 Wormhole 中签署了 120k 的存款,即使他们没有。 攻击者现在需要做的就是通过将其“游戏”资金撤回以太坊来使其成为现实。 然后一次提取 80k ETH + 10k ETH(以太坊桥上的所有东西),一切都消失了。”

永恒穹顶

CryptoSlate 通讯

总结了加密货币、DeFi、NFT 等领域最重要的日常故事。

得到 边缘 在加密资产市场上

作为的付费会员,在每篇文章中访问更多的加密见解和上下文 CryptoSlate 边缘.

链上分析

价格快照

更多背景

立即加入,每月只需$ 19 探索所有好处

资料来源:https://cryptoslate.com/breakdown-how-the-hacker-stole-80k-eth-from-the-solana-wormhole-bridge/

时间戳记:

更多来自 CryptoSlate