链资讯 链资讯
Ctrl+D收藏链资讯

首发 | Bancor智能合约为何会出现漏洞?该如何避免?

作者:

时间:

6.18期间正愁”千手观音“还不够剁,如果一觉醒来,突然发现爸妈的账户可以随便用了,前男友的钱因为权限设置错误而对你以及他所有前女友开放了。不是天上掉馅饼,而是老天可能漏了个洞。

我的是我的,你的还是我的。

这种漏洞恰好于6月18日发生在了Bancor部署的智能合约上。

Bancor 在6月16号部署了他们的 BancorNetwork v0.6的智能合约, 紧接着两天后合约被发现存在严重的安全漏洞。攻击者可利用此漏洞转走合约里的钱。

智能合约可能产生的漏洞有很多种,而本次Bancor智能合约所产生的漏洞与函数有关。

先科普一下,在智能合约里,函数有4种访问权限:

Public - 可被所有人调用

External - 只可被外部所调用

Internal - 只可被合约本身以及继承合约调用

Private - 只可被合约本身调用

这里强调一下,当函数权限被设置为public时,任何人都可以调用这个函数,从而把合约里的钱转走。也就是说,当你的前男友不小心把他的钱包权限设置成了公开,那么包括他的现任、前任、前前任在内的世界上的任何人,都可以轻而易举地把他的钱转移走。此刻他一定非常心塞。

点对点借贷协议RociFi Labs宣布完成270万美元种子轮融资,Nexo等参投:4月12日消息,点对点借贷协议RociFi Labs宣布完成270万美元种子轮融资,Arrington Capital、Goldentree、Nexo、LDCapital和Skynet Trading等参投。

据了解,RociFi旨在通过使用借款人已建立的DeFi头寸来判断贷方信用度,从而提供零抵押贷款,本轮所融资金将用于扩大RociFi团队并将产品推向市场,RociFi Labs首席执行官Christopher Brookins预计将在第二季度主网上线。[2022/4/12 14:20:20]

下面我们来看一下此次Bancor漏洞的代码:

在漏洞合约的第45行我们看到safeTransferFrom函数,这个函数的功能是从一个地址往另一个地址转账,注意到此函数的权限被设置为public。

有趣的是,CertiK团队通过进一步的调查发现,在有漏洞的合约部署的两天后,Bancor团队用了以下两个钱包地址去通过漏洞提取合约中的资金,来清空合约里的资金,防止被黑客盗取,也算是弥补漏洞的精明之举: 

0xc8021b971e69e60c5deede19528b33dcd52cdbd8,

0x14fa61fd261ab950b9ce07685180a9555ab5d665

几乎同时,两个第三方人员也开始利用这个漏洞提取资金,其中一位利用漏洞进行了16次取款交易,总共取出了131,889.34美元。这个第三方人员的ETH地址和邮箱分别是:

BTC突破32000美元关口 日内涨幅为1%:火币全球站数据显示,BTC短线上涨,突破32000美元关口,现报32004.59美元,日内涨幅达到1%,行情波动较大,请做好风险控制。[2021/6/23 23:58:20]

0x052ede4c2a04670be329db369c4563283391a3ea

arden43y@gmail.com

此人称这个地址的背后是一个自动运行的交易系统,可能会无意利用人为的失误和合约的漏洞获取资金。如果能够证明这个地址通过漏洞得到了钱,他可以把钱归还。

而另一位的地址是以下两个: 

0x854B21385544c44121f912AEdF4419335004F8ec,

0x1ad1099487b11879e6116ca1ceee486d1efa7b00

他总共进行了四笔取款交易,共提取了3340美元。(折合人民币2万3千元左右,可以足足吃上2000多顿小龙虾。)

Bancor对此事件进行了官方回应(详情请见文末“其他参考链接”第一条): 

其中有一段提到他们利用这个漏洞把合约里的$455,349的余额转移到另一个钱包里了。

另一段称已与两位第三方人员取得联系,请求他们退回利用合约漏洞而转走的资金。

Bancor随后更新了有漏洞的合约。

可以明显看出public被改为了internal。

造成此严重漏洞的原因是开发人员在设置函数权限的时候犯了错误。在智能合约里,仅仅一个参数使用错误,就可导致合约里所有人的钱都处于危险之中。

值得庆幸的是,此次漏洞并没有被黑客利用,不然用户的钱将永远无法追溯。

智能合约类似于函数调用错误的漏洞还包括但不限于DOS、逻辑错误、越权访问、重入及整数溢出等一千种可能。这一千种可能里面任意的一种可能,都会给公司及用户带来巨大的财产损失,而且合约具有一旦部署就不可更改的属性。

因此,保证智能合约没有漏洞,是非常重要的。合约在部署前,交给专业的安全公司进行安全审计是不可或缺的环节。

CertiK会使用形式化通过数学层面的验证去证明智能合约的正确性。以上则是CertiK安全审计的部分内容。

程序测试可以证明漏洞的存在,但永远不能说明漏洞不存在。

而CertiK的存在,就是为了让漏洞不存在。

我们绝不仅仅是寻找漏洞,而是要消除哪怕只有0.00000001%被攻击的可能性。

文中所提及智能合约及地址链接如下:

存在漏洞的智能合约: 

https://github.com/bancorprotocol/contracts-solidity/blob/4394c0e1d1785a71044101b1d6df57e332b73ba9/solidity/contracts/utility/TokenHandler.sol

漏洞合约部署的地址:

0x8dFEB86C7C962577deD19AB2050AC78654feA9F7

0x5f58058C0eC971492166763c8C22632B583F667f

0x923cAb01E6a4639664aa64B76396Eec0ea7d3a5f

修改后的智能合约:

https://github.com/bancorprotocol/contracts-solidity/blob/master/solidity/contracts/utility/TokenHandler.sol

其他参考链接:

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

https://github.com/bancorprotocol/contracts-solidity/blob/4394c0e1d1785a71044101b1d6df57e332b73ba9/solidity/contracts/utility/TokenHandler.sol#L45

https://explore.duneanalytics.com/public/dashboards/mEUEd9rQCPjeMkryEIgbtC0YUZwOXESQPTkkqdPX

标签:NTRRACCONACTFootball DecentralizedTractoconflux币总量Gallant Nactive Little Super

欧易交易所app下载热门资讯
金色观察 | 征税成共识 韩国加密货币新税制在路上

6月17日,韩国财长洪南基表示,韩国将于7月宣布有关对加密货币征税的决定。洪南基称,为适应不断变化情况,我们一直在努力建立新的税制。目前正在制定针对各种项目和税种的新税制。 而在此前韩国当地媒体报道称,韩国监管机构战略和财政部计划在7月发布向加密货币交易获利征收税务的完整提案,并在9月向韩国国会提交税收修正案。

ETH为什么在DeFi狂欢中沉默?

(正开花的果树园,梵高) 最近一段时间以来,基本上都是DeFi的盛宴,从Kyber到Compound,一系列的DeFi项目此起彼伏,不断突破新高,DeFi整体市值超越55亿美元。这种突破不仅是其市值的突破,同时业务量也在不断地提升。

四川矿场水电消纳全年预计50亿度 明年还将翻倍

吴说区块链获悉,四川电力交易中心有限公司表示,目前2020年四川年度电量交易完成,其中,水电消纳产业示范区交易目前成交电量约13.71亿千瓦时。此外,行业人士预计全年总量在50亿度,将创历史新高。 四川全年矿场耗电大约在300亿度左右,水电消纳园区用电将占1/6。随着合规化的进展,明年预计这一数据还将翻倍。

市场波动明显 投资者交易趋谨慎

综述:标准共识市场综合指数为 1,096.69 点,一周内指数涨幅为 0.02%,指数走势相对于全市场走势相对强势。根据标准共识情绪指数反映,目前市场情绪稳定,最新指数为 0.93,市场波动较为明显,投资者交易心态较为谨慎。 BTC:BTC 在 $9,000 获得支撑,维持震荡,但整体支撑力度较弱,空方还将试探 $9,000 的支撑力度。

DeFi暴走、 ETH猛拉、平台币启动 BTC是否还会再犹豫?

市场分析 这两天Compound的爆炸式增长赚足了眼球,COMP市值一度高达35亿美金,即使略有回落,也占整个DeFi市值的近50%,现在DeFi中锁定的总价值已超过16亿美金,这一数字还在持续上升。

一图看懂Filecoin发展路线

6月19日8点,去中心化存储项目Filecoin二阶段测试网正式开启重置。本次重置的主要关注点是修复错误和提高性能,Filecoin离主网上线又进一步。 Filecoin是IPFS技术的激励层,采用区块链结构。IPFS是星际文件系统,自Juan Benet于2014年创立至今,在IPFS协议上运行的应用已有数百个,全球已有数百万个节点。