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万人民币。 CertiK分析的此次事件攻击者心理画像: 攻击者在调取STA余额后,快速调用swapExactAmountIn函数购买STA,并在第24次交易使用了另一个函数swapExactAmountOut精准的将STA的数目买到了最小值(1e-18),从而最大化后续攻击的效率。最开始的6笔交易,在没有必要的情况下,3次买入后卖出,损失了4个WETH,故布疑云。并且能够做到隐匿自己的闪电贷阶段痕迹来看,有黑客特性。 CertiK判断攻击者是有经验的黑客团队在充分准备后的一次攻击尝试,有很大可能还会继续攻击其他DeFi合约。 阶段0:攻击者从dYdX闪电贷处借款,获得初始WETH资金。 阶段1:攻击者使用WETH将Balancer中的STA尽可能买空,最大程度提高STA价格。 阶段2:攻击者用获得的STA多次买回WETH。每一次都用最小量的STA(数值为1e-18)进行购买,并利用Balancer内部漏洞函数gulp(),锁定STA的数目,控制STA对WETH的价格。重复多次该种买回操作,直到将Balancer中的WETH取空。 阶段3:换一种代币,用STA重复阶段2直到取空该种代币。阶段三重复了三次,一共有4种代币受到了损失WETH,WBTC, LINK和SNX。 阶段4:偿还dYdX闪电贷,离场。 攻击者获利 攻击者最终获利: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 了解更多 GeneralInformation:[email protected] Audit&Partnerships:[email protected] Website:certik.org Twitter:@certik.org Telegram:t.me/certik.org Medium:medium.com/certik 币乎:bihu.com/people/1093109 —- 编译者/作者:CertiK中国社区 玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。 |
空手套以太:Balancer攻击解析
2020-06-30 CertiK中国社区 来源:区块链网络
LOADING...
相关阅读:
- 以太坊智能合约开发工具 Truffle 发布 5.1.37 版本2020-08-02
- 以太坊的价格跃升至400美元,继续创下两年来的新高。2020-08-02
- #快银大奖#赢10000KEY | 总计奖励超15000KEY | CKB吧#迷踪解密#活动第37期2020-08-02
- 比特币强势拉涨迎来新阶段多头趋势仍未完结耐心等待下一波触发信号2020-08-02
- 月白:八月伊始比特币拉升再破年内新高周末震荡蓄力有望二次拉升2020-08-02