PeckShield分析:Balancer DeFi黑客攻击

WB3交流加微信:WX-93588,⬅️此处为全站广告位,与正文项目无关
注册并登录App即可领取高达 60,000 元的数字货币盲盒:点击此处注册OKX

北京时间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。
3)进犯者利用STA代币和Balancer智能合约存在的不兼容性即记账和余额的不匹配性施行进犯,将资金池中的其他财物耗尽,最终合计获利价值523,616.52美元的数字财物。
4)进犯者归还从dYdX借出的闪电贷,并卷走了进犯所得的数字财物。

接下来的篇幅中,咱们将逐步解析黑客在该笔闪电贷买卖中施行的进犯行为。

Balancer遭黑客进犯全过程技能拆解

(图解黑客进犯全流程)

第一步:闪电贷

从dYdX闪电贷104,331WETH,这部分了解DeFi假贷形式的读者应该都比较清楚,此处不再赘述。

第二步:清空Balancer的STA财物

进犯者经过多次swapExactAmountIn调用清空了Balancer的STA财物,为下一步施行进犯做预备。值得一提的是,咱们发现合约代码中每次可以兑换的财物数额其实有上限,但是奸刁的进犯者预先计算了可兑换的WETH最大数额,并奇妙地让Balancer只剩了0.000000000000000001STA。

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

第三步:进犯获利

经过前两个预备过程之后,进犯者是时分展示真实技能了!

(第三步?:进犯获利图示上)

承上所述,进犯者经过swapExactAmountIn函数将0.000000000000000001STA发送到BPool,以极高的价值差,立即兑换出了30,347个WETH,实现了获利。而此刻,BPool的内部记账机制_records[STA]在BPool真实收到0.000000000000000001STA之前先加了1(注:此后进犯者会用gulp对该数值进行重置)。

(第三步:进犯获利图示下)

别的咱们发现,在swapExactAmountIn的底部,_pullUnderlying尝试从进犯者端搜集相应耗费的STA。但是,由于STA转账时还会烧掉1%的手续费,实践BPool是收不到任何STA的。这样就使得BPool的实践STA余额和内部记账产生不匹配。

接下来是最风趣的一部分,进犯者调用gulp不断重置_records[STA],使得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美元的数字财物,详情列表如下:

此时快讯

币安合约将调整YGG/USDT和API3/USDT U本位永续合约杠杆和保证金阶梯及资金费率上限】金色财经报道,据官方公告,币安合约将于2023年08月07日01:30(东八区时间)更新YGG/USDT和API3/USDT U本位永续合约杠杆和保证金阶梯,用户更新前的现有仓位将受到影响,请用户参考更新后的杠杆和保证金阶梯调整保证金,以避免强行平仓。

版权声明:本文收集于互联网,如有侵权请联系站长删除。
转载请注明:PeckShield分析:Balancer DeFi黑客攻击 | 币百度

相关文章