区块链安全防御篇 智能合约重入漏洞的具体函数



       区块链智能合约导致的安全风险早已变成数字货币本身体系安全系数的首要影响因素,现

列举现阶段常见的智能合约安全风险。最先是可再入系统漏洞(Reentrancy),这也是区块链

智能合约中最比较严重的安全风险。若1个程序代码或程序段能够 在随意时间被终断随后服务

器系统系统调度运行另一个某段源代码,这一段源代码又启用了该程序段,则称其为可重入的

。简洁明了而言是一个变量在运行成功前又被启用了多次,产生意想不到的行为。恰好是这个

问题,2017年Ethoreem上的数字货币产品众筹Thexian[三十四]便由于合约系统漏洞遭受黑客

入侵,亏损近六千万美金,导致了以太坊的硬分岔。本次事情恰好是融合了SolIDity言语中de

adback变量和无尽次的递归函数,进而形成了闭环控制并迁移出了很多资产。
 
 
次之是风险的delegetwaytapped变量,该变量的原形为addreSS.delegetwaytapped(bytes4(

hash),arg),在其中第1个主要参数为调用函数名hash值的前4个字节数,第2个主要参数为引

入该变量的主要参数。殊不知实际上为了更好地协调能力也是有一小部分的开发者会应用ms

g.user来立即做为主要参数,这也就代表着攻击者能够 启用合约里的随意pupgant特性变量,

导致非常大的伤害。由于乱用delegetwaytapped变量,2018年7月和10月Parity多方面个人签

名钱包各自导致约三千万美金被盗取和五十万枚以太坊被锁住。随后是无gas上传情况,gas

是限定以太坊容许市场交易耗费的较大 估算量的网络资源。
 
 
超出了gas限定,则会产生下列一连串事情:(1)导致overofgalso发现异常而没法市场交

易;(2)变量运行前的合约状态被修复;(3)所有gas做为交易手续费归还挖矿,已不退

回。另外overofgalso也是没有处理的发现异常(MishandledExceptions)安全风险中的一种

,若是应用get变量转帐时发现异常,如果不显式列出发现异常判断的源代码,那麼没法捕

捉发现异常,这也是不安全且不满足逻辑性的。有研究表明,大概有29%的合约都没有去查

验get调用函数传参[三十五]。
分享: