一、事件简述
2020-06-18(文中所提及时间均为UTC时间),以太坊上的智能合约BancorNetwork被爆出存在严重漏洞。该漏洞由BancorNetwork团队和白帽最先发现,并第一时间对存在被盗风险的资金进行了转移,涉及资金50W余美元。
此次事件中,存在漏洞的合约地址主要有如下三个:
0x923cab01e6a4639664aa64b76396eec0ea7d3a5f
0x8dfeb86c7c962577ded19ab2050ac78654fea9f7
0x5f58058c0ec971492166763c8c22632b583f667f
2020-06-183:06:48,BancorNetwork团队利用此漏洞对存在被盗风险的用户资金进行转移,截至2020-06-18?6:56,BancorNetwork团队共计转移资金约合$409,656。
另外两个公开邮箱信息的地址:
0x052ede4c2a04670be329db369c4563283391a3ea
0x1ad1099487b11879e6116ca1ceee486d1efa7b00
也于同一时间利用此漏洞对用户资金进行转移,分别转出资金$131,889和$2346。
NFTBank运营商完成约1200万美元A轮融资,Hashed领投:金色财经消息,NFT资产管理平台NFTBank运营商Contxts.io完成Hashed领投的150亿韩元A轮融资(约合1200万美元),参投方包括红杉资本、1kx、DCG、Alameda Research、DapperLabs等,此外可能还会有其他机构追加投资。
Hashed于2020年6月对Contxts.io进行了天使轮投资,2021年4月,又领投了Contxts.io的种子轮投资。本月早些时候,Kakao区块链子公司GroundX收购了Contxts.io约10%的股份。(CoinDeskKorea)[2022/4/21 14:39:04]
到目前为止:
EtherScan已经将存在此漏洞的合约进行标注,如下图所示
图一
BancorNetwork团队也已对此次事件做出了回应,
Bancor将于11月29日披露V3版具体细节:11月10日消息,去中心化交易协议Bancor宣布将于11月29日公布Bancor V3版本的全部细节,并将发布V3版第一阶段。[2021/11/10 6:43:45]
详情见
,
并于UTC时间2020-06-1721:35:53部署了新的BancorNetwork合约,合约地址为
0x2f9ec37d6ccfff1cab21733bdadede11c823ccb0
二、原理分析
漏洞爆出后,成都链安安全团队第一时间对本次事件进行跟踪分析,根据链上分析结果发现,此次事件中漏洞产生的主要原因是智能合约BancorNetwork存在一个调用权限为public的函数safeTransferFrom,通过调用此函数,可以将用户授权给智能合约BancorNetwork的资金转出到任意地址。
由源码可以知,该函数为一个public函数,详细代码如下图所示:
LBank蓝贝壳上线Saito 最高上涨689%:据官方消息,4月22日,LBank蓝贝壳上线Saito,开放USDT交易。Saito开盘价格为0.004 USDT,当前最高报价0.031567 USDT,最高涨幅689%。资料显示,Saito是一个面向用户的Web 3.0开放网络层,Saito上的应用可以在没有封闭插件、没有私有API或在开放基础设施的情况下运行。Saito网络可以为Saito和其他公链中提供路由和用户基础设施的节点提供资助。Saito网络共识高度安全,集抗sybil攻击、防垄断和去中心化于一体,确保了Web 3.0的开放性和独立性。注:信息仅供分享,不构成任何投资建议。[2021/4/23 20:51:27]
图二
safeTransferFrom函数内部调用了execute函数。而execute函数的功能是调用safeTransferFrom参数中的_token代币智能合约的transferFrom函数进行代理转账。execute函数源码如下图所示:
图三
“LBank和他的朋友们-2020百城计划”西安站完美收官:据官方消息,2020年9月6日,由LBank和金色财经联合主办,AVF、PDF、ESC、ODIN、FOUR、CCXX、TT、TokenBuster、Token War、八宝饭财经等多家机构支持的“LBank和他的朋友们-2020百城计划”在西安举行并完美收官。LBank Jody、AVF理事长Martin、梧桐资本联合创始人PDF投资人索斗、雷神Thor联合创始人米拉、ESC早期步道者 Tony、Token War 社区联合创始人良哥、八宝饭联合创始人王实等出席会议并发表演讲。 “百城计划”会议的宗旨是提供区块链行业当地资源的交流、分享以及裂变的机遇。希望通过本次西安的活动,可以带来更多项目启发与合作机会。[2020/9/6]
我们通过一笔链上交易可以清晰的看到调用此函数的具体作用。如地址“0xc802”发起一笔交易,调用了智能合约“0x5f58”的safeTransferFrom函数,使地址”0x8a39”中的0.000000000000000003代币MFG发送到”0x2955”,具体如下图所示:
Signature Bank第二季度加密客户存款增加10亿美元:金色财经报道,加密友好银行Signature Bank在2020年第二季度获得了近80亿美元的存款增长,该公司的数字资产部门获得了10亿美元的存款增长。在财报电话会议上,Signature首席执行官Joseph DePaolo将存款增长归因于银行各业务领域的增长,包括基于区块链的支付平台Signet。这已是连续第四个季度总存款增长和平均存款增长均超过10亿美元。据此前消息,该银行向9家加密公司提供了“薪资保护计划”(PPP)贷款。[2020/7/24]
图四
以上就是本次事件漏洞的原理分析,该漏洞的原理十分简单,是因为函数的调用权限设置错误,将本应该只有合约本身调用的函数,设置成了任何人都可以调用。而当BancorNetwork拥有用户的授权额度时,任何人都可以通过调用safeTransferFrom函数,以BancorNetwork的身份对用户的资金进行代理转账。
针对该漏洞,有两点值得我们进行深入分析:
1.?为什么BancorNetwork合约的safeTransferFrom函数会将权限设置成public。
2.?BancorNetwork合约的主要功能是代币转换,并非一个钱包,为什么用户会有未使用的授权。
对于第一个问题,我们追踪了safeTransferFrom函数的调用情况,发现safeTransferFrom函数只在handleSourceToken函数中被调用,用于将用户的代币转移到本合约中。handleSourceToken函数源码如下图所示:
图五
既然只是在handleSourceToken函数中调用,那么显然是没有必要设置成public权限,且根据业务来看,BancorNetwork的主要作用是用于代币交换,并不需要用户主动调用safeTransferFrom,也就没有必要将safetransferFrom设置为public权限。于是我们对比了合约中其他的几个函数,这几个函数均被设置成了public权限。如下图所示:
图六
由此,针对第一个问题,我们推测将这些函数设置为public权限可能是因为合约开发人员的疏忽。而目前来看,BancorNetwork团队新部署的合约也验证了这个推测。根据链上代码显示,官方部署的新合约已经将相关函数权限全部进行了更改。具体代码如下图所示:
图七
针对第二个问题,我们跟踪了漏洞爆出后被转移资金的地址,发现这些地址在对BancorNetwork授权额度时,往往超过了所需要兑换代币的数量,且在兑换完成后,并没有收回额度。如下图所示:
图八
“0x624f”开头的地址对BancorNetwork合约授权了900000000000000个ONG代币,此额度已经超过了ONG的发行量,相当于将“0x624f”所拥有的ONG代币全部授权给BancorNetwork合约。而跟踪“0x624f”开头地址的交易我们发现,在进行完代币兑换后,未使用完所有授权额度,但并未将授权额度收回。
综上所述,我们推测可能是用户考虑到要随时使用,为了方便,一次性将所有代币都授权给了BancorNetwork合约。也可能是BancorNetwork的前端对授权金额设定了默认值。但这种行为存在巨大的风险,一旦智能合约爆发漏洞,资金极易被攻击者窃取。而在对后续新的BancorNetwork合约进行分析时发现,BancorNetwork团队和用户似乎也意识到了此问题存在的巨大风险,并做出了相应的安全防护。如下图九、十为用户对新合约的授权情况,对比两笔线上交易不难看出,两次授权的时间间隔很短,当用户成功兑换完代币后,剩余授权即被收回。
图九
图十
三、结语
BancorNetwork本次爆出的漏洞,是一个较为简单的漏洞,此类漏洞在代码审计过程中十分容易被发现,但此次漏洞的影响却很大,上线仅两天,涉及的资金就已经超过50w美元。幸而BancorNetwork团队及时发现并修复了漏洞,否则后果不堪设想。成都链安-安全研究团队在此提醒各大智能合约运营商,因区块链合约部署后不可更改的特性,对比传统软件,上线前做好充分的代码审计十分重要,此次事件虽未造成太大的经济损失,但势必会让用户对BancorNetwork团队产品的安全性产生质疑。另外也提醒广大用户和运营商,在授权资金给第三方合约时,都应保持谨慎,切不可盲目相信“大公司”,对任何合约的授权都应当秉承最小原则,不要使自己的资金安全掌握在他人手中。
标签:BANANCBancorNETbanana币怎么样BNBX FinanceBancor Governance TokenPLANETS价格
7月5日,由杭州市余杭区政府指导,杭州未来科技城管委会、巴比特主办的“2020杭州区块链国际周”正式开幕.
1900/1/1 0:00:00Overview概述本文将通过对比股票市场期权产品、商品交易所期权产品以及比特币期权产品来介绍比特币期权市场价格的有效性.
1900/1/1 0:00:00据数据平台QKL123显示,从6月14日至6月20日,不到一周的时间里,灰度基金对比特币持仓量增加了约5200枚,其中,6月15日至少增持300BTC.
1900/1/1 0:00:00近日,数字资产衍生品交易所ZUBR发布了一项研究报告,预测到2028年,市场对比特币的零售需求将超过供应量.
1900/1/1 0:00:00根据defipulse的数据显示,以太坊去中心化金融项目的总锁仓值今日已突破了20亿美元,创历史以来的新高.
1900/1/1 0:00:007月5日上午9点,由杭州市余杭区政府指导,杭州未来科技城管委会、巴比特主办的“2020杭州区块链国际周”正式开幕.
1900/1/1 0:00:00