6月29日北京时间凌晨2点03分,CertiK天网系统 (Skynet) 检查到在区块10355807处Balancer DeFi合约异常,安全研究员迅速介入调查,攻击过程浮出水面。
6月29日凌晨2点03分,攻击者利用从dYdX闪电贷中借到的WETH,大量买进STA代币,使得STA与其他代币的兑换价格急剧上升。然后使用最小量的STA(数值为1e-18)不断回购WETH,并在每次回购后,利用Balancer的合约漏洞重置其内部STA的数量(数值为1e-18),以此稳住STA的高价位。
攻击者不断利用漏洞,用高价的STA将某一种代币完全买空(WETH,WBTC, LINK和SNX),最终用WETH偿还闪电贷,并剩余大量STA,WETH,WBTC, LINK和SNX,并通过uniswap将非法所得转移到自己账户中。此次攻击约获利90万人民币。
百度Apollo首发 “Apollo 001”系列纪念数字藏品:金色财经报道,据百度Apollo智能驾驶官方公众号,百度Apollo全网首发首款 “Apollo 001”系列纪念数字藏品,以百度汽车机器人为主体形象,每款对应一个百度Apollo自动驾驶重要里程碑事件。据悉,该数字藏品将于2022年7月8日 09:55发布汽车机器人家族全家福空投款。[2022/7/7 1:58:19]
CertiK分析的此次事件攻击者心理画像:
攻击者在调取STA余额后,快速调用swapExactAmountIn函数购买STA,并在第24次交易使用了另一个函数swapExactAmountOut精准的将STA的数目买到了最小值(1e-18),从而最大化后续攻击的效率。最开始的6笔交易,在没有必要的情况下,3次买入后卖出,损失了4个WETH,故布疑云。并且能够做到隐匿自己的闪电贷阶段痕迹来看,有黑客特性。
欧易OKX首发上线Optimism (OP):据官方消息,欧易OKX将于5月31日20:00(HKT)开放Optimism代币OP充值,将于6月2日18:00(HKT)开放提现,平台将在用户充值数量符合开通交易的情况下第一时间上线交易。此外,欧易OKX是首家接入Optimism网络的交易所,用户可在欧易和Optimism网络之间转移资金。
据悉,Optimism是以太坊Layer2扩容解决方案之一,旨在建立基于Optimistic Rollup技术的以太坊网络和Optimistic虚拟机来扩展以太坊,降低以太坊应用程序上的交易费用、提高交易效率及安全性。[2022/6/1 3:53:56]
CertiK判断攻击者是有经验的黑客团队在充分准备后的一次攻击尝试,有很大可能还会继续攻击其他DeFi合约。
阶段0:攻击者从dYdX闪电贷处借款,获得初始WETH资金。
阶段1:攻击者使用WETH将Balancer中的STA尽可能买空,最大程度提高STA价格。
Metaverse X将在META旗下Oculus VR平台首发上线:10月29日,Metaverse X将在META(原Facebook)旗下Oculus VR平台首发上线。Metaverse X成立于2019年专注区块链游戏研发,基于Metaverse开放框架结合自研的Unity 3D引擎技术搭建去中心化的元宇宙游戏平台。[2021/10/29 6:19:08]
阶段2:攻击者用获得的STA多次买回WETH。每一次都用最小量的STA(数值为1e-18)进行购买,并利用Balancer内部漏洞函数gulp(),锁定STA的数目,控制STA对WETH的价格。重复多次该种买回操作,直到将Balancer中的WETH取空。
阶段3:换一种代币,用STA重复阶段2直到取空该种代币。阶段三重复了三次,一共有4种代币受到了损失WETH,WBTC, LINK和SNX。
阶段4:偿还dYdX闪电贷,离场。
VEED首发上线KuCoin(库币) 开盘上涨33.3%:据KuCoin(库币)消息,KuCoin已首发上线VIMworld (VEED)项目并支持VEED/USDT和VEED/BTC交易对。VEED开盘价为0.006USDT,当前报价0.008USDT,上线涨幅33.3%。
VIMworld 是一个构建在VeChainThor区块链上以VIM为主的智能NFT收藏品生态。KuCoin(库币)旨在发掘全球优质区块链项目,为来自207个国家的800万用户提供现货、杠杆、合约、矿池、借贷等一站式服务。[2021/5/29 22:55:23]
阶段1: 从Balancer中取光所有的STA
前24笔交易将从闪电贷中借到的WETH交易为STA,尽可能降低Balancer中的STA数目,从而提升STA对其他代币的价格。
首发 | Bithumb将推出与Bithumb Global之间的加密资产转账服务:Bithumb内部人士对金色财经透露,Bithumb推出和Bithumb Global之间的加密货币资产免手续费快速转账服务,每日加密货币资产转账限额为2枚BTC。此消息将于今日晚间对外公布。据悉,目前仅支持BTC和ETH资产转账。[2020/2/26]
阶段2:将STA交易为WETH,利用gulp函数漏洞控制价格
在阶段2开始时候,STA的总数目始终被gulp函数重置为之前的1e-18。在第一次通过swapExactAmountIn函数将STA交易为WETH时,攻击者故意将STA交易的数目设为1e-18,由于在交易模型中,STA的数目极小,因此STA的价格相对其他代币会极高。在完成第一次交易后,在Balancer中STA的数目应为2e-18。
在第二次通过swapExactAmountIn将STA交易为WETH之前,攻击者通过调用gulp函数,将在Balancer中的STA数目使用内部记录的1e-18来覆盖当前STA的真实数目(2e-18)。因此在购买WETH时,STA依然可以保持高价。但是因为购买WETH后,WETH的数量减少,每次攻击的非法所得逐渐减小,18次攻击后,Balancer中的WETH被完全盗取。
阶段3:转移目标
当Balancer中的WETH被完全盗取后,攻击者利用相同漏洞,对Balacner的其他代币(WBTC, LINK和SNX)重演攻击,盗光了4种代币后隐遁。
攻击者获利
攻击者攻击地址:
0x81D73c55458f024CDC82BbF27468A2dEAA631407
攻击者最终收款地址:
0xbf675c80540111a310b06e1482f9127ef4e7469a
攻击者最终获利:565.5326240837032 ETH, 约合90万人民币(北京时间20200630早9点30分价格)
Balancer合约的gulp()函数作用为将某一种代币的内部记录数值覆盖到当前该种代币的真实数目,但是错误的把他设置成没有限制的external函数。gulp()函数不应该为external,或者应该加入对于特定使用者或者智能合约拥有者的验证或者防护限制条件。
参考资料:
1. Balancer Github:
https://github.com/balancer-labs/balancer-core/blob/140df49361a58e6c79b395964be98387702a7c0d/contracts/BPool.sol#L334
https://github.com/balancer-labs/balancer-core/blob/140df49361a58e6c79b395964be98387702a7c0d/contracts/BMath.sol#L28
https://github.com/balancer-labs/balancer-core/blob/140df49361a58e6c79b395964be98387702a7c0d/contracts/BPool.sol#L423
2. 攻击交易历史记录:
https://ethtx.info/mainnet/0x013be97768b702fe8eccef1a40544d5ecb3c1961ad5f87fee4d16fdc08c78106
3. 官方攻击报告:
https://medium.com/balancer-protocol/incident-with-non-standard-erc20-deflationary-tokens-95a0f6d46dea
了解更多
General Information: info@certik.org
Audit & Partnerships: bd@certik.org
Website: certik.org
Twitter: @certik.org
Telegram: t.me/certik.org
Medium:medium.com/certik
币乎:bihu.com/people/1093109
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。