又现套利攻击!—Goldfinch项目的SeniorPool合约遭受攻击事件分析
2022-06-2816:55:30
2022年6月28日,成都链安链必应-区块链安全态势感知平台舆情监测显示,Goldfinch项目的SeniorPool合约遭受攻击,攻击者累计获利金额为28,523个USDC,项目方累计损失541,158个USDC。成都链安安全团队对此事件进行了分析,现与大家分享。
声音 | CSW谈BSV大涨:知道背后有什么事,但不会说出来:BSV支持者Craig Wright(CSW)近期接受了BlockTV的采访。在谈及BSV日前大幅拉升近300%的背后原因时,CSW表示:“我知道这背后有什么事、什么人,也知道其他的一些事情。我知道有人在做些什么,但这些都不是公开信息,所以我不打算分享。”在谈及与Kleiman的诉讼案时,CSW表示,他不会让法院轻易地强制他支付(50万比特币)。因为如果他把50万比特币交给Kleiman,数字资产和整个加密货币市场都会受到影响,因为Kleiman很可能会为了支付遗产税而出售大量比特币。在谈及关键性的私钥问题时,CSW称不愿意透露任何细节。(Crypto Ticker)[2020/1/31]
#攻击过程
声音 | 多位议员Libra听证会后接受采访:没有看到取得什么进展:在美国国会众议院金融委员会关于Libra的听证会结束后,众议院两党议员都对冗长的证词表示了不满。众议院金融委员会的成员表示,并没有看到(扎克伯格出席听证)取得了什么进展。该委员会高级成员、北卡罗来纳州共和党人Patrick McHenry表示:“坦率地说,我不确定我们在这里学到了什么新东西。”该委员会的其他几位成员也同意这一观点。德克萨斯州民主党众议员Sylvia Garcia也发表了类似于McHenry的评价,她还对Facebook及Libra协会这两个实体是分开的说法提出了质疑。该委员会主席Maxine Waters则表示,她根本不支持这个计划,不明白Libra想要达到什么目的,且项目也没有得到“充分的解释”。Waters称:“我要求Libra暂停工作。扎克伯格也承诺,在没有监管机构批准之前,他们不会启动这项计划。但她‘不太确定’这是同一回事。”(CNBC)[2019/10/24]
攻击交易地址:
声音 | 比特币安全专家:Facebook Coin与PayPal及数字法币没什么分别:据AMBcrypto报道。比特币安全专家Andreas Antonopoulos近期在YouTube的问答环节上表示,他对于像Facebook这样的大公司要发行加密货币一事并不感到担忧,因为他一直都认为迟早会产生这样的公司代币,甚至全球的央行都会推出自己的加密货币,但这些加密货币都会具有法币的特征,唯一的区别在于如何实现——从先前的微软SQL数据库转向区块链数据库。 Antonopoulos接着指出,在现实中,如果不遵守银行监管,Facebook Coin就不能用于跨境交易。如果没有严格的KYC/ AML政策,Facebook将不会提供其加密货币,这与PayPal没有任何不同,与银行提供的数字法币也没有什么分别。然而,与Visa、摩根大通或PayPal相比,Facebook此类公司的额外好处是能为其加密货币提供更好的用户体验、服务、交易速度和品牌识别。[2019/3/31]
0xd56d801e07df9d8457973c3938f5d3e6343ec1ed11f4ebb76bc3f5cc73001707
攻击者地址:
0x86c595d81c8ab46d893065c3c674da72555fe7c0
攻击者合约:
0x541143d5eb30563a478eea23866e203b7c38c1ca
本次攻击存在多笔,我们选取了具体的一笔攻击交易进行分析:
1.?第一步:攻击者通过UniswapV3的DAI-USDC池子闪电贷借出110,000个USDC代币。
2.?第二步攻击者再把110,000个USDC代币从Curve的FIDU-USDC池子兑换出106,667个FIDU代币。
3.?第三步攻击者利用SeniorPool合约的withdrawInFidu函数,把106,667个FIDU代币兑换成113,853个USDC,然后归还闪电贷110,011个USDC,剩余本次攻击获利的3,842个USDC。
漏洞原因为:攻击者可以利用Curve的FIDU-USDC池子获取FIDU代币,来获取SeniorPool合约抵押USDC代币的红利。
目前Curve中FIDU兑换USDC为1:1.03,而在SeniorPool中的比例为1:1.07,这就产生了套利空间。
图1?Curve中FIDU兑换USDC的比例
图2?SeniorPool合约中FIDU兑换USDC的比例
下面是具体的代码实现:
攻击者利用withdrawInFidu函数销毁FIDU代币换取USDC。而可获取USDC的数量是通过_getUSDCAmountFromShares函数中的sharePrice去计算的。这里的sharePrice会随着分红的增加而增加,攻击者就可以利用Curve的FIDU-USDC池子获取FIDU代币,从而获取SeniorPool合约抵押FIDU代币的红利。
总结
针对本次事件,成都链安安全团队建议:
项目方使用新的代币代替FIDU代币为凭据代币,并确保其他途径无法获取该凭据代币。此外建议项目上线前选择专业的安全审计公司进行全面的安全审计,规避安全风险。
来源:金色财经
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。