HarmonyOS开发者限时福利来啦!最高10w+现金激励等你拿~ 了解详情
写点什么

黑客利用一个漏洞攻击 8 次获利 630 万美元,币安智能链被盯上了?

  • 2021-06-04
  • 本文字数:2101 字

    阅读完需:约 7 分钟

黑客利用一个漏洞攻击8次获利630 万美元,币安智能链被盯上了?

Belt Finance 是一种基于币安智能链(BSC)的去中心化借贷协议,5 月 29 日,攻击者通过智能合约开始对 4Belt BLP 池发起闪电贷攻击。


据悉,攻击方创建了一份使用 PancakeSwap 进行闪电贷的智能合约,并利用 BeltBUSD 池及其底层策略协议先后对合约内容执行了 8 次,借此攫取了高达 6234753 BUSD 的收益。BeltBUSD 金库用户遭受 21.36% 的资金损失,而 4Belt 币池用户则遭受 5.51% 资金损失。


攻击过程


据 Belt Finance 团队介绍,攻击者首先利用 PancakeSwap 中的漏洞获得了总值 3.9 亿 BUSD 的闪电贷额度,这已经接近 PancakeSwap 上全部 BUSD 池所能提供的最大 BUSD 金额。之后,攻击方将其中约 2 亿 BUSD 存入 BeltBUSD 金库(使用 Venus 策略协议),并借此极大提升了 Venus 策略的整体占比。


在攻击活动发生之前,BeltBUSD 金库的协议比例为:Venus 约占 6000 万 BUSD,Alpaca 占 6000 万 BUSD,Ellipsis 占 6000 万 BUSD,而 ForTube 约占 2000 万 BUSD,总量约为 2 亿 BUSD。但在吸纳了攻击者的存入之后,Venus 掌握了约 2.6 亿 BUSD,也让 BeltBUSD 的总储量快速提升至 4 亿左右。


攻击者同时还将 1.9 亿 BUSD 转移至 Ellipsis.fi 3pool,并将这 1.9 亿 BUSD 兑换为约 1.695 亿 USDT。此次兑换令 Ellipsis 3pool LP 值在短时间内猛增。3pool LP 的供应关系虽然没有改变,但这 2150 万美元的差值仍然令 3pool LP 快速增值约 3%。这又将 4Belt 池 Ellipsis 策略的币值占比由 6000 万 BUSD 增加至 6180 万 BUSD,也让整个 BeltBUSD 金库总值由 4 亿 BUSD 增加至 4.018 亿 BUSD(涨幅约 0.5%)。


在此之后,攻击者开始从 BeltBUSD 金库中提现离场,获得了 2 亿 BUSD 总额中约 0.5% 的存入收益,即约 100 万 BUSD(进场前 2 亿 BUSD,离场时 2.01 亿 BUSD)收益。接下来,攻击方在 Ellipsis 上将 USDT 兑换回 BUSD,令 LP 重新回归之前的正常值,而 BeltBUSD 金库则因此凭空损失掉了这 100 万 BUSD。


之后,攻击者通过智能合约多次重复执行这同一笔交易(由 Tx gas 允许的上限而定),去掉闪电贷费用与 Ellipsis 掉期费用外的即为最终实际获利。接下来,攻击者将 BUSD 形式的利润转至自有地址并兑换为 anyETH,再使用 Nerve Bridge 将这笔 anyETH 发往以太坊主网。整个攻击流程从 PancakeSwap 闪电贷开始,到向以太坊主见发送 anyETH 结束,前后共重复了 8 次。


解决方案


在使用 StrategyEllipsis 的情况下,Belt Finance 团队使用 isPoolSafe() 限制发生价格缺口时的提现活动。现在,面向各项策略,团队决定通过检查 Ellipsis 的掉期状态解决这一隐患。当 USDC、BUSD 与 USDT 之间存在比例偏差时,会限制用户的提现与存入操作。如此一来,攻击者将无法顺利操纵 Ellipsis LP 价格。


在开发过程中,Belt Finance 团队添加了以下函数,以防止 Ellipsis Pool 值出现异常时被攻击者所利用:





这里的 isPoolSafe 函数将通过衡量 Ellipsis 3pool 的代币比率(即包含的最大与最低代币数量间的比值)来检查其健康状况。此函数能够防止 Belt 受到异常 StableWap AMM 比率的影响。


isPoolSafe 函数将在 _deposit() 与 _withdraw() 函数执行之前与之后检查池健康状况,如果池比率发生偏差,则交易将被直接还原以防止语句的实际更新。如此,Belt Finance 团队就能有效防止 Ellipsis 策略受到闪电贷攻击的影响。



通过使用 Ellipsis 掉期,攻击者即可瞬时操纵 ellipsisSwap 合约中 BUSD、USDC 与 USDT 的比例,借此操纵 3pool LP 的价格。


在之前的设计中,Belt Finance 团队并没有考虑到负责计算 Ellipsis 策略中 wantTotalLocked() Ellipsis 3Pool 比率的 epsToWant() (一项 MultiToken 函数)被破坏并影响到其他策略存取交易的情况。这项函数只是与 Read 相关的接口,Belt Finance 团队表示没有想到它会与闪电贷发生直接关联。


结果,闪电贷导致 Ellipsis 策略中的 wantTotalLocked 值增加,MultiVault 则以高于实际资产量的值运行了提取操作。此次攻击活动,在根本上利用的也正是这项漏洞。


黑客盯上 BSC


Belt Finance 只是 BSC 上被攻击的项目之一。5 月份,PancakeBunny 遭受攻击,损失了 300 万美元;类似的项目 Bogged Finance 也在闪电贷款攻击中损失了几乎相同的金额;Burgerswap 在一次闪电贷攻击中损失 720 万美元。


“最近已经接连发生超过 8 起针对 BSC 链上项目的闪电贷攻击,我们认为现在有一个有组织的黑客团队盯上了 BSC。”BSC 官方发文表示。The Block 数据显示,因为近期的黑客攻击事件,BSC 已有部分锁仓资金回流至以太坊,总锁仓量回落至 20 亿美元。


因此,BSC 官方呼吁所有 DApp 采取如下措施进行预防保护:


  1. 与审计公司合作进行另一次健康检查。如果是分叉项目,请反复检查相对原始版本进行的更改;

  2. 采取必要的风险控制措施,实时主动监控异常情况,一旦出现异常及时暂停协议;

  3. 制定应急计划,以防真的出现最坏的情况;

  4. 如果条件允许可设定漏洞赏金计划;

  5. 安全公司 PeckShield 和 CertiK 也为 BSC 项目的任何安全咨询服务提供绿色通道。


随着 DeFi 发展以及整个加密社区的发展,黑客攻击事件一直层出不穷。区块链网络和链上项目需要更多的安全规范和相应审查机制来防止攻击事件频繁发生。


相关链接:


https://belt-fi.medium.com/


2021-06-04 14:096086

评论

发布
暂无评论
发现更多内容

Flink 在 B 站的多元化探索与实践

Apache Flink

大数据 flink 编程 流计算 实时计算

Apache ShardingSphere 企业行|走进怪兽充电

SphereEx

开源 ShardingSphere SphereEx apache 社区 怪兽充电

uni-app技术分享| uni-app转小程序_实时音视频

anyRTC开发者

小程序 音视频 WebRTC uniapp 实时通讯

面试突击37:线程安全问题的解决方案有哪些?

王磊

Java java面试

浅谈电商网站开发中用户会话管理机制的设计和实现原理

汪子熙

JavaScript 电商 用户管理 电商系统 4月月更

云效·Insight(效能洞察)一款面向企业研发管理层的研发效能数字化度量服务

阿里云云效

阿里云 云原生 研发管理 研发效能 效能洞察

jackson学习之二:jackson-core

程序员欣宸

4月月更

带码农《手写Mybatis》进度3:实现映射器的注册和使用

小傅哥

小傅哥 mybatis 手写Mybatis

Ali266首次商用落地,助力优酷码率最高节省40%

阿里云视频云

阿里云 音视频 优酷 编码器 视频云

Element Plus 和 Ant Design Vue 对比测评,哪个更好?

蒋川

Vue antd vue Element Plus Element UI Ant Design

【课程汇总】OpenHarmony成长计划知识赋能第三期系列课程(附链接)

OpenHarmony开发者

OpenHarmony ETS Openharmony啃论文俱乐部

最全讲解:GPU技术架构知识

Finovy Cloud

人工智能 GPU服务器 GPU算力

大数据培训-程序员坚持不断的学习能成大神吗

@零度

大数据开发

有了这款工具,定位线上问题事半功倍|云效工程师指北

阿里云云效

云计算 阿里云 程序员 云原生 开发

分享回顾|木兰技术开放日,建木团队与你一同畅聊「云原生」

Jianmu

ci 开源 云原生 开发运维

我国将筹建工业元宇宙服务平台

CECBC

直播回顾| Apache Pulsar 2.10.0 新特性概览

Apache Pulsar

开源 架构 云原生 Apache Pulsar Apache Pulsar 社区

Flink on K8s 在京东的持续优化实践

Apache Flink

大数据 flink 编程 流计算 实时计算

Linux驱动开发-编写FT5X06触摸屏驱动

DS小龙哥

4月月更

主流跨端开发技术方案对比

Speedoooo

跨端开发 跨端 降本增效 小程序容器 轻应用

深入剖析 RocketMQ 源码 - 负载均衡机制

vivo互联网技术

负载均衡 分布式 java

建木持续集成平台v2.2.5发布

Jianmu

开源 持续集成 开发运维 建木CI

高性能云桌面服务提供商酷栈科技加入龙蜥社区,共建开源新生态

OpenAnolis小助手

开源 云桌面 龙蜥社区 CLA 酷栈科技

KubeEdge-Sedna边云协同终身学习:迈向次时代AI范式

华为云原生团队

人工智能 开源 AI 边缘计算 边缘技术

虚拟货币网络犯罪愈演愈烈 安全防护更要“多管齐下”

CECBC

OceanBase 在江西人社养老统筹系统的实践分享

OceanBase 数据库

oceanbase 江西人社

web前端培训-数组扁平化实现方式

@零度

前端开发 ES6

Zadig 构建缓存如何配置才好用?

Zadig

云原生 CI/CD 软件交付 Zadig

Element Plus for Vue 3 入门教程

蒋川

Element Element Plus Element UI

【架构学习 07】——王者荣耀商城异地多活架构设计

tiger

架构实战营

java培训-不干程序员了还能干什么

@零度

JAVA开发

黑客利用一个漏洞攻击8次获利630 万美元,币安智能链被盯上了?_区块链_Belt Finance_InfoQ精选文章