木星链 木星链
Ctrl+D收藏木星链
首页 > Bitcoin > 正文

STA:成都链安: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的资产池

成都链安:fortress被盗金额已被转换成1048eth并转入了Tornado Cash:5月9日消息,据成都链安安全舆情监控数据显示,fortress 遭受预言机价格操控攻击,被盗金额已被转换成1048eth并转入了Tornado Cash。经成都链安技术团队分析,本次攻击原因是由于fortress项目的预言机FortressPriceOracle的数据源Chain合约的价格提交函数submit中,将价格提交者的权限验证代码注释了,导致任何地址都可以提交价格数据。攻击者利用这个漏洞,提交一个超大的FST价格,导致抵押品价值计算被操控,进而借贷出了项目中所有的代币。

攻击交易:0x13d19809b19ac512da6d110764caee75e2157ea62cb70937c8d9471afcb061bf

攻击者地址:0xa6af2872176320015f8ddb2ba013b38cb35d22ad

攻击者合约:0xcd337b920678cf35143322ab31ab8977c3463a45[2022/5/9 3:00:21]

进行了攻击。

成都链安:Visor Finance遭受攻击事件分析:据成都链安监测显示,Visor Finance于北京时间2021年12月21日晚上10点18分遭受攻击。经成都链安技术团队分析,本次攻击利用了Visor Finance项目抵押挖矿合约RewardsHypervisor的两个漏洞:

1.call调用未对目标合约进行限制,攻击者可以调用任意合约,并接管了抵押挖矿合约的执行流程;<- 主要漏洞,造成本次攻击的根本原因。2.函数未做防重入攻击;<- 次要漏洞,导致了抵押凭证数量计算错误,不是本次攻击的主要利用点,不过也可凭此漏洞单独发起攻击。针对这两个问题,成都链安在此建议项目方应做好下面两方面:1.进行外部合约调用时,建议增加白名单,禁止任意的合约调用,特别是能够控制合约执行流程的关键合约调用;2.函数做好防重入,推荐使用openzeppelin的ReentrancyGuard合约。[2021/12/22 7:55:18]

2.2、攻击步骤简介

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

巧克力COCO智能合约已通过Beosin(成都链安)安全审计:据官方消息,Beosin(成都链安)近日已完成巧克力coco智能合约项目的安全审计服务。据介绍,巧克力COCO是基于波场底层打造的一个去中心化开放金融底层基础设施。结合波场TICP跨链协议,订单簿DEX,智能挖矿等等功能的创新和聚合,进而打造全面去中心化金融平台。巧克力COCO无ICO、零预挖且零私募,社区高度自治。合约地址:THTpbtqfoGmL6HwqaGrWKd7aJAcUTbCnoC审计报告编号:202010042149[2020/10/5]

0xBF675C80540111A310B06e1482f9127eF4E7469A

攻击过程如下图所示:

△图1

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

分析 | 成都链安:盗窃Upbit交易所黑客开始测试向交易所充值:据成都链安反系统(Beosin-AML)监测显示,Upbit攻击者于28日下午17:08开始向0xf467816地址转移60100ETH,并将少量ETH转往可能随机选取的中间地址。通过该地址,这笔小额ETH目前已经进入疑似火币交易所钱包地址0x5401dbf7da53e1c9。目前攻击者正在分散资金,且通过少量的ETH测试是否能够成功进入交易所。[2019/11/28]

2.3、漏洞原理详细分析

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

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

△图2

声音 | 成都链安:用户安全意识不足、交易所安全体系不够完善等因素造成交易所安全事件频发:成都链安统计数据显示,近期交易所安全问题时有发生。通过总结近期各种交易所安全事件和用户丢币事件,成都链安分析认为,交易所安全事件的问题来源主要有三点:1、用户安全意识不足,导致误入钓鱼网站等进而私密信息被盗。2、交易所安全体系不够完善,平台自身存在安全漏洞。3.交易所外接数据服务或其他服务后,未针对不可控因素建立应急机制。[2019/8/26]

我们以用STA兑换WETH为例:

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

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

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

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

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

?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

标签:STAETHKENTOKEpstake币发行量EtherPartyIOTF TokenAEN Smart Token

Bitcoin热门资讯
BTC:行情分析:比特币变盘时间临近,需留意盘面变化 -ODAILY

市场要闻1、韩国计划将在区块链和其他工业4.0技术上投资数百亿美元。2、伊朗向14个加密矿场颁发经营牌照,或将矿工电费下调47%.

1900/1/1 0:00:00
GATE:Gate.io & TokenInsight首届全球数字资产做市商大赛-ODAILY

Gate.io一直致力于为用户提供更专业的产品,为忠实用户提供更优质的服务。为了进一步\n提高平台深度及流动性,满足更多投资者的需求,Gate.io联合TokenInsight举办“首届\n全球.

1900/1/1 0:00:00
ETH:ETH分析:日线下轨即将破位,大家请注意瀑布要来了-ODAILY

易天说 昨日易天老师在文章中给出的BTC操作区间在9100-9300,区间不大;昨日比特币行情最高到达9340一线,于晚间10点时抵达最低9046一线;虽然给出的区间上下沿都有所突破.

1900/1/1 0:00:00
区块链:区块链应用创新大赛50强战队名单即将出炉-ODAILY

自7月8日2020线上智博会区块链应用创新大赛开启报名以来,收到国内外开发团队的大量关注与咨询。7月25日,报名通道正式关闭,大赛共收到200多支团队报名信息.

1900/1/1 0:00:00
比特币:比特币行情分析:比特币承压9600美元再度回调-ODAILY

比特币24小时净流入-3.74亿,24小时总额度168.99亿。主力净流入-1.46亿,散户净流入-2.28万.

1900/1/1 0:00:00
区块链:“一键”快速上链,还有千万资源补贴 | 百度超级链神秘发布会开启-ODAILY

区块链势头日渐迅猛,国家及各部委出台相关政策20余项,超过30个省市地区发布区块链政策指导文件,以北京为例,半年多时间,全市区块链政务领域已落地140个具体场景应用.

1900/1/1 0:00:00