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

我的网站

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

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

时间:2020-07-01 08:40来源:未知 作者:admin 点击:
(第三步:攻击获利图示下) 另外我们发现,在 swapExactAmountIn() 的底部,_pullUnderlying() 尝试从攻击者端收集相应消耗的 STA。然而,由于 STA 转账时还会烧

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

另外我们发现,在 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 的余额。 (责任编辑:admin)

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