漏洞分析 | 一千种死法之 智能合约函数调用错误

 空投币   2020-06-24  来源:互联网  0 条评论
优质活动 币圈快讯 平台公告 行情分析
最新羊毛 最新空投 链圈挖矿 活动线报
新币上市 币圈空投 国外项目 币链屋
提醒:本站内容均转自网络,仅用于开发者下载测试,请明辨风险,若涉资金安全及隐私,请谨慎!谨慎!再谨慎!一切风险自担,涉及资金交易及个人隐私务必小心并远离,切记千万别投资,勿上当受骗。《本站免责申明》

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

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

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

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

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


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

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

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


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


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


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

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

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


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

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

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

而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

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

本文地址:http://bilianwu.com/56273.html
版权声明:项目均采集于互联网, 空投币 无法审核全面,且希望大家能赚钱,请谨慎切勿上当受骗!
温馨提示:★★★天上真会掉馅饼!天道酬勤,都是机会!不错过每个空投糖果!真假难以辨认,尽量0撸!
重要提醒:本站内容均转自互联网,请明辨各个项目风险,不构成投资建议,如涉及资金交易,请谨慎操作与自担风险!
《新人必看》 《本站免责申明》

评论已关闭!