一、事件概览
北京时间6月28日,链必安-区块链安全态势感知平台(Beosin-Eagle Eye)舆情监测显示,Polygon生态算法稳定币项目SafeDollar遭到黑客攻击。攻击事件发生后,SafeDollar项目所发行的稳定币(SDO)价格从1.07美元,瞬间跌至归零。
有消息指出,一份未经证实的合约抽走了25万美元的USDC和USDT;后经Rugdoc.io分析证实,此次攻击事件中黑客总共获利价值25万美元的USDC和USDT。随后,SafeDollar项目方发布公告,要求投资者停止所有与SDO相关的交易。目前,SDO交易已暂时中止。
鉴于此次攻击事件所具备的标志意义,成都链安·安全团队第一时间介入分析。继5月初BSC(币安智能链)诸多链上项目频频被黑之后,6月末Polygon生态也开始被黑客盯上,“潘多拉魔盒”是否已经悄然开启?借此事件,成都链安通过梳理攻击流程和攻击手法,提醒Polygon生态项目加强安全预警和防范工作。
Safe集成ERC-4337,增强帐户抽象功能:7月13日消息,数字资产管理平台 Safe(原 Gnosis Safe)集成ERC-4337,以增强帐户抽象功能。账户抽象使钱包能够作为智能合约工作,并运行一系列复杂的功能,例如多因素身份验证、钱包社交恢复以及用户使用任何代币进行交易的灵活性。[2023/7/13 10:53:25]
二、事件分析
此次攻击事件中,攻击者利用PLX代币转账时实际到账数量小于发送数量以及SdoRewardPool合约抵押和计算奖励上存在的逻辑缺陷,借助“闪电贷”控制SdoRewardPool合约中抵押池的抵押代币数量,进而操纵奖励计算,从而获得巨额的SDO奖励代币,最后使用SDO代币将SDO-USDC和SDO-USDT两种兑换池中USDC和USDT全部兑换出来。
Safe更新代币分发提案:快照日期延后至8月18日:9月1日消息,数字资产管理平台 Safe( 原 Gnosis Safe)在收集社区反馈后,更新 SAFE 代币分发提案,新代币分发更新规则提案下,所有符合条件的 Safe 账户将获得至少 100 个代币,符合条件的 Safe 账户数量有 55,719 个。具体更改内容包括:
一、快照日期延后至 2022 年 8 月 18 日(之前为 2022 年 2 月 9 日);
二、目前考虑的资产还包括稳定币 DAI、USDC、USDT,而不仅仅是 ETH 和 WETH;
三、将基于交易活动和存储价值分配的代币之间的份额设置为 50:50(之前是 2:1)四、所需的最小交易数减少到 1(此前要是 3 笔);
四、所需的最小交易数减少到 1(此前要是 3 笔);
五、现在不设置存储最小值(之前是 1 ETH)。[2022/9/2 13:03:20]
攻击者地址:
Safe计划推出自己的的代币:金色财经报道,机构级钱包Safe计划推出自己的名为 SAFE 的代币,但目前还没有确定推出的时间表。然而,加密货币分析师表示,投资者可以通过购买与 Safe 的母公司 Gnosis 相关的 GNO 代币,通过某种后门开始押注 Safe 的成功。
自本月早些时候 Safe从 1kx、Coinbase Ventures、Tiger Global Management 和 Digital Currency Group 等 50 多家投资者的战略融资中筹集 1 亿美元以来, GNO 的价格已经上涨了 30% 以上。
此前,George称,SAFE 代币可能会在 9 月或 10 月推出。(Coindesk)[2022/7/27 2:40:12]
0xFeDC2487Ed4BB740A268c565daCdD39C17Be7eBd
Fantom基金会宣布发布基于Gnosis的多签钱包Fantom Safe:6月8日消息,Fantom基金会宣布发布基于Gnosis的多签钱包Fantom Safe。分布式团队和DAO现在可以联合在一个钱包中存储和管理FTM和基于Fantom的资产。Fantom表示,该多签钱包拥有定义策略的功能,可定义至少需要多少人签名才可使用钱包,也可定义不同地址的支出限额,而添加所有者或设置支出限制需要0.001美元的交易费用。FantomSafe与MetaMask、WalletConnect和Ledger兼容。[2021/6/8 23:21:55]
攻击合约:
0xC44e71deBf89D414a262edadc44797eBA093c6B0
0x358483BAB9A813e3aB840ed8e0a167E20f54E9FB
SAFE创始人因分歧考虑迁移或创建新币,SAFE 24小时跌幅近74%:Continue Capital联合创始人在微博表示,SAFE创始人爆料,有可能迁移token甚至重新创建一个新币,也能体会到要做到公平分发是一件多么困难的事。
操作手法基本是:因为SAFE的1池、2池都是单币池,需要投保才能生成,有人(Azeem Ahmed)在公布4池(SAFE/Dai池,本质就是SAFE的价格池)之前利用消息就大量投保买了很多yNFT covers,这样就占据1池、2池大量份额,并且在价格池4池上线后,别人都很难进入1/2池子,在各种引发Fomo吸引锁仓推高价格之后,直接砸到4池获利。
据悉,SAFE(Yieldfarming.Insure)是一个通过购买保险来挖矿的DeFi产品。CoinGecko行情显示,SAFE现报546.35美元,24小时跌幅73.9%。[2020/9/16]
攻击交易:
0xd78ff27f33576ff7ece3a58943f3e74caaa9321bcc3238e4cf014eca2e89ce3f
0x4dda5f3338457dfb6648e8b959e70ca1513e434299eebfebeb9dc862db3722f3
0x1360315a16aec1c7403d369bd139f0fd55a99578d117cb5637b234a0a0ee5c14
以下分析基于以下两笔交易:
攻击者首先使用PolyDex的WMATIC和WETH池进行PLX借贷,如下图所示:
接下来,攻击者通过攻击合约反复进行抵押提取,主要是为了减少SdoRewardPool合约中SDO抵押池中的抵押代币数量。
PLX代币合约进行代币转移时,如果from地址不在_isExcludedFromFee列表中,并且to地址也不在_isExcludedToFee列表中,会对转移的代币收取一次奖励基金以及销毁本次转移代币数量的0.05%。
而在SdoRewardPool合约中,记录的数量为调用者所转移的数量,没有减去转移过程中损耗的部分,在进行提取操作时,提取的数量为记录的数量,超出了用户实际抵押到本合约的数量,故会造成该抵押池中抵押代币的异常减少。
攻击者事先通过攻击合约
(0x358483BAB9A813e3aB840ed8e0a167E20f54E9FB)在该抵押池中抵押214.235502909238707603 PLX,在攻击合约
(0xC44e71deBf89D414a262edadc44797eBA093c6B0)攻击完成后,控制攻击合约
(0x358483BAB9A813e3aB840ed8e0a167E20f54E9FB)在该抵押池中进行奖励领取,由于SdoRewardPool合约中更新抵押池信息时使用的是balanceOf函数获取本合约中抵押代币数量,故获取到的数量是恶意减少之后的数量,继而造成PLX抵押池中accSdoPerShare变量异常增大,从而获取到巨额的SDO代币奖励。
最后利用获取到的SDO代币将SDO-USDC和SDO-USDT两种兑换池中USDC和USDT全部兑换出来。
三、事件复盘
事实上,此次攻击事件并不复杂,但是值得引起注意。首先添加抵押池时添加了非标准代币,再加上计算奖励时使用了balanceOf函数进行抵押代币数量的获取,所以导致了此次攻击事件的发生。
从安全审计的角度看,项目方作为添加抵押池的管理员,对于将要添加的抵押池中的抵押贷币,一定要三思而后行。通胀通缩类以及转移数量与实际到账数量不同的代币,不建议作为抵押池的抵押代币;如果因业务需要一定要添加这些类型的代币作为奖励代币,务必与其他标准代币分开处理。同时在抵押池中建议使用一个单独的变量作为抵押数量的记录,然后计算奖励时,使用通过此变量来获取抵押代币数量,而不是使用balanceOf函数。
另外,此次攻击事件对于Polygon生态链上项目而言,是否会是一个“危险信号”,Polygon生态的“潘多拉魔盒”是否会就此打开,这还需要观望后续态势发展。不过,回望5月,BSC生态发生第一起闪电贷攻击之后,便就此拉开了“BSC黑色五月”序幕。鉴于前车之鉴,成都链安在此提醒,Polygon生态链上项目未雨绸缪,切实提高安全意识!
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。