本文作者:yudan@慢雾安全团队前言
今早,bZx疑似遭遇第二次攻击,不同的是本次的对象是ETH/sUSD交易对,但也许有人会有疑问,sUSD不是对标USD的稳定币吗?这都能被攻击?攻击手法具体是怎样的?带着这样的疑问,针对此次事件,慢雾安全团队接下来将复盘这两次攻击过程。在第一次攻击中,攻击者结合Flashloan和Compound中的贷款,对bZx实施攻击,主要分成以下几步:从dYdX借了10000个ETH到Compound用5500ETH借了112个BTC准备抛售到bZx中用1300个ETH开5倍杠杆做空,换了51.345576个BTC,而这里换取的BTC是通过KyberNetwork来获取价格的,然而KyberNetwork最终还是调用Uniswap来获取价格,5倍杠杆开完后兑换回来的51个BTC实际上是拉高了UniSwap中BTC/ETH的价格,换取价格是1/109,但是实际上大盘的价格不会拉到这么多用从Compound借来的112个BTC来在UniSwap中卖掉,由于第三步中bZx中的5倍杠杆已经把价格拉高,所以这个时候出售ETH肯定是赚的,然后卖了6871个ETH归还dYdX中的借贷第二次攻击与之前稍有不同,但核心都在于控制预言机价格,并通过操纵预言机价格获利。注:下文中出现的WETH是ETH的token化代币,可统一认为是ETH。与ETH之间的兑换比例是1:1细节剖析
慢雾:Ribbon Finance遭遇DNS攻击,某用户损失16.5 WBTC:6月24日消息,Ribbon Finance 发推表示遭遇 DNS 攻击,慢雾MistTrack通过链上分析发现攻击者与今天早前的Convex Finance 攻击者是同一个,地址 0xb73261481064f717a63e6f295d917c28385af9aa 是攻击者共用的用来调用恶意合约的钱包地址。同时分析发现,Ribbon Finance某用户在攻击中损失了 16.5 WBTC,具体交易为:https://etherscan.io/tx/0xd09057f1fdb3fa97d0ed7e8ebd8fd31dd9a0b5b61a29a22b46985d6217510850。[2022/6/24 1:29:35]
本次发生攻击的交易哈希为:0x762881b07feb63c436dee38edd4ff1f7a74c33091e534af56c9f7d49b5ecac15通过etherscan上的分析,我们看到这笔交易中发生了大量的token转账。
慢雾:Inverse Finance遭遇闪电贷攻击简析:据慢雾安全团队链上情报,Inverse Finance遭遇闪电贷攻击,损失53.2445WBTC和99,976.29USDT。慢雾安全团队以简讯的形式将攻击原理分享如下:
1.攻击者先从AAVE闪电贷借出27,000WBTC,然后存225WBTC到CurveUSDT-WETH-WBTC的池子获得5,375.5个crv3crypto和4,906.7yvCurve-3Crypto,随后攻击者把获得的2个凭证存入Inverse Finance获得245,337.73个存款凭证anYvCrv3Crypto。
2.接下来攻击者在CurveUSDT-WETH-WBTC的池子进行了一次swap,用26,775个WBTC兑换出了75,403,376.18USDT,由于anYvCrv3Crypto的存款凭证使用的价格计算合约除了采用Chainlink的喂价之外还会根据CurveUSDT-WETH-WBTC的池子的WBTC,WETH,USDT的实时余额变化进行计算所以在攻击者进行swap之后anYvCrv3Crypto的价格被拉高从而导致攻击者可以从合约中借出超额的10,133,949.1个DOLA。
3.借贷完DOLA之后攻击者在把第二步获取的75,403,376.18USDT再次swap成26,626.4个WBTC,攻击者在把10,133,949.1DOLAswap成9,881,355个3crv,之后攻击者通过移除3crv的流动性获得10,099,976.2个USDT。
4.最后攻击者把去除流动性的10,000,000个USDTswap成451.0个WBT,归还闪电贷获利离场。
针对该事件,慢雾给出以下防范建议:本次攻击的原因主要在于使用了不安全的预言机来计算LP价格,慢雾安全团队建议可以参考Alpha Finance关于获取公平LP价格的方法。[2022/6/16 4:32:58]
慢雾:攻击Ronin Network的黑客地址向火币转入3750枚 ETH:3月30日消息,慢雾发推称,攻击Axie Infinity侧链Ronin Network的黑客地址向交易所火币转入3750枚ETH。此前金色财经报道,Ronin桥被攻击,17.36万枚ETH和2550万USDC被盗。[2022/3/30 14:26:38]
这么多转账交易中,攻击者一共购买了20次sUSD,最终获利离场,那么攻击者具体是怎么操作的呢?我们使用区块浏览器bloxy.info来做进一步分析。1、赛前准备
和第一次一样,首先攻击者需要从Flashloan借入一定的金额开始本次的攻击,第一次攻击是从dYdX借入10000ETH,这次,攻击者选择从bZx本身支持的Flashloan下手,借入7500个ETH。
慢雾:Furucombo被盗资金发生异动,多次使用1inch进行兑换:据慢雾MistTrack,2月28日攻击Furucombo的黑客地址(0xb624E2...76B212)于今日发生异动。黑客通过1inch将342 GRO、69 cWBTC、1700万cUSDC兑换成282 ETH,并将147ETH从Compound转入到自己的地址,截至目前该黑客地址余额约170万美元,另一个黑客地址余额为约1200万美元。[2021/3/3 18:12:14]
2、发球
在完成从bZx的借入之后,攻击者开始通过Kyber进行sUSD的买入操作,第一次使用了540个ETH购买了92,419.7个sUSD,这个操作令WETH/sUSD的价格瞬间拉低,捧高了sUSD的价格。这次的交易兑换的比例大概为1:170,而Kyber最终是通过UniSwap来进行兑换的,所以此时Uniswap的WETH/sUSD处于低位,反过来,sUSD/WETH升高。在完成第一次的540个ETH的兑换之后,攻击者再次在Kyber进行18次小额度的兑换,每次使用20个ETH兑换sUSD,从etherscan我们能够看到,每一次的兑换回来的sUSD金额在不断减少。
声音 | 慢雾:警惕“假充值”攻击:慢雾分析预警,如果数字货币交易所、钱包等平台在进行“EOS 充值交易确认是否成功”的判断存在缺陷,可能导致严重的“假充值”。攻击者可以在未损失任何 EOS 的前提下成功向这些平台充值 EOS,而且这些 EOS 可以进行正常交易。
慢雾安全团队已经确认真实攻击发生,但需要注意的是:EOS 这次假充值攻击和之前慢雾安全团队披露过的 USDT 假充值、以太坊代币假充值类似,更多责任应该属于平台方。由于这是一种新型攻击手法,且攻击已经在发生,相关平台方如果对自己的充值校验没有十足把握,应尽快暂停 EOS 充提,并对账自查。[2019/3/12]
这表明sUSD/WETH的价格被进一步拉升,这加剧了Uniswap中sUSD/WETH的价格,此时价格已经达到顶峰了,大概是1:157。在完成以上两步操作之后,攻击者已经完成狩猎前的准备,随时可以开始攻击。3、一杆进洞
在完成对sUSD/WETH的拉升后,攻击者此时需要采集大量的sUSD,为后续兑换WETH做准备。为了达成这个目的,攻击者向Synthetix发起sUSD的购买,通过向Synthetix发送6000ETH购买sUSD,直接把Synthetix中的sUSD买空,Synthetix合约返还2482个ETH给攻击者。
完成了上面的操作后,攻击者直接对bZx发动总攻,直接用之前操作得来的一共1,099,841个sUSD向bZx兑换WETH,此时由于bZx兑换还是要去查询Uniswap的sUSD/WETH的价格,而这个价格已经被攻击者人为拉得很高了,此时兑换,就能通过1,099,841个sUSD换取大量的WETH,此次交易一共用1,099,841个sUSD换取了6792个WETH,此时攻击已经完成。4、归还借贷
完成了对bZx的攻击之后,将7500ETH归还给bZx,完成闪电贷流程,从bZx来,再回到bZx去,还使bZx遭受了损失。赛后复盘
通过分析攻击者的攻击手法,我们统计下攻击者在攻击过程中的支出和收入情况。收入
7500=>bZx闪电贷+2482=>Synthetix返还+6792=>使用sUSD在bZX兑换WETH=16774ETH支出
540+(20*18)=>拉高sUSD/WETH价格+6000=>买空sUSD+7500=>归还bZx闪电贷=14400ETH总的收益为:16774-14400=2374ETH防御建议
两次攻击的主要原因还是因为Uniswap的价格的剧烈变化最终导致资产的损失,这本该是正常的市场行为,但是通过恶意操纵市场,攻击者可通过多种方式压低价格,使项目方造成损失。针对这种通过操纵市场进行获利的攻击,慢雾安全团队给出如下建议:项目方在使用预言机获取外部价格的时候,应设置保险机制,每一次在进行代币兑换时,都应保存当前交易对的兑换价格,并与上一次保存的兑换价格进行对比,如果波动过大,应及时暂停交易。防止市场被恶意操纵,带来损失。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。