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

北京时间2022年2月3日凌晨1点58分,Solana跨链桥项目虫洞遭受攻击者发起的攻击。黑客绕过了Solana上的WormholeBridge验证过程,并为自己铸造了WormholeETH(wETH)。

此次事件中,攻击者通过注入一个性的sysvar帐户绕过了系统验证步骤,并成功生成了一条恶意“消息”,指定要铸造12万枚wETH。最后,攻击者通过使用恶意“消息”调用了“complete_wrapped”函数,成功铸造了12万枚wETH,价值约3.2亿美元。

该事件造成的损失金额之大,令其成为了DeFi史上第二大黑客攻击事件。

虫洞简介

虫洞,又称爱因斯坦-罗森桥,也译作蛀孔。是宇宙中可能存在的连接两个不同时空的狭窄隧道。

言归正传,其实Solana的跨链桥虫洞协议,确有虫洞在科学乃至科幻小说里相同的意思和定位。

诺奖得主:各国应禁止或至少开始认真监管比特币等加密货币:4月27日消息,2007年诺贝尔经济学奖得主Eric Maskin周二在清华大学中国经济思想与实践研究院(ACCEPT)举办的第四届“政府与市场经济学”国际研讨会上表示,比特币等加密货币是不能忽视的风险,世界其他国家应效仿中国,禁止比特币等加密货币,即便不能彻底禁止,至少也应开始认真监管。Maskin指出,在很多方面,传统货币都比比特币等加密货币强得多。比如,央行发行的货币不像比特币和其他私人加密货币那样容易受到巨大投机波动的影响,波动性可能对投机者有利,但对社会不利。比特币和其他加密货币经常被用于非法交易,原因是传统货币受到监管。

此外,Maskin表示,加密货币实际可能是有害的,其潜在危害尤其体现在两方面。

一是可能会干扰良好的货币政策。“如果人们使用像比特币这样的私人货币,货币政策的影响会相应变小。”他说,“我们可能会发现走出衰退变得更加困难。”

二是比特币等加密货币无法替代银行的关键作用,即评估和向企业家提供贷款。[2022/4/27 5:13:53]

虫洞可连接两个不同时空的隧道,从而节约时间进行“传送”。而Solana的跨链桥虫洞协议,是连接以太坊的桥。简单来说,它帮助我们节约了交易的时间和周期,避开以太坊的拥堵从而体验到Solana的快速交易。

声音 | 诺奖得主:数字货币使用率将增加,但区块链等系统或不会被广泛采用:金色财经报道,诺贝尔经济学奖得主、纽约大学教授Robert Engle表示,在过去十年左右的时间里,全球市场一直处于低风险区域,虽然数字货币的使用率将增加,但区块链等系统不会被广泛采用。当被问及加密货币等新型货币时,Engle指出,虽然数字支付将随着时间的推移而加快步伐,但他不相信区块链和其他不受政府监管的货币会成为主流。他还表示,来自社交媒体和气候变化的信息确实会推动市场。[2019/11/27]

漏洞攻击流程

步骤一:攻击者使用假sysvaraccount调用“verify_signatures”函数:https://solscan.io/tx/25Zu1L2Q9uk998d5GMnX43t9u9eVBKvbVtgHndkc2GmUFed8Pu73LGW6hiDsmGXHykKUTLkvUdh4yXPdL3Jo4wVS①以伪造的“sysvaraccount”作为参数调用的“verify_signatures”函数:

诺奖得主托马斯?萨金特看好人工智能区块链前景:诺贝尔经济学奖得主托马斯?萨金特发表《人工智能和区块链将如何为政府和企业创造新的机遇与挑战》的主题演讲,他一再强调看好人工智能和区块链前景。他表示,区块链对于金融体系来讲是很可靠的技术,不是随机形成,是根据以往每次形成的电子签名而形成起来非常稳定的系统,对整个金融系统来说是很好的技术支持,对于投资客户来说也是激动人心的技术。“中国目前是人才汇聚,尤其是统计学和计算机上更是长江后浪推前浪,相信人工智能将能在不同的公司和机构得到落脚和整合。”萨金特表示。[2018/1/9]

相比之下,以下截图是以真实的“sysvaraccount”作为参数的“verify_signatures”函数:

②?“verify_signatures”函数从sysvar(L92)加载当前指令。

③?然而,函数“load_current_index”并不能验证“sysvaraccount”是否真的是“systemsysvar”。由于从“sysvar”中检索到的当前指令是由攻击者控制的,因此它可以顺利通过以下验证过程。

步骤二:攻击者随后使用上一步验证的签名调用“post_vaa”函数,并创建一个恶意消息帐户,声明要铸造12万枚wETH:https://solscan.io/tx/2SohoVoPDSdzgsGCgKQPByKQkLAXHrYmvtE7EEqwKi3qUBTGDDJ7DcfYS7YJC2f8xwKVVa6SFUpH5MZ5xcyn1BCK

①Account2是通过“verify_signatures”指令生成的签名集。②Account3是将在“complete_wrapped”函数中使用的消息帐户。

步骤三:攻击者调用“complete_wrapped”函数读取恶意消息账户中的数据并铸造12万枚wETH:https://solscan.io/tx/2zCz2GgSoSS68eNJENWrYB48dMM1zmH8SZkgYneVDv2G4gRsVfwu5rNXtK5BKFxn7fSqX9BvrBc1rdPAeBEcD6Es

①?Account3是“post_vaa”函数生成的消息账户。

②?Account6是“收件人”地址,用于接收铸造的WormholeETH。③Account9是WormholeETH的铸币机构,是一个PDA。这就是为什么在签名验证通过后,攻击者可以直接铸造代币。

步骤四:部分铸造的wETH被转移到以太坊,其余的被交换到USDC和SOL:

https://solscan.io/tx/j3jUDG43di8Dsg7Q3jQhstamtBovu1GLqnDJ7yNvM3r4pnK9e7uqgt9uBobCjT5S1BKhZZFQNQwDxypEYqLknec

https://solscan.io/tx/5UaqPus91wvAzKNve6L8YAHsESomZQ7GWi37gPFyzTHcXNMZA641bb8m8txo7bS7A5cAnzKDKYyiKcQC8GgDcAuf

https://solscan.io/tx/3AugXqrXunBa96YfqENhPBiWZWpnSnJdqAHS64qcHTVU9KtfGon8cN9cUuXsDmBobBBXjYUtuRxnYxgERS42nh6G

https://solscan.io/tx/2SndtH3tU4j6v14HJzEde3d3dnpdHqTPn4VnvhTj4zKLo26H5kmtCwjn2nANfjXNVbmFsyEGtD4Jte25azsPwaRk

为了防止将来此类问题的发生,必须检查并验证函数使用的所有帐户。特别是在该案例中,由于部分检查过程依赖于外部调用,而外部调用的可靠性被过度信任,从而引入了风险。

开发者提出如下几点建议:开发者在使用外部依赖的函数时,需要对这个函数有足够的了解。

随时关注外部依赖代码库的重要更新,在有重大版本变动时及时对自己的代码库做出相应的调整。

当代码版本更新时,也需及时进行全面审计,并将审计后的代码及时更新到已部署上链的代码中。

农历破五将至,希望大家“破五穷”。同时也希望每一个项目在经过严格的审计之后上线部署从而获得更高的安全性并减少财产损失的可能。好运从新的一年起开始不断“循环”;安全从严格的审计开始,每个项目都有更好的“开端”!

迄今为止,CertiK已获得了2500家企业客户的认可,保护了超过3110亿美元的数字资免受损失。欢迎点击CertiK公众号底部对话框,留言免费获取咨询及报价!

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

区块博客

[0:15ms0-6:237ms