织梦CMS - 轻松建站从此开始!

我的网站

当前位置: 主页 > 比特币 > 比特币资讯

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

时间:2020-07-01 08:40来源:未知 作者:admin 点击:
北京时间06月29日凌晨02时03分起,最近因“借贷即挖矿”模式而备受关注DeFi 平台 Balancer 上的 STA 和 STONK 两个 ERC20 通缩代币池遭到了黑客攻击,共计损失了超50万美元。 PeckShield安全人员

北京时间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 借出的闪电贷,并卷走了攻击所得的数字资产。

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

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

(图解黑客攻击全流程)

第一步:闪电贷

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

第二步:清空 Balancer 的 STA 资产

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

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

第三步:攻击获利

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

(第三步 :攻击获利图示上)

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

织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
推荐内容