告警通知变得轻松便捷——微信告警接口指南
1081
2023-01-10
什么是智能合约?区块链智能合约漏洞又是怎么回事?
最近几天,区块链平台EOS智能合约漏洞事件再次把区块链安全推上了风口浪尖。攻击者可以通过发布包含恶意代码的“智能合约”,经过一系列的操作之后,控制区块链网络中的所有节点,从而为所欲为。从The DAO到BEC,SocialChain,Hexagon,到这几天的EOS漏洞,“智能合约”已经成为区块链安全的重灾区。那么什么是智能合约,智能合约的漏洞究竟给安全带来了什么样的新挑战,我们应该如何应对? 以下内容360代码卫士团队的安全专家将从这几个方面进行深入解读。
一、什么是智能合约?
二、智能合约漏洞,左右为难 !
智能合约本质是一段运行在区块链网络中的代码,它完成用户所赋予的业务逻辑。以以太坊体系的代币为例,其业务逻辑是代币发币和交易。以太坊在设计之初,将智能合约设计成了一旦部署就不能修改的模式。这种设计有可能是为了提高智能合约的可信性。 但是我们知道,只要是由人编写的程序,就一定会出现错误和缺陷。以太坊这种设计本身就违背了程序设计的一般规律,在智能合约出现漏洞的时候可能会造成无法弥补的损失。 我们可以看到,近期出现的以太坊体系智能合约的漏洞,造成了巨大的影响,有的代币也因此毁灭。
三、智能合约漏洞,如何应对?
在一些联盟链中,智能合约的设计是可以在部署之后更新的,当然这种更新需要一定的线下协商流程。要应对区块链智能合约的安全漏洞问题,未来需要普遍考虑设计相应的智能合约协商更新机制,降低漏洞修复的成本。
但现在,我们需要面对现实, 做出几乎唯一可行的、切实有效的努力 —— 在智能合约上线之前,对其进行全面深入的代码安全审计,尽可能的消除漏洞,降低安全风险 。
360代码卫士团队安全专家表示,当前区块链智能合约中可能出现的漏洞至少有20余种。以下列举一些常见的区块链智能合约的漏洞类型及其可能造成的风险,这些漏洞在智能合约上线之前,都应该进行详细的排查。
整数溢出
智能合约中危险的数值操作
可能导致合约失效、无限发币等风险
越权访问
智能合约中对访问控制处理不当
可能导致越权发币风险
信息泄露
硬编码地址等
可能导致重要信息的泄露
逻辑错误
代理转账函数缺失必要校验
可能导致基于重入漏洞的恶意转账等风险
拒绝服务
循环语句、递归函数、外部合约调用等处理不当
可能导致无限循环、递归栈耗尽等拒绝服务风险
函数误用
可能导致可预测随机数、接口函数返回异常等风险
发表评论
暂时没有评论,来抢沙发吧~