内容简介:在我们写完“其间还有不少关心资产安全的用户来问我们一些相关事情,其中有一个问题大家最为关心,那就是:这一切不仅存在理论中,它就发生在你我身边。
在我们写完“ 以太坊DeFi生态当前最大的安全隐患 ”这篇文章后,大家对DeFi滥用授权的行为开始提高了重视。
其间还有不少关心资产安全的用户来问我们一些相关事情,其中有一个问题大家最为关心,那就是:
历史上有没有发生过因为滥用授权引发的资产损失事件呢?
答案是,有。
这一切不仅存在理论中,它就发生在你我身边。
我们一起回顾一个真实案例:
故事的主人公是以太坊生态中大名鼎鼎的DeFi项目——Bancor
而一切就发生在不久前的2020年6月16日,
看到这大家是不是会疑惑,“不久之前”、“明星项目”、“巨大漏洞”这些词汇组合在一起必定是行业讨论的热点。但为什么自己的脑海中没有这件事情的任何印象呢?这样一件巨大的安全事故好像从来没有发生过?
先缓存你的疑惑,让我们把时间回退到2020年6月16日。
看上去很普通的一天,正如你我这些上班族一样,Bancor团队也都在工位上照旧更新自己的Bancor v0.6合约代码。一行又一行的代码,就这样堆叠出 DeFi 打算耸入云霄的新基建。
但谁也不会想到,接下来他们将为这简单几行代码,经历惊心动魄的48小时。
在这之中,到底发生了什么呢?
原来,Bancor 团队的合约开发者犯了一个普通 程序员 经常不在意的“小失误”,
将一个合约转账操作方法的访问权限误写成了public。这一下就能带来灾难性的后果:任何人都有权限调用这个方法以合约的权限来执行“转账”操作。
至此,任何一个对 Bancor 协议进行过无限授权的普通用户,都只能是待宰的羔羊,在每一秒都面临着自己地址里的资产被他人随意掠夺挥霍的结局,代码并不会同情你为资产的积累付出了多少血泪。
那么这些用户的资产就这样灰飞烟灭了吗?
万幸,这次漏洞并没有被黑客先发现。
Bancor 团队赶在黑客之前,抢先利用起此漏洞,紧急转移了用户地址中的资产,共计455,349 美元。
在接下来的时间,Bancor发布了版本更新,并于2天后的2020年6月18日,对外公布了此次事件的始末,同时对用户进行道歉,承认自己的巨大失误。
在其公告中还提到,Bancor在仓促转移用户地址上资产的过程中引起了市场的波动,并被两个套利机器人借此此获利135,229 美元。Bancor团队呼吁其归还资产,但最终的结果,我们不得而知。
在这次 DeFi 事件中,用户从毫无察觉地丢币再到毫无察觉地失而复得,既风平浪静,又波谲云诡。
至此,整个事件就算告一段落。
但事情应该这样结束吗?
了解完这件事情之后,普通用户可能都会有所反思
“要为自己资产负责,警惕 DeFi 向自己索要无限授权”
“参与DeFi合约的资产最好要分开存储”
“要定期检查下自己有哪些过度授权”
“要......”
但仔细想来, 更应该反思的不应该是各个DeFi项目方吗?
但现实并未如你所想,这也正如你的困惑。
为什么几乎没有 DeFi 项目方为此事发表讨论?
为什么生态里的“头部团队们”都捂住了嘴巴?
为什么一件巨大的安全事故最终好像从未发生?
因为几乎所有的 DeFi 项目方和部分钱包团队都在无节制的滥用授权,共同的利益使得所有知情人全部变成了沉默者。
没有修正自身的越权行为,没有展开对风险的思考;
转而将用户的质疑搪塞于各种理论,将用户的安全寄托于各种万幸,
但当不幸真的降临时,谁又能站出来呢?
代码不会同情每个普通用户为资产的积累付出了多少血泪,但是人类的本能会。
作为开发者、作为项目方、作为理应为安全保驾护航的钱包方,不应对滥用授权无动于衷,也不应为了自己能滥用授权就抛弃用户安全。
要时刻记得,仅仅一个月前,大量的用户离钱包内资产灰飞烟灭只差了一个万幸!
Bancor案例原文:
Bancor’s response to today’s smart contract vulnerability
https://blog.bancor.network/bancors-response-to-today-s-smart-contract-vulnerability-dc888c589fe4
三个问题合约代码:
https://etherscan.io/address/0x8dFEB86C7C962577deD19AB2050AC78654feA9F7#code
https://etherscan.io/address/0x5f58058C0eC971492166763c8C22632B583F667f#code
https://etherscan.io/address/0x923cAb01E6a4639664aa64B76396Eec0ea7d3a5f#code
有问题的合约方法:
function safeTransferFrom(IERC20Token _token, address _from, address _to, uint256 _value) public
以上所述就是小编给大家介绍的《因滥用授权 DeFi项目Bancor一个月前差点丢币》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- Outlook滥用利用链
- postMessage 滥用导致的安全风险
- 如何滥用LAPS窃取用户凭据
- PoC:滥用PowerShell Core
- 代码坏味道之滥用面向对象
- 如何滥用Office Web加载项
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
高性能JavaScript
【美】Nicholas C. Zakas(尼古拉斯.泽卡斯) / 丁琛 / 电子工业出版社 / 2015-8-1 / 65
如果你使用 JavaScript 构建交互丰富的 Web 应用,那么 JavaScript 代码可能是造成你的Web应用速度变慢的主要原因。《高性能JavaScript》揭示的技术和策略能帮助你在开发过程中消除性能瓶颈。你将会了解如何提升各方面的性能,包括代码的加载、运行、DOM 交互、页面生存周期等。雅虎的前端工程师 Nicholas C. Zakas 和其他五位 JavaScript 专家介绍......一起来看看 《高性能JavaScript》 这本书的介绍吧!