从The DAO到EOS漏洞 智能合约成区块链安全的重灾区
- +1 你赞过了
两天前,360安全卫士在官方微博发布消息称:360公司Vulcan(伏尔甘)团队发现了区块链平台EOS的一系列高危安全漏洞。经验证,其中部分漏洞可以在EOS节点上远程执行任意代码,即可通过远程攻击,直接控制和接管EOS上运行的所有节点。
EOS被称为区块链3.0,是引入的一种新区块链架构,旨在实现分布式应用的性能扩展。但是,EOS网络还未正式上线,即在自身安全方面遭遇“打击”。
这种安全问题,已经成为区块链世界最大的隐患。比如之前发生的The DAO事件,The DAO是由Slock.it发起的一个众筹项目,是运行在以太坊上的智能合约。但合约中存在的漏洞,让攻击者可以非法转移以太币。后来,虽然夺回以太币,但是以太坊却出现分叉,变成两条链。
简单说,通过发布包含恶意代码的“智能合约”,攻击者经过一系列操作后,可控制区块链网络中的所有节点,从而“为所欲为”。
从The DAO到BEC、SocialChain、Hexagon再到EOS漏洞,“智能合约”已经成为区块链安全的重灾区。
那么,何为智能合约?
百度百科介绍:智能合约是一种旨在以信息化方式传播、验证或执行合同的计算机协议。智能合约允许在没有第三方的情况下进行可信交易,这些交易可追踪且不可逆转。
智能合约概念于1994年由Nick Szabo首次提出。他是如此定义,“一个智能合约是一套以数字形式定义的承诺,包括合约参与方可以在上面执行这些承诺的协议。”
而360的相关研究专家则认为,“我们现在所说的区块链智能合约以以太坊为代表,其作者意识到,在区块链系统中,交易逻辑是可以和底层系统机制分离的。”
就是底层系统负责交易块的创建和验证,记账者的共识达成等基础功能,交易本身做什么事情可通过二次编程的方式去定义。
他设计了一种交易代码执行的虚拟环境EVM,使用者可以开发自定义的交易逻辑,发布到链上,当交易进行时,链上所有的节点都执行相同的代码,从而同步改变链上数据的状态。他为这种代码使用了“智能合约”这个名字。
从本质上讲,智能合约就是一段运行在区块链网络中的代码。在这个合约中,交易双方的权利和义务已经规定好,比如一个销售合约,卖家承诺发送货物,买家承诺支付合理的货款。
正如360安全团队表示,“只要是由人编写的程序,就一定会出现错误和缺陷。以太坊这种设计本身就违背了程序设计的一般规律,在智能合约出现漏洞的时候可能会造成无法弥补的损失。”
据了解,以太坊将智能合约设计成一旦部署就不能修改的模式。这种模式虽然是为了提高智能合约的可信性,但是却给了攻击者很大的机会。
如何应对智能合约漏洞?
无疑,在上线之前,需要对智能合约进行全面深入的代码安全审计,尽可能消除漏洞,降低安全风险。
360代码卫士团队安全专家给出6种常见的漏洞类型及可能造成的风险:
1. 整数溢出
智能合约中危险的数值操作
可能导致合约失效、无限发币等风险
2. 越权访问
智能合约中对访问控制处理不当
可能导致越权发币风险
3. 信息泄露
硬编码地址等
可能导致重要信息的泄露
4. 逻辑错误
代理转账函数缺失必要校验
可能导致基于重入漏洞的恶意转账等风险
5. 拒绝服务
循环语句、递归函数、外部合约调用等处理不当
可能导致无限循环、递归栈耗尽等拒绝服务风险
6. 函数误用
伪随机函数调用和接口函数实现问题
可能导致可预测随机数、接口函数返回异常等风险
最新资讯
热门视频
新品评测