宇宙链 宇宙链
Ctrl+D收藏宇宙链
首页 > MANA > 正文

DeFi平台Balancer遭黑客攻击全过程技术拆解

作者:

时间:1900/1/1 0:00:00

北京时间06月29日凌晨02时03分起,最近因“借贷即挖矿”模式而备受关注DeFi平台Balancer上的STA和STONK两个ERC20通缩代币池遭到了黑客攻击,共计损失了超50万美元。

PeckShield安全人员介入分析后,迅速定位到问题的本质在于,Balancer上的通缩型代币和其智能合约在某些特定场景不兼容,使得攻击者可以创建价格偏差的STA/STONK流通池并从中获利。

此次黑客实施攻击共计分了四个步骤,具体而言:

1)攻击者通过闪电贷从dYdX平台借出了104,331个WETH;

2)攻击者反复执行swapexactMountin()调用,直至Balancer拥有的大部分STA代币被消耗殆尽,进而开始下一步攻击。最终Balancer仅仅剩余0.000000000000000001个STA。

Moma创始人Ocean:DeFi能火起来是因为它对流动性的促进是巨大而显著:5月22日,在《佟掌柜的朋友们·矿工与农民论坛》,来自Moma的Ocean认为挖矿是永远不应该停止的生意。DeFi能火起来是因为它对流动性的促进是巨大而显著的。任何对流动性有价值的产品或者方案,未来一定有非常大的发展潜力。Moma聚焦于长尾借贷动市场,可以对借贷市场进行管理、加速、聚合,使用无许可的生产模式,形成了一个可以对借贷流动性与市场多样性进行无限扩展的生态系统。[2021/5/25 22:42:55]

3)攻击者利用STA代币和Balancer智能合约存在的不兼容性即记账和余额的不匹配性实施攻击,将资金池中的其他资产耗尽,最终共计获利价值523,616.52美元的数字资产。

DeFi基准利率持续回调至9.33%:金色财经报道,据同伴客数据显示,04月23日DeFi去中心化金融基准利率为9.33%,较前一日上涨1.4%。同期美国国债抵押回购率(Repo Rate)为0.02%,二者利率差为9.31%。

DeFi基准利率代表了DeFi融资难易程度,利率越高说明融资成本越高,利率越低说明融资成本越低。其与Repo Rate的利率差则便于DeFi与传统市场作进行同类比较。[2021/4/23 20:51:19]

4)攻击者偿还从dYdX借出的闪电贷,并卷走了攻击所得的数字资产。

接下来的篇幅中,我们将逐步解析黑客在该笔闪电贷交易(http://oko.palkeo.com/0x013be97768b702fe8eccef1a40544d5ecb3c1961ad5f87fee4d16fdc08c78106/)中实施的攻击行为。

DeFi播报丨DeFi总市值122.1亿美元 YFI涨超12%:据OKEx统计,DeFi项目当前总市值为122.1亿美元,总锁仓量为97.2亿美元。行情方面,今日OKEx平台DeFi币种涨幅前三位分别是YFI、ZRX、SNX。截至12:30,OKEx平台热门DeFi币种表现如下:[2020/9/11]

Balancer遭黑客攻击全过程技术拆解

第一步:闪电贷

从dYdX闪电贷104,331WETH,这部分熟悉DeFi借贷模式的读者应该都比较清楚,此处不再赘述。

第二步:清空Balancer的STA资产

攻击者通过多次swapExactAmountIn()调用清空了Balancer的STA资产,为下一步实施攻击做准备。值得一提的是,我们发现合约代码中每次能够兑换的资产数额其实有上限,然而狡猾的攻击者预先计算了可兑换的WETH最大数额,并巧妙的让Balancer只剩了0.000000000000000001STA。

Token Terminal 数据:多家 DeFi 热门项目已开始盈利:据Token Terminal 数据显示,多家 DeFi 热门项目已经开始盈利,其中排名第一的是 Uniswap,年收益为 1.39 亿美金,第二和第三名分别为 Compound 和 Balancer,年收益分别为 5410 万美金和 4880 万美金。[2020/8/24]

由于Balancer资金池各资产间存在“动态平衡”原理,仅剩接近于0的STA会拉高STA的价值,使得任何人都可以用1STA换到大量的其他数字资产。

第三步:攻击获利

经过前两个准备步骤之后,攻击者是时候展现真正技术了!

承上所述,攻击者通过swapExactAmountIn()函数将0.000000000000000001STA发送到BPool,以极高的价值差,立即兑换出了30,347个WETH,实现了获利。而此时,BPool的内部记账机制_records在BPool真正收到0.000000000000000001STA之前先加了1。

另外我们发现,在swapExactAmountIn()的底部,_pullUnderlying()尝试从攻击者端收集相应消耗的STA。然而,由于STA转账时还会烧掉1%的手续费,实际BPool是收不到任何STA的。这样就使得BPool的实际STA余额和内部记账产生不匹配。

接下来是最有趣的一部分,攻击者调用gulp()不断重置_records,使得BPool中始终保持0.000000000000000001个STA。因此攻击者可以用极高价的0.000000000000000001个STA将流通池中的WETH、SNX、LINK等其他资产消耗光。

第四步:偿还闪电贷

最终,如上图所示,攻击者偿还了从闪电贷借出的104,331个WETH。

建议

此次攻击事件再次暴露了DeFi可组合性存在的兼容性风险。此前不久,Uniswap和Lendf.Me两个平台就因和ERC777标准的兼容性问题,产生了非常严重的黑客攻击事件。需要警醒的是,在未来DeFi行业类似的黑客攻击行为或许会屡见不鲜。

如果问该怎样才能规避这类攻击事件的发生呢?或许有两个优化调整思路:1)STA/STONK在执行transfer()或transferFrom()时,当转账数额不足以支付手续费时,应该直接回滚或者返回False;2)Balancer应该在每一次transferFrom()函数调用后检查BPool的余额。

当然,任何安全事件事后采取措施补救都无法弥补已经产生的损失,我们相信最好的解决方案还是事前防备。DeFi项目开发者应尽可能利用好的代码规范,并可寻求第三方安全公司协助其在上线前进行全面的攻防测试,尽可能找出一切潜在的漏洞。最后,尽可能对ERC20、ERC777和其它DeFi项目的任何组合行为都做好周密排查。

后续

毫无疑问,Balancer事件的发生势必也会对DeFi社区带来影响,而且这类事情接下来发生的可能性还会很大,在此提醒广大DeFi项目开发者应务必重视合约的安全问题。

经我们统计发现,Balancer在此次攻击事件共计损失了523,616.52美元的数字资产,详情列表如下:

本文链接:https://www.8btc.com/media/615706

转载请注明文章出处

标签:EFIDEFDEFISTAbeFITTERDefinexGenesisDefiSTARINU

MANA热门资讯
驭金有道:机构募资1.9亿美元比特币基金 大额资金即将流入

据路透社消息,纽约数字投资集团披露其已完成一个1.9亿美元的比特币基金募资。该NYDIG机构比特币基金LP拥有24名投资者,并且根据2013年制定的D规则安全港保护条例506获得豁免。目前对于该基金知之甚少.

1900/1/1 0:00:00
新用户福利大放送,注册DigiFinex和MDT,瓜分20万MDT

亲爱的用户: DigiFinex联合MDT将于7月2日00:00至7月12日23:59期间开启新用户福利大放送活动,活动期间,首次注册DigiFinex和MailTime的用户,均可参与瓜分20万MDT活动奖励。活动详情如下.

1900/1/1 0:00:00
明诚晓币:比特币横久必变,七月首场午间行情分析

生活需要规划,投资更加需要计划,投资不是一朝一夕的事,只有严格执行,才能从中获利。明诚老师有丰富的实战操盘经验和独特的交易理念,如果你从未做过投资,想学习了解,又或做单不顺,投资经常资金缩水,想学技术分析看盘,那么你就得和我多多交流了.

1900/1/1 0:00:00
财经狐:BTC震荡不止,空军该何去何从

没有走不到顶的山,只有找不到路的人,持仓就像两个拉着橡皮筋的人,受伤的总是不愿意放手的那个,总有一段路崎岖,总有一时雾霾,不要为曾经的错失忿忿不平,无须为走远的风景扼腕叹息.

1900/1/1 0:00:00
Hotbit定于7月2日上线 OKS (Oikos) 的公告

尊敬的用户: Hotbit定于2020年07月02日15:00开放OKS充值,2020年07月02日17:00开放?OKS/USDT、OKS/ETH交易对.

1900/1/1 0:00:00
开启Compound (COMP)交易 / 2020.6.30

亲爱的BithumbGlobal用户:BithumbGlobal将在主板上线COMP数字资产服务.

1900/1/1 0:00:00