金兰云推广平台
力争做具有影响力外链平台!
欢迎投稿本网站
首页>>金融知识 >

CertiK:Solana跨链桥虫洞事件分析

发布时间:2022-02-24 08:37:28   来源:金兰云推广平台    作者:一朵金兰云

CertiK:Solana跨链桥虫洞事件分析北京时间2022年2月3日凌晨1点58分,Solana跨链桥项目虫洞(Wormhole)遭受攻击者发起的攻击。黑客绕过了 Solana 上的Wormhole Bridge验证过程,并为自己铸造了Wormhole ETH (wETH)。此次事件中,攻击者通过注入一个欺骗性的 sysvar 帐户绕过了系统验证步骤,并成功生成了一条恶意“消息”,指定要铸造12万枚wETH。最后,攻击者通过使用恶意“消息”调用了“complete_wrapped”函数,成功铸造了12万枚wETH,价值约3.2亿美元。该事件造成的损失金额之大,令其成为了DeFi史上第二大黑客攻击事件。
虫洞(Wormhole),又称爱因斯坦-罗森桥,也译作蛀孔。是宇宙中可能存在的连接两个不同时空的狭窄隧道。言归正传,其实Solana的跨链桥虫洞协议(Wormhole Protocal),确有虫洞在科学乃至科幻小说里相同的意思和定位。虫洞可连接两个不同时空的隧道,从而节约时间进行“传送”。而Solana的跨链桥虫洞协议(Wormhole Protocal),是连接以太坊的桥。简单来说,它帮助我们节约了交易的时间和周期,避开以太坊的拥堵从而体验到Solana的快速交易。
铸币12万枚Wormhole ETH: https://solscan.io/tx/2zCz2GgSoSS68eNJENWrYB48dMM1zmH8SZkgYneVDv2G4gRsVfwu5rNXtK5BKFxn7fSqX9BvrBc1rdPAeBEcD6Es 将代币转到以太坊: https://etherscan.io/address/0x629e7da20197a5429d30da36e77d06cdf796b71a#internaltx 
步骤一:攻击者使用假 sysvar account调用“verify_signatures”函数:https://solscan.io/tx/25Zu1L2Q9uk998d5GMnX43t9u9eVBKvbVtgHndkc2GmUFed8Pu73LGW6hiDsmGXHykKUTLkvUdh4yXPdL3Jo4wVS①以伪造的“sysvar account”作为参数调用的“verify_signatures”函数:CertiK:Solana跨链桥虫洞事件分析相比之下,以下截图是以真实的“sysvar account”作为参数的“verify_signatures”函数:CertiK:Solana跨链桥虫洞事件分析② “verify_signatures”函数从 sysvar (L92) 加载当前指令。CertiK:Solana跨链桥虫洞事件分析③ 然而,函数“load_current_index”并不能验证“sysvar account”是否真的是“system sysvar”。由于从“sysvar”中检索到的当前指令(L92)是由攻击者控制的,因此它可以顺利通过以下验证过程。
步骤二:攻击者随后使用上一步验证的签名调用“post_vaa”函数,并创建一个恶意消息帐户,声明要铸造12万枚wETH:https://solscan.io/tx/2SohoVoPDSdzgsGCgKQPByKQkLAXHrYmvtE7EEqwKi3qUBTGDDJ7DcfYS7YJC2f8xwKVVa6SFUpH5MZ5xcyn1BCKCertiK:Solana跨链桥虫洞事件分析① Account2 是通过“verify_signatures”指令生成的签名集。② Account3 是将在“complete_wrapped”函数中使用的消息帐户。
步骤三:攻击者调用“complete_wrapped”函数读取恶意消息账户中的数据并铸造 12万枚wETH:https://solscan.io/tx/2zCz2GgSoSS68eNJENWrYB48dMM1zmH8SZkgYneVDv2G4gRsVfwu5rNXtK5BKFxn7fSqX9BvrBc1rdPAeBEcD6EsCertiK:Solana跨链桥虫洞事件分析① Account3 是“post_vaa”函数生成的消息账户。② Account6 是“收件人”地址,用于接收铸造的Wormhole ETH。③ Account9 是 Wormhole ETH 的铸币机构,是一个 PDA(程序派生地址)。这就是为什么在签名验证通过后,攻击者可以直接铸造代币。
步骤四:部分铸造的 wETH 被转移到以太坊,其余的被交换到 USDC 和 SOL:
这个漏洞的根本原因是在验证签名过程(“verify_signatures”)中,程序使用了一个在Solana更新至1.8.0时即被废弃的“load_current_index”函数。该函数不会验证输入的“sysvar account”是否真的是“system sysvar”,从而攻击者可以趁机伪造这个关键帐户。CertiK:Solana跨链桥虫洞事件分析 为了防止将来此类问题的发生,必须检查并验证函数使用的所有帐户。特别是在该案例中,由于部分检查过程依赖于外部调用,而外部调用的可靠性被过度信任,从而引入了风险。
目前,Wormhole团队已修复漏洞并已恢复网络。在此,CertiK给开发者提出如下几点建议:农历破五将至,希望大家“破五穷”。同时也希望每一个项目在经过严格的审计之后上线部署从而获得更高的安全性并减少财产损失的可能。好运从新的一年起开始不断“循环”;安全从严格的审计开始,每个项目都有更好的“开端”!迄今为止,CertiK已获得了2500家企业客户的认可,保护了超过3110亿美元的数字资免受损失。欢迎点击CertiK公众号底部对话框,留言免费获取咨询及报价!

上一篇:3 亿美元为Wormhole补窟窿,探究加密风投中最低调的华尔街巨头Jump Trading

下一篇:突发:俄军已突破哈尔科夫州界,全球股市重挫

分享到:
0
最新资讯
最受欢迎