SOL:Solana授权钓?事件解析:授权转移还是直接偷??

前两天,Solana区块链上出现了安全预警,有?篇?章指出?个名为https://officialsolanarares.net/mint/钓??站在?户批准之后,可以将?户的原?代币转?。在该?章中提到了?点:恶意合约在?户批准(Approve)后,可以转??户的原?资产(这?是SOL),这点在以太坊上是不可能的,以太坊的授权钓?钓不?以太坊的原?资产(ETH),但可以钓?其上的Token。于是这?就存在“常识违背”现象,导致?户容易掉以轻?。其实该?章这?的说法是不甚准确的,混淆了批准交易和Solidity中ERC-20代币授权这两个不同的概念。真实情况是通过Solana的签名扩散机制,恶意合约直接盗取了?户的SOL资产,和通常意义上的授权并没有什么关联。1.以太坊中的授权

Soluna Holdings宣布建立用于比特币挖矿和其他密集型计算应用的绿色数据中心:金色财经报道,Soluna Holdings首席执行官John Beliziare向股东发表了一封公开信,宣布建立用于比特币挖矿和其他密集型计算应用的绿色数据中心。

John Beliziare称,比特币在加密货币领域的突出地位及其对安全解决方案日益增长的需求使其非常适合我们的有限能源方法,而人工智能的兴起为我们公司提供了进一步增长和多元化的机会。[2023/6/23 21:55:15]

在以太坊中,通常意义上授权是指?户调?代币合约,向其它地址授权?定处理额度,这样我们在和其它合约交易时,可以?便的?付ERC-20代币。在这?,授权是必须的,否则第三?合约?权处理?户的代币资产。同时,这种机制也伴?了?量的授权攻击,只要你授权了恶意合约,恶意合约就可以转?你的ERC-20代币。2.Solana中的授权

Solana链上NFT交易总额突破8亿美元:12 月 20 日消息,据最新数据显示,Solana 链上 NFT 交易总额突破 8 亿美元,创下历史新高。本文撰写时为 800,210,323 美元,链上交易总量为 580,431 笔。当前 Solana 区块链上 NFT 交易额最大的 NFT 项目是 Degenerate Ape Academy,交易额为 115,685,589 美元,其次是 Solana Monkey Business,交易额为 112,745,037 美元,这两个 NFT 项目交易总额占到 Solana 链上交易额的近 30%。[2021/12/20 7:51:23]

在Solana中,代币?般为官?提供的spl-token合约,它模拟了ERC-20代币的?为,因此也存在类似的ERC-20授权概念。同样授权第三?合约后第三?合约可以处理?户的代币(注意不是原?币SOL)。这点同以太坊是?致的,并没有什么反常识。3.Approve的涵义

Solana 协议库漏洞可能导致攻击者每小时窃取 2700 万美元:金色财经报道,据 Neodyme 的安全研究人员称,Solana 协议库中的一个漏洞,一组 Solana 项目的参考文档可能导致攻击者以每小时 2700 万美元的速度从多个 Solana 项目中窃取资金。受影响的项目包括收益聚合器 Tulip Protocol 和借贷协议 Solend 和 Larix。这些项目目前管理着 17 亿美元的资金。 Neodyme 解释说,该漏洞是由 Neodyme 的一名审计员西蒙于 6 月在文件共享平台 GitHub 上首次公开披露的。当时,安全研究人员不知道它是否可以被利用或它的影响有多大。这个错误没有被注意到。

12 月 1 日,Simon 看到问题仍然存在并且错误尚未修复。由于他的担忧,Neodyme 的安全研究人员开始测试是否有可能利用该漏洞,并评估其严重程度。(The block)[2021/12/4 12:51:20]

不管在以太坊中还是在Solana中,我们习惯将Approve当作授权,因此?然?然的会认为是代币授权。当我们使?MetaMask钱包时,如果是代币授权交易会明确提示授权,并且所有交易弹出的是?个确认按钮。然?在Solana的Phantom钱包?,弹出的是?个Approve按钮,让?很容易以为是授权交易。但真实情况是批准?次交易?并不是进?代币授权。所以安全预警中出现的被盗?为,是?户批准了?个未知交易,?不是?户进?了SOL的授权操作,当然也就不能说是授权偷?了原?币。4.交易直接转?原?货币

前微软高管Alex Solomon加入区块链游戏平台Enjin以推进企业业务:区块链游戏平台Enjin周一宣布,曾在微软担任Azure西欧产品营销总监的Alex Solomon已加入该平台,担任其企业平台执行董事。Enjin表示,作为Enjin的企业主管,Solomon将与希望使用区块链技术创造数字体验的企业客户合作,以提高客户留存、获取和参与。(CoinDesk)[2020/11/16 20:58:44]

交易转?批准者的原?货币,例如SOL和ETH,是?常简单的。在以太坊上的Solidity中,只要调??个payabletransfe的函数就可以转?交易?户的ETH;在Solana中,相应的,只要调?系统合约的户的SOL资产,这和我们平常讲的代币授权概念是没有任何关系的。函数也能转移?交易?不同的是,在Solidity中,ETH转移发?在合约调?的时候,因此钱包可以提前知道要转移的ETH数量并显示出来,?在Solana中,转移是发?在合约内部的,因此钱包?法提前知晓你会被转?多少SOL,当然也会?法显示。只要你签名认同了这笔恶意交易,你就相当于签名认同了这次SOL转移,这正是这次Solana上钓?盗取的问题所在。?段类似如下的代码就可以在合约内部转移user的SOL。

5.Solana中的签名扩散机制

在Solana中,有?个签名扩散机制。?户调?合约A,此时合约A中?户是签名批准的。当合约A内部调?合约B时,?户的签名会随着跨合约调??起扩散到合约B。因此,在合约B中,?户也是签名批准的。所以这?存在?个安全?险,当签名?个恶意合约时,恶意合约就获取了我们这个签名,然?它可以拿我们这个签名做任何事情!!!!!!!在上述的偷盗事件中,?户同恶意合约3VtjHnDuDD1QreJiYNziDsdkeALMT6b2F9j3AXdL4q8v进?交易,该合约直接调?系统合约转移?户的SOL,因为签名随着调??起扩散到了系统合约,因此系统合约认为该笔交易也是批准过的,是正常的,所以就转?了?户的资产。6.具体被盗交易

其中?笔被盗交易:https://explorer.solana.com/tx/4j33JSGRS6rD5irzW1cA9wjQAvAgVDAnBTrGRjqtqBBWXspTzU5HpEFwTeCC2uD9hH9eA2Pw5ddHyd5JyG6h6cNq我们可以看到该交易涉及的输?账号:

这其中:?户账号:4XF4wyjein7ZN4RPM6YK2mC2mC6T41cZAoKjJqpP19fRSOL转移账号:BepccLHDcXqqHi6MfpTDo9Sfc5tmRjmSC1XY48Tb8HuY恶意合约地址:3VtjHnDuDD1QreJiYNziDsdkeALMT6b2F9j3AXdL4q8v从上可以看出,?户账号调?合约后转移了1.2545SOL到转移账号。同时我们可以看到并没有涉及到spl-token代币合约,出产没有通常意义上的授权这么回事。其交易打印出的?志为:从?志中也可以判断,恶意合约仅是简单的调?了系统合约转?了?户的SOL,因此?户签名批准了对恶意合约的交易,这个签名也扩散到了系统合约,因此判定有效。7.结论

在Solana中,不要轻易确认或者批准任何来历不明的交易,因为它可以拿你的签名代表你做任何事情。

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

链链资讯

[0:15ms0-6:987ms