当前位置:主页>资 讯>安全动态>

区块链智能合约漏洞,想说补你不容易

  区块链安全最近几天,区块链平台EOS智能合约漏洞事件再次把区块链安全推上了风口浪尖。

  攻击者可以通过发布包含恶意代码的“智能合约”,经过一系列的操作之后,控制区块链网络中的所有节点,从而为所欲为。从The DAO到BEC,SocialChain,Hexagon,再到这几天的EOS漏洞,“智能合约”已经成为区块链安全的重灾区。



 

那么什么是智能合约,智能合约的漏洞究竟给安全带来了什么样的新挑战,我们应该如何应对? 本文中,360代码卫士团队的安全专家将结合自身在区块链智能合约漏洞方面的研究成果和心得体会,从这几个方面进行深入解读。

  一、什么是智能合约?

智能合约(smart contract) 这个术语是在1994 年由Nick Szabo 提出的,后来经过几次在不同环境下的重新定义。我们现在通常所说的区块链智能合约以以太坊为代表,以太坊的作者Vitalik Buterin 意识到,在区块链系统中,交易逻辑是可以和底层系统机制分离的。

底层系统负责交易块的创建和验证,记账者的共识达成等基础功能,而交易本身到底做什么事情是可以通过二次编程的方式来定义的。因此他设计了一种交易代码执行的虚拟环境EVM,使用者可以开发自定义的交易逻辑,发布到链上,当交易进行时,链上所有的节点都执行相同的代码,从而同步改变链上数据的状态。他为这种代码使用了“智能合约”这个名字,这是我们目前通常所说的智能合约的内涵。

  二、智能合约漏洞,左右为难!

智能合约本质是一段运行在区块链网络中的代码,它完成用户所赋予的业务逻辑。以以太坊体系的代币为例,其业务逻辑是代币发币和交易。以太坊在设计之初,将智能合约设计成了一旦部署就不能修改的模式。这种设计有可能是为了提高智能合约的可信性。

但是我们知道,只要是由人编写的程序,就一定会出现错误和缺陷。以太坊这种设计本身就违背了程序设计的一般规律,在智能合约出现漏洞的时候可能会造成无法弥补的损失。

我们可以看到,近期出现的以太坊体系智能合约的漏洞,造成了巨大的影响,有的代币也因此毁灭。



 

目前以太坊体系区块链智能合约的机制设计,加之漏洞可能带来的毁灭性影响,使得已上线智能合约的漏洞的报告和处理变得非常棘手。

360代码卫士团队在近期的研究中发现了以太坊体系下多个已上市交易的代币的智能合约安全漏洞,并已第一时间报告厂商,但到目前为止厂商尚未作出任何回应。对于厂商来说,由于智能合约不可修改的特性,要对上线后发现的漏洞进行有效修复,只能选择重新部署新的合约,这将付出巨大的代价,因此有的厂商可能会选择不响应,不处理。

而对于安全研究者来说,也面临尴尬的境地,左右为难。在厂商修补漏洞前公开漏洞细节对于厂商不利,有悖漏洞披露的一般原则,但如果厂商迟迟不修补漏洞,公众对于漏洞的存在不知情,风险会随着时间的增长迅速膨胀,漏洞一旦爆发可能会造成更大的危害,波及更大的人群,可能会造成很多人的投资瞬间化为乌有。接下来360代码卫士团队还将与厂商保持积极的联系和沟通,以期帮助其修复漏洞。



 

  三、智能合约漏洞,如何应对?

在一些联盟链中,智能合约的设计是可以在部署之后更新的,当然这种更新需要一定的线下协商流程。要应对区块链智能合约的安全漏洞问题,未来需要普遍考虑设计相应的智能合约协商更新机制,降低漏洞修复的成本。

但现在,我们需要面对现实,做出几乎唯一可行的、切实有效的努力——在智能合约上线之前,对其进行全面深入的代码安全审计,尽可能的消除漏洞,降低安全风险。

360代码卫士团队安全专家表示,当前区块链智能合约中可能出现的漏洞至少有20余种。以下列举一些常见的区块链智能合约的漏洞类型及其可能造成的风险,这些漏洞在智能合约上线之前,都应该进行详细的排查。

  1.整数溢出

智能合约中危险的数值操作

可能导致合约失效、无限发币等风险

  2.越权访问

智能合约中对访问控制处理不当

可能导致越权发币风险

  3.信息泄露

硬编码地址等

可能导致重要信息的泄露

  4.逻辑错误

代理转账函数缺失必要校验

可能导致基于重入漏洞的恶意转账等风险

  5.拒绝服务

循环语句、递归函数、外部合约调用等处理不当

可能导致无限循环、递归栈耗尽等拒绝服务风险

  6.函数误用

伪随机函数调用和接口函数实现问题

可能导致可预测随机数、接口函数返回异常等风险

  四、总结

漏洞永远都会存在。未来区块链行业一定会出现更多的安全问题,之前传统互联网领域里面遇到的安全问题,区块链行业里面一定也会遇到。区块链行业要能够与网络安全行业做到协同开放,才能使行业更加健康稳定安全的发展。

(责任编辑:安博涛)

分享到:

更多
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
  • 微笑/wx
  • 撇嘴/pz
  • 抓狂/zk
  • 流汗/lh
  • 大兵/db
  • 奋斗/fd
  • 疑问/yw
  • 晕/y
  • 偷笑/wx
  • 可爱/ka
  • 傲慢/am
  • 惊恐/jk
用户名: 验证码:点击我更换图片
资料下载专区
图文资讯

Git爆任意代码执行漏洞,所有使用者都受影

Git爆任意代码执行漏洞,所有使用者都受影响

Git由于在处理子模块代码库的设置档案存在漏洞,导致开发者可能遭受任代码执行攻击,...[详细]

区块链智能合约漏洞,想说补你不容易

区块链智能合约漏洞,想说补你不容易

区块链安全最近几天,区块链平台EOS智能合约漏洞事件再次把区块链安全推上了风口浪尖...[详细]

令人恼怒的十个安全悖论

令人恼怒的十个安全悖论

任何具有相当驾龄的人应该都能了解交通堵塞是多么令人沮丧的事。交通堵塞可能由多种原...[详细]

黑客入侵火车?绝非天方夜谭!

黑客入侵火车?绝非天方夜谭!

生活在数字时代意味着我们日常中的大多数物件均由计算机操作和/或控制。从家用电器到...[详细]

尼日利亚黑客向上海某企业发送“木马发票”

尼日利亚黑客向上海某企业发送“木马发票”,现已入侵主机 450 台

雷锋网(公众号:雷锋网)消息,5 月 28 日,威胁情报公司微步在线对雷锋网称,他们近日...[详细]

返回首页 返回顶部