木星链 木星链
Ctrl+D收藏木星链
首页 > 火币APP > 正文

BAN:Bancor Network漏洞事件全解析

作者:

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

一、事件简述

2020-06-18(文中所提及时间均为UTC时间),以太坊上的智能合约Bancor Network被爆出存在严重漏洞。该漏洞由Bancor Network团队和白帽最先发现,并第一时间对存在被盗风险的资金进行了转移,涉及资金50W余美元。

此次事件中,存在漏洞的合约地址主要有如下三个:

0x923cab01e6a4639664aa64b76396eec0ea7d3a5f

0x8dfeb86c7c962577ded19ab2050ac78654fea9f7

0x5f58058c0ec971492166763c8c22632b583f667f

2020-06-18 3:06:48,Bancor Network团队利用此漏洞对存在被盗风险的用户资金进行转移,截至2020-06-18 6:56,Bancor Network团队共计转移资金约合$409,656。

另外两个公开邮箱信息的地址:

0x052ede4c2a04670be329db369c4563283391a3ea

CertiK宣布融资6000万美元,投资方包括SoftBank Vision Fund II与Tiger Global:金色财经消息,Web3和区块链安全公司CertiK宣布融资6000万美元,投资方包括软银愿景基金2(SoftBank Vision Fund II)和Tiger Global,标志着软银首次涉足Web3安全领域。这也意味着该公司在9个月的时间里总共融资2.9亿美元,进一步巩固了其独角兽地位。

此次融资正值区块链社区围绕Web3应用程序开发引领增长,并为虚拟生态系统创建新的用例,特别是在游戏、NFT和DeFi方面之际。CertiK的营销副总裁Monier Jalal表示:“随着Web3开发和随之而来的黑客攻击趋势的增加,这种巨大的影响推动了对Web3安全的需求。”

4月7日消息,CertiK宣布近日完成8800万美元B3轮融资,估值达到20亿美元,此次融资由Insight Partners、Tiger Global和Advent International领投,高盛、 Sequoia Capital和Lightspeed Venture Partners等参投。(Cointelegraph)[2022/4/22 14:42:04]

0x1ad1099487b11879e6116ca1ceee486d1efa7b00

流动性市场协议xBank将于3月上线以太坊扩容方案StarkNet:官方消息,去中心化非托管流动性市场协议xBank宣布,将于2022年3月在以太坊扩容方案StarkNet上推出。

据悉,xBank为出借方管理存款,并为借款人的存款资产贷款提供便利,同时进行适当的风险管理,以保护出借方免受流动性不足和破产的风险。[2022/2/17 9:59:19]

也于同一时间利用此漏洞对用户资金进行转移,分别转出资金$131,889和$2346。

到目前为止(2020-06-19):

EtherScan已经将存在此漏洞的合约进行标注,如下图所示

Bancor Network团队也已对此次事件做出了回应,

详情见

https://blog.bancor.network/bancors-response-to-today-s-smart-contract-vulnerability-dc888c589fe4 

LBank蓝贝壳今日17:00启动Fei Protocol (FEI) 代售:据悉,LBank蓝贝壳将于4月1日17:00-4月3日20:00启动Fei Protocol (FEI) 代售,认购币种为ETH,认购总额无上限。待官方认购结束后将根据用户参与的ETH发放同等比例的FEI、TRIBE。具体发放时间以官方消息为准。

FeiProtocol (FEI) 支持创建基于以太坊的去中心化、可扩展且公平的稳定币。FEI稳定币的供应没有上限,可以跟踪需求,沿着结合曲线通过销售进入流通。 其中,TRIBE是该协议的治理代币。了解更多信息可登录LBank官方网站。[2021/4/1 19:37:01]

并于UTC时间2020-06-17 21:35:53部署了新的Bancor Network合约,合约地址为

0x2f9ec37d6ccfff1cab21733bdadede11c823ccb0

二、原理分析

漏洞爆出后,成都链安安全团队第一时间对本次事件进行跟踪分析,根据链上分析结果发现,此次事件中漏洞产生的主要原因是智能合约Bancor Network存在一个调用权限为public的函数safeTransferFrom,通过调用此函数,可以将用户授权给智能合约Bancor Network的资金转出到任意地址。

Bancor回应被指控:在美国接受审判不合适:针对此前面临的集体诉讼,去中心化交换协议Bancor的法律小组表示,由于国际地理性质,Bancor在美国接受审判是不适当的。Bancor所提到的诉讼具体涉及为,美国威斯康星州居民购买了Bancor瑞士实体通过新加坡交易所发行的代币,原告指控交易所在未经许可的情况下出售代币。Bancor称,其在以色列和瑞士设有办事处,因此在纽约进行审判不合适。(CoinPost )[2020/10/15]

由源码可以知,该函数为一个public函数,详细代码如下图所示:

safeTransferFrom函数内部调用了execute函数。而execute函数的功能是调用safeTransferFrom参数中的_token代币智能合约的transferFrom函数进行代理转账。execute函数源码如下图所示:

LBank将于今日16:00上线YFFII/USDT交易对:据官方消息,LBank将于今日16:00上线YFFII/USDT交易对,同时开启充提。

YFFII是YFI的原始愿景。YFFII合约是在定额供应时制作的,不能铸造更多YFFII代币。[2020/9/17]

我们通过一笔链上交易可以清晰的看到调用此函数的具体作用。如地址“0xc802”发起一笔交易,调用了智能合约“0x5f58”(也就是Bancor Network)的safeTransferFrom函数,使地址”0x8a39”中的0.000000000000000003代币MFG发送到”0x2955”(图中的“Bancor:White Hat S...),具体如下图所示:

以上就是本次事件漏洞的原理分析,该漏洞的原理十分简单,是因为函数的调用权限设置错误,将本应该只有合约本身调用的函数,设置成了任何人都可以调用。而当Bancor Network拥有用户的授权额度时,任何人都可以通过调用safeTransferFrom函数,以Bancor Network的身份对用户的资金进行代理转账。

针对该漏洞,有两点值得我们进行深入分析:

1. 为什么Bancor Network合约的safeTransferFrom函数会将权限设置成public。

2. Bancor Network合约的主要功能是代币转换,并非一个钱包,为什么用户会有未使用的授权。

对于第一个问题,我们追踪了safeTransferFrom函数的调用情况,发现safeTransferFrom函数只在handleSourceToken函数中被调用,用于将用户的代币转移到本合约中。handleSourceToken函数源码如下图所示:

既然只是在handleSourceToken函数中调用,那么显然是没有必要设置成public权限,且根据业务来看,Bancor Network的主要作用是用于代币交换,并不需要用户主动调用safeTransferFrom,也就没有必要将safetransferFrom设置为public权限。于是我们对比了合约中其他的几个函数,这几个函数均被设置成了public权限。如下图所示:

由此,针对第一个问题,我们推测将这些函数设置为public权限可能是因为合约开发人员的疏忽。而目前来看(2020-06-19),Bancor Network团队新部署的合约也验证了这个推测。根据链上代码显示,官方部署的新合约已经将相关函数权限全部进行了更改(虽然其他的函数与此事件无关)。具体代码如下图所示:

针对第二个问题,我们跟踪了漏洞爆出后被转移资金的地址,发现这些地址在对Bancor Network授权额度时,往往超过了所需要兑换代币的数量,且在兑换完成后,并没有收回额度。如下图所示:

“0x624f”开头的地址对Bancor Network合约授权了900000000000000个ONG代币,此额度已经超过了ONG的发行量,相当于将“0x624f”所拥有的ONG代币全部授权给Bancor Network合约。而跟踪“0x624f”开头地址的交易我们发现,在进行完代币兑换后,未使用完所有授权额度,但并未将授权额度收回。

综上所述,我们推测可能是用户考虑到要随时使用,为了方便,一次性将所有代币都授权给了Bancor Network合约。也可能是Bancor Network的前端对授权金额设定了默认值。但这种行为存在巨大的风险,一旦智能合约爆发漏洞,资金极易被攻击者窃取。而在对后续新的Bancor Network合约进行分析时发现,Bancor Network团队和用户似乎也意识到了此问题存在的巨大风险,并做出了相应的安全防护。如下图九、十为用户对新合约的授权情况,对比两笔线上交易不难看出,两次授权的时间间隔很短,当用户成功兑换完代币后,剩余授权即被收回。

三、结语

Bancor Network本次爆出的漏洞,是一个较为简单的漏洞,此类漏洞在代码审计过程中十分容易被发现,但此次漏洞的影响却很大,上线仅两天,涉及的资金就已经超过50w美元。幸而Bancor Network团队及时发现并修复了漏洞,否则后果不堪设想。成都链安-安全研究团队在此提醒各大智能合约运营商,因区块链合约部署后不可更改的特性,对比传统软件,上线前做好充分的代码审计十分重要,此次事件虽未造成太大的经济损失,但势必会让用户对Bancor Network团队产品的安全性产生质疑。另外也提醒广大用户和运营商,在授权资金给第三方合约时,都应保持谨慎,切不可盲目相信“大公司”,对任何合约的授权都应当秉承最小原则,不要使自己的资金安全掌握在他人手中。

标签:BANANCBancorBSPlbank交易所内部人员ANCHOR价格Bancor Governance TokenBSPT

火币APP热门资讯
STA:首发|空手套以太:Balancer攻击解析

6月29日北京时间凌晨2点03分,CertiK天网系统 (Skynet) 检查到在区块10355807处Balancer DeFi合约异常,安全研究员迅速介入调查,攻击过程浮出水面.

1900/1/1 0:00:00
区块链:金色观察 | 深圳拟重点扶持区块链等12大数字经济产业 多家区块链公司获资助

近日,深圳市工业和信息化局发布了关于公开征求《深圳市数字经济产业创新发展实施方案(征求意见稿)》(下称《实施方案》)意见的通告,表示将努力建成全国领先、全球一流的数字经济产业创新发展引领城市.

1900/1/1 0:00:00
区块链:产业周刊 | 北京公布基于区块链的政府计划 多地推动区块链落地

金色周刊是金色财经推出的一档每周区块链行业总结栏目,内容涵盖一周重点新闻、行情与合约数据、矿业信息、项目动态、技术进展等全行业动态。本文是其中的产业周刊,带您一览本周的区块链产业动态.

1900/1/1 0:00:00
比特币:锲而不舍地等牛来 这些牛你了解吗?

现在还坚守在币圈的人,都坚住币市的牛市迟早会来,但是即使是牛,有也不同的分类,不同的牛有不同的操作方法,今天就一起来学习一下各种牛的不同吃法.

1900/1/1 0:00:00
比特币:灰度投资母公司CEO:美国或不再颁布“禁止比特币”的法令

自从十多年前创建以来,比特币就与世界各地的监管者保持着紧张的关系。美国早在2012年就考虑了关闭比特币的可能性,据报道,就在上个月,美国总统唐纳德·特朗普告诉财政部长史蒂夫·姆努钦(SteveM.

1900/1/1 0:00:00
NBS:10月15日门头沟清算赔偿方案再次推迟

关键要点由于担心7月1日公布的Mt. Gox计划改变,市场波动减小Mt. Gox 清算赔偿时间又推迟了3.5个月,到10月15日由于央行流动性互换协议到期.

1900/1/1 0:00:00