2022 年 8 月 3 日,Solana 公链上发生大规模盗币的事件,大量用户在不知情的情况下被转移 SOL 和 SPL 代币,慢雾安全团队对此事件进行跟踪和分析,从链上行为到链下的应用逐一排查,目前已有新的进展。
Slope 钱包团队邀请慢雾安全团队一同分析和跟进,经过持续的跟进和分析,Solana foundation 提供的数据显示近 60% 被盗用户使用 Phantom 钱包,30% 左右地址使用 Slope 钱包,其余用户使用 Trust Wallet 等,并且 iOS 和 Android 版本的应用都有相应的受害者,于是我们开始聚焦分析钱包应用可能的风险点。
分析过程
在分析 Slope Wallet(Android, Version: 2.2.2)的时候,发现 Slope Wallet(Android, Version: 2.2.2)使用了 Sentry 的服务,Sentry 是一个被广泛应用的服务,Sentry 运行在 o7e.slope.finance 域名下,在创建钱包的时候会将助记词和私钥等敏感数据发送到 https://o7e.slope.finance/api/4/envelope/。
慢雾:靓号黑客已获取到ParaSwap Deployer和QANplatform Deployer私钥权限:10月11日消息,据慢雾区情报,靓号黑客地址之一(0xf358..7036)已经获取到ParaSwap Deployer和QANplatform Deployer私钥权限。黑客从ParaSwap Deployer地址获取到约1千美元,并在QANplatform Deployer地址做了转入转出测试。慢雾MistTrack对0xf358..7036分析后发现,黑客同样盗取了The SolaVerse Deployer及其他多个靓号的资金。截止目前,黑客已经接收到超过17万美元的资金,资金没有进一步转移,地址痕迹有Uniswap V3、Curve、TraderJoe,PancakeSwap、OpenSea和Matcha。慢雾MistTrack将持续监控黑客地址并分析相关痕迹。[2022/10/11 10:31:05]
慢雾:Multichain(AnySwap)被黑由于anySwapOutUnderlyingWithPermit函数相关问题:据Multichain(AnySwap)早前消息,2022年01月18日,一个影响6个跨链Token的关键漏洞正在被利用。慢雾安全团队进行分析后表示,此次主要是由于anySwapOutUnderlyingWithPermit函数为检查用户传入的Token的合法性,且未考虑并非所有underlying代币都有实现permit函数,导致用户资产被未授权转出。慢雾安全团队建议:应对用户传入的参数是否符合预期进行检查,且在与其他合约进行对接时应考虑好兼容性问题。[2022/1/19 8:57:49]
继续分析 Slope Wallet,我们发现 Version: >=2.2.0 的包中 Sentry 服务会将助记词发送到 "o7e.slope.finance",而 Version: 2.1.3 并没有发现采集助记词的行为。
慢雾:有用户遭钓鱼攻击,在OpenSea上架的NFT以极低匹配价格售出:据慢雾消息,有用户在 OpenSea 挂单售卖的 NFT 被恶意的以远低于挂单价匹配买。经慢雾安全团队分析,此是由于该受害用户遭受钓鱼攻击,错误的对攻击者精心构造的恶意订单进行签名,恶意订单中指定了极低的出售价格、买方地址为攻击者以及出售 NFT 为受害用户在 OpenSea 上架的待出售 NFT。攻击者使用受害用户已签名的出售订单以及攻击者自己的购买订单在 OpenSea 中进行匹配,并以攻击者指定的极低价格成交,导致受害用户的 NFT 以非预期的价格售出。[2021/12/11 7:31:47]
Slope Wallet 历史版本下载:
https://apkpure.com/cn/slope-wallet/com.wd.wallet/versions
慢雾:Cover协议被黑问题出在rewardWriteoff具体计算参数变化导致差值:2020年12月29日,慢雾安全团队对整个Cover协议被攻击流程进行了简要分析。
1.在Cover协议的Blacksmith合约中,用户可以通过deposit函数抵押BPT代币;
2.攻击者在第一次进行deposit-withdraw后将通过updatePool函数来更新池子,并使用accRewardsPerToken来记录累计奖励;
3.之后将通过_claimCoverRewards函数来分配奖励并使用rewardWriteoff参数进行记录;
4.在攻击者第一次withdraw后还留有一小部分的BPT进行抵押;
5.此时攻击者将第二次进行deposit,并通过claimRewards提取奖励;
6.问题出在rewardWriteoff的具体计算,在攻击者第二次进行deposit-claimRewards时取的Pool值定义为memory,此时memory中获取的Pool是攻击者第一次withdraw进行updatePool时更新的值;
7.由于memory中获取的Pool值是旧的,其对应记录的accRewardsPerToken也是旧的会赋值到miner;
8.之后再进行新的一次updatePool时,由于攻击者在第一次进行withdraw后池子中的lpTotal已经变小,所以最后获得的accRewardsPerToken将变大;
9.此时攻击者被赋值的accRewardsPerToken是旧的是一个较小值,在进行rewardWriteoff计算时获得的值也将偏小,但攻击者在进行claimRewards时用的却是池子更新后的accRewardsPerToken值;
10.因此在进行具体奖励计算时由于这个新旧参数之前差值,会导致计算出一个偏大的数值;
11.所以最后在根据计算结果给攻击者铸造奖励时就会额外铸造出更多的COVER代币,导致COVER代币增发。具体accRewardsPerToken参数差值变化如图所示。[2020/12/29 15:58:07]
Slope Wallet(Android, >= Version: 2.2.0)是在 2022.06.24 及之后发布的,所以受到影响的是 2022.06.24 以及之后使用 Slope Wallet(Android, >= Version: 2.2.0)的用户,但是根据部分受害者的反馈并不知道 Slope Wallet,也没有使用 Slope Wallet。
那么按照 Solana foundation 统计的数据看,30% 左右受害者地址的助记词可能被 Slope Wallet(Version: >=2.2.0)Sentry 的服务采集发送到了 Slope Wallet 的 https://o7e.slope.finance/api/4/envelope/ 服务器上。
但是另外 60% 被盗用户使用的是 Phantom 钱包,这些受害者是怎样被盗呢?
在对 Phantom(Version:22.07.11_65)钱包进行分析,发现 Phantom(Android, Version:22.07.11_65)也有使用 Sentry 服务来收集用户的信息,但并没有发现明显的收集助记词或私钥的行为。(Phantom Wallet 历史版本的安全风险慢雾安全团队还在分析中)
一些疑问点
慢雾安全团队还在不断收集更多信息来分析另外 60% 被盗用户被黑的原因,如果你有任何的思路欢迎一起讨论,希望能一起为 Solana 生态略尽绵薄之力。如下是分析过程中的一些疑问点:
1. Sentry 的服务收集用户钱包助记词的行为是否属于普遍的安全问题?
2. Phantom 使用了 Sentry,那么 Phantom 钱包会受到影响吗?
3. 另外 60% 被盗用户被黑的原因是什么呢?
4. Sentry 作为一个使用非常广泛的服务,会不会是 Sentry 官方遭遇了入侵?从而导致了定向入侵虚拟货币生态的攻击?
参考信息
已知攻击者地址:
Htp9MGP8Tig923ZFY7Qf2zzbMUmYneFRAhSp7vSg4wxV
CEzN7mqP9xoxn2HdyW6fjEJ73t7qaX9Rp2zyS6hb3iEu
5WwBYgQG6BdErM2nNNyUmQXfcUnB68b6kesxBywh1J3n
GeEccGJ9BEzVbVor1njkBCCiqXJbXVeDHaXDCrBDbmuy
受害者地址:
https://dune.com/awesome/solana-hack
Solana foundation 统计的数据:
https://www.odaily.news/newsflash/294440
https://solanafoundation.typeform.com/to/Rxm8STIT?typeform-source=t.co
https://docs.google.com/spreadsheets/d/1hej7MnhI2T9IeyXpnESmMcIHwgxGucSGUxQ5FqHB9-8/edit#gid=1372125637(需要申请访问权限)
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。