火星链 火星链
Ctrl+D收藏火星链
首页 > 比特币 > 正文

TOKEN:成都链安:Balancer项目漏洞分析-ODAILY

作者:

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

一、事件背景

Balancer官网上对于其具体功能的描述为『EasilyswapERC20tokens.Exchangetokenswithoutdeposits,bids/asks,andordermanagement.Allon-chain.』。简单来说Balancer就是提供在链上进行tokens交换的区块链智能合约应用。

2020年6月29日凌晨,Balancer项目的两个资金池遭受攻击。攻击者在此次事件中获利约46万美元,资金池市商损失约50万美元。

根据此次安全事件的具体过程,可以将此次事件比喻为攻击者『偷梁换柱』。

二、抽丝剥茧还原攻击者『偷梁换柱』经过

2.1、安全事件概述

?根据链上交易数据显示:

1、攻击者利用自建合约

对存在通缩货币STA的资产池

进行了攻击;

2、攻击者利用自建合约

对存在通缩货币STONK的资产池

成都链安:Discover项目正在持续遭到闪电贷攻击:6月6日消息,据成都链安“链必应-区块链安全态势感知平台”安全舆情监控数据显示,Discover项目正在持续遭到闪电贷攻击,攻击者通过闪电贷使用BSC-USD大量重复兑换Discover代币,其中一个攻击者0x446...BA277获利约49BNB已转入龙卷风,攻击交易:0x1dd4989052f69cd388f4dfbeb1690a3f3a323ebb73df816e5ef2466dc98fa4a4,攻击合约:0xfa9c2157cf3d8cbfd54f6bef7388fbcd7dc90bd6

攻击者地址:0x446247bb10B77D1BCa4D4A396E014526D1ABA277[2022/6/6 4:05:40]

进行了攻击。

2.2、攻击步骤简介

攻击者首先通过闪电贷借款大量WETH,而后使用借得的WETH将被攻击资金池中的通缩货币兑换出来,仅留下1e-18个通缩货币。完成上述准备工作后,攻击者开始发动攻击,不断使用1e-18个通缩货币兑换资金池内的其他代币,以达到『偷梁换柱』的目的。直到池内资金基本被转移完后,攻击者将获利存入如下地址:

成都链安:BasketDAO遭到攻击,导致用户损失约120万美元:据成都链安链必应-区块链安全态势感知平台舆情监测显示,BasketDAO遭到攻击,导致用户损失约120万美元。通过链必追产品进行追踪分析,发现大部分被盗资金都被存入了 TornadoCash,以下为受害者地址:[2022/3/30 14:27:04]

0xBF675C80540111A310B06e1482f9127eF4E7469A

攻击过程如下图所示:

△图1

此次事件发生后,Balancer团队表示已对资产池进行审计,正在进行第三次审计,并将在UI界面启用通缩货币黑名单,禁止用户建立存在通缩货币的资产池。

2.3、漏洞原理详细分析

在分析漏洞具体信息之前我们需要知道以下两点:

1、Balancer项目允许个人建立资金池。资金池本质上是一个智能合约,用户可以调用资金池的函数进行代币兑换。资金池中可以存在多种货币,用户可以使用资金池中存在的货币进行兑换,兑换的比例按照一种固定的算法,如图所示:

动态 | 成都链安获得前海母基金新一轮融资:金色财经报道,2020年2月,成都链安科技有限公司正式宣布,获得前海母基金新一轮融资,以推动区块链安全事业健康有序发展。此前,成都链安已在2019年12月获得由联想创投、复星高科领投,成创投、任子行战略投资的数千万元融资,以及在2018年3月获得分布式资本的种子轮投资,在2018年9月获得界石资本、盘古创富的天使轮投资。据了解,前海母基金是目前国内商业化募集母基金,截至目前已完成募集规模285亿元。[2020/2/25]

△图2

我们以用STA兑换WETH为例:

?TokenAmountOut表示可以兑换出的WETH的值

?TokenBalanceOut表示当前池内的WETH的值

?TokenBalanceIn表示当前池子内的STA的值

?TokenAmountIn表示用户输入的STA的值

动态 | 成都链安:10月发生较典型安全事件共5起:据成都链安态势感知平台——Beosin?Eagle-Eye统计数据显示,在过去一个月(10月)中,共发生5起较为典型的安全事件。其中包括:1.EOS链上本月内总共发生两起攻击事件:一是假EOS攻击;二是游戏服务器解析参数问题。2.亚马逊云服务平台AWS被爆遭到了DDoS攻击,并因此被迫中断了服务。3.网页加密货币钱包Safuwallet被黑客通过注入恶意代码窃取了大量资金,并且殃及币安。4.Cryptopia被盗资产开始转移:一部分ETH流入知名DeFi借贷平台Compound;另有数个ETH流入一个叫做DeFi 2.0的DApp项目。鉴于当前区块链安全新形势,Beosin成都链安在此提醒各链平台需要增强安全意识,重视各类型安全风险,必要时可寻求安全公司合作,通过第三方技术支持,排查安全漏洞,加固安全防线;各钱包项目应进一步做好安全方面的审查,有意识地增强项目系统架构的安全性,并建立完善的应急处理机制。如发生资产损失,可借助安全公司的帮助,进行资产溯源追踪;用户在进行投资行为时需谨慎,远离资金盘,切勿刀口舔血。[2019/10/31]

?TokenweightIn表示STA的权重,为一个固定值,只能由资金池的管理者更改

声音 | Beosin(成都链安)预警:某EOS竞猜类游戏遭受攻击 损失超1200枚EOS:根据成都链安区块链安全态势感知系统Beosin-Eagle Eye检测发现,今日上午 8:53:15开始,黑客yunmen****对EOS竞猜类游戏th****sgames发起攻击。截止到现在,该黑客已经获利超过1200枚EOS。Beosin建议游戏项目方应该加强项目运维工作,在收到安全公司的安全提醒之后第一时间排查项目安全性,才能及时止损,同时也呼吁项目开发者应该重视游戏逻辑严谨性及代码安全性。Beosin提醒类似项目方全方面做好合约安全审计并加强风控策略,必要时可联系第三方专业审计团队,在上链前进行完善的代码安全审计,防患于未然。[2019/4/3]

?TokenweightOut表示WETH的权重,为一个固定值,只能由资金池的管理者更改

?SwapFee表示手续费,为一个固定值,只能由资金池的管理者更改

综上所述,当一种货币STA在一个资金池中的存量较少时,也就是bI较小时,就可以使用STA兑换更多的WETH。

2、STA代币是一种通缩货币,当进行转账操作时,会自动销毁一定量的STA。如下图所示:

△图3

tokensToBurn即为每次交易销毁的值,其销毁数额是转账数额的1/100,如当数值为1e-18时,其销毁值也是1e-18。销毁值的计算源码如下图所示:

△图4

△图5

接下来我们对本次攻击事件进行分析,以存在STA的被攻击资金池为例。攻击者向自建合约

发起了一笔交易

。在此笔交易中,攻击者首先从闪电贷借出了104331个WETH,如下图所示:

△图6

而后使用借来的WETH兑换被攻击资产池中的STA,因为STA是通缩货币,每次transfer都会使得STA销毁转账金额的1/100。如下图为一次兑换:

△图7

这笔交易共进行了20余次兑换,使得被攻击资金池中的STA余量为一个极小值后开始使用STA兑换其他代币,如下图所示:

△图8

我们可以发现,在此笔交易中,攻击者转给被攻击合约的STA个数是『0』,但却扣除了1e-18个STA,这不符合正常兑换情况。于是我们对此进行深入分析,通过事件日志确定攻击者发送了1e-18个STA。如下图所示:

△图9

由此可得出结论,在发送过程中,因为STA的通缩机制,发送给资金池的STA会被销毁,导致被攻击资金池无法收到STA,但资金池合约仍然会认为收到了1e-18个STA,并更新STA的存量。如下图所示:

△图10

如果STA的存量增加,就会使得STA能够兑换其他代币的比例下降,因此攻击者又调用了gulp()方法来更新STA的余额,使得资金池的STA余额等于实际余额。如图所示:

△图11

每进行一次兑换,攻击者就会调用一次gulp()对STA的余额进行更新,这样使得STA的余额始终为1e-18个,因此每次攻击取出余额的比例都是不变的,如下图所示:

△图12

攻击者使用这种方式,将资金池中的所有代币以每次1/2的比例进行兑换,最终几乎将资金池中的所有代币全部提出。

2.4、攻击事件总结

根据我们日常智能合约安全审计经验来看,本次事件产生的原因,可能是资金池合约对流入资金的处理方式不够完善,并没有考虑到通缩性代币的情况,在计算应当输出的值tokenAmountOut和货币余额inRecord.balance的增减时,都是使用由用户控制的tokenAmountIn参数,而不是实际收到的代币数,导致实际池中的流入资金与记录资金不相符,如下图所示:

△图13

另外,用于更新代币余额的gulp函数的权限是external,这两点组合起来,导致了本次事件漏洞的产生,如下图所示:

△图14

标签:STAEOSTOKENTOKSTARP币eos币最新资讯SwirlTokenpjdtoken

比特币热门资讯
USDT:窄幅震荡接近末尾,后续如何布局?-ODAILY

做交易,归根结底就是要按照资金管理方案,执行好交易系统。所以,交易系统、资金管理和心态,就成为交易最核心的三大问题。本文主要讨论其中最复杂、最难的心态问题.

1900/1/1 0:00:00
比特币:后期多头若无力,则会强势下行吗?-ODAILY

今日行情分析: 比特币今日整体波动不怎么可观,整体一百点内波动,整体来说行情走了一波震荡下行的走势,但是目前收到一个小支撑反弹一波但是没有多大力度,整体从一小时来看,目前布林带成收口平行走势.

1900/1/1 0:00:00
DEFI:以太坊第五年,未来该往哪走?-ODAILY

2020年3月4日,我国提出“加快推进国家规划已明确的重大工程和基础设施建设,加快5G网络、数据中心等新型基础设施建设进度”,受到广泛的社会关注.

1900/1/1 0:00:00
BTC:ETH或跟涨牛市,大盘出现逆转形态-ODAILY

前言大家好,我是你们的朋友「七月」,专注于BTC、以太坊等主流数字货币走势预判和行情分析,帮助更多的币友理性应对风险,要想在币海里稳中求胜,仅有一流的技术和丰富的经验是不够的.

1900/1/1 0:00:00
BNB:像创建ERC20 Token一样发衍生品?Injective DEX,人人都是BitMex-ODAILY

像创建ERC20Token一样发衍生品?InjectiveDEX——人人都是BitMex。周一下午3:00,InjectiveProtocol联合创始人及CEOEricChen、Axia8Ven.

1900/1/1 0:00:00
AND:比特币行情解析:假如牛市真的开启,你该如何应对?-ODAILY

昨日整个白天,比特币价格整体维持上行,虽然未创出新高,但在前期涨幅这么快且大的情况下,还能维持最顶部位置的震荡,本身就只比继续突破的强势稍微差一些.

1900/1/1 0:00:00