欢迎访问赚钱网,请登录|免费注册

当前位置

主页 > 区块链 >

用漏洞百出的代码管理数字资产 你真的放心吗?

发布时间:2019-10-06 22:27 阅读: 字体: 在线投稿

  2010年8月,比特币发生了一次整数溢出漏洞(CVE-2010-5139),使得攻击者产生了2笔输出92233720368.54277039个比特币的交易,远超中本聪设定的21000000上限。

  2018年4月,以太坊上的智能合约也接连发生2起整数溢出漏洞(CVE-2018-10299,CVE-2018-10376),攻击者凭空增发了大量的token,使得投资者的资产被严重稀释。

  为了分析当前最流行的以太坊智能合约的安全性,SECBIT实验室安全团队深度扫描检测了当前正在运行的23357个智能合约源代码,通过AI智能合约安全审计模型扫描,实验室安全专家发现其中大量合约代码存在着不同程度的安全隐患。

  根据扫描结果显示,这23,357个智能合约源代码中,智能合约总共出现了405882个不符合安全开发规范的项,平均每个合约有超过17个规范违反项,尽管这些点不会立即导致智能合约出现安全漏洞,但是对于保护巨量数字资产的代码,这些问题都有可能成为黑客的分析和攻击方向,作为项目方的开发人员,不能忽视这些隐患,并保持清晰的思路,尽可能严格按照安全开发规范要求进行开发,这样才能避开潜在的攻击威胁。

  扫描结果显示,低级别(Low)的安全问题有26,821个,主要有未指明版本号以及高GAS消耗等问题。未指明版本号可能会在将来新版本编译器上遇到不兼容问题。SECBIT实验室的安全专家建议开发者在开发过程中,为用户调用函数节约GAS,以避免在网络拥堵时让用户负担过多手续费。

  另外中级(Medium)安全问题有7,202个,主要有整数溢出、除法、依赖时间戳、区块哈希的运算。整数溢出问题在BEC、SMT的Token发行合约上已经展现出了危害性,在此不再赘述。EVM目前不支持浮点数,除法运算在EVM上表现为向下取整,开发者在智能合约上应当尽量避免,以免发生潜在的安全隐患。另外如果将时间戳、区块哈希作为随机数来源,有一定被矿工操纵的风险,开发者应该注意设计安全的交互协议。

  扫描结果中高危(high)安全问题有572个,主要集中在代码重入、短地址攻击、强制转账、使用合约余额来做判断、高地址脏数据、tx-origin的误用上。以太坊历史上曾发生过一次震惊世界的攻击——the DAO Hack,这也是代码重入漏洞展示威力的一次标志性事件。

  这些问题都有重演类似严重安全事件的可能。

  除了上文提到的使攻击者受益的一类安全问题,还有一些类似Parity多重签名钱包的问题,尽管没有一方可以获益,但是用户却遭受了巨额的损失。

  为了解到当前智能合约的发展现状,SECBIT实验室安全团队监控扫描了以太坊上所有历史数据,并统计分析了自创世区块以来,以太坊上所有创建的智能合约信息。




    标签: 微信挂机平台