智能合约漏洞的天敌,以太坊上120万个dApp 都在用它做安全审
新技术往往也意味着新风险。
智能合约是运行在区块链上的程序,由于区块链不可篡改,智能合约也具有不可更改的特性——一旦部署上线就无法再进行修改。
也就是说,智能合约一旦出现漏洞,就可能会造成重大损失,有时候损失甚至多达数亿美元。2016年6月17日,区块链业界最大的众筹项目 The DAO 智能合约由于存在漏洞而遭到黑客攻击,造成了总价值超过 5000 万美元的损失。2017年7月和11月,以太坊多重签名钱包 Parity 的智能合约先后爆出两个重大漏洞,导致千万美元被盗、上亿美元被冻结。
TheDAO 事件由此可见,部署智能合约之前,必须要对其进行全面深入的代码安全审计,尽可能消除漏洞、降低风险。
为了最大程度地保障智能合约安全,对合约代码的审计成了一个不容小觑的专业领域。一般来说,智能合约审计有两种基本方法:手动和自动。
手动代码分析由一个经验丰富的开发者团队对合约代码进行审查,检查其编码、重入错误和安全等问题。而自动代码分析是用市场上的一些代码审计工具,快速发现漏洞,可以节约大量人力和时间。
目前,以太坊上已有超过 120 万个应用在使用一款免费的安全审查工具。该工具可以自动扫描查找智能合约代码中的常见漏洞,并对 dApp(去中心化应用)进行安全评级(如A级、B级、C级等)。
这款免费的工具由初创公司 Amberdata 与去年 10 月推出,每个人都可以无门槛了解以太坊上活跃的应用的安全状况。Amberdata 是用于监控、搜索和分析多个区块链的领先 SaaS 平台,对区块链的健康和智能程度进行分析,提供对区块链指标、搜索和区块链数据验证的实时监控和见解。
amberdataAmberdata 首席执行官 Shawn Douglass 强调,Amberdata 安全评级工具的愿景,是提供“更好的智能合约访问体验及提高智能合约的透明度。”
他还说道:“我们希望为以太坊社区提供的这些工具可以减轻社区成员对外部工具的依赖,让他们更快更安全地进行开发工作。”
那么 Amberdata 这款工具是如何运作的呢?其评级依据又是什么?
Amberdata 首席技术官 Joanes Espanol 指出,该工具可以自动扫描 13 种漏洞,检测到的漏洞越多,该 dApp 获得的等级评定就越低,等级从 A+ 到 F 不等。
Joanes 表示,常见严重等级较低的漏洞有“用户地址委托调用”(delegate call to a user-supplied address)和“外部合约消息调用”(message call to external contract)。前者通常被用于将智能合约代码分成多个子合约,可能被用于替换掉能改变原始应用行为的合约;后者不是一种会影响智能合约本身的漏洞,而是可能会调用其他有错误代码的合约,从而带来潜在风险。
因此,如果检测到某个智能合约有这两个漏洞,那么 Amberdata 这款审计工具就会发出“警告”。
而严重程度较高的两个漏洞分别是:整数溢出——在智能合约的操作中可能产生超出代码限制的值,从到出现不可预测的行为,甚至是导致资金损失;整数下溢——低于定义范围的值可能会导致错误输出。
根据 Amberdata 的评级系统,以太坊著名养成类游戏应用加密猫(CryptoKitties)由于没有以上四种漏洞中的任意一种,其安全等级被评为 A+。加密猫的软件工程师 Fabiano Soriani 称,原因是“我们尽可能多地进行了测试。”
加密猫他还表示,进行审计工作的人会为智能合约指出某些漏洞或者错误,这是非常好的补充资源。
由于智能合约本质上是一串代码,而由人编写出来的代码不可避免地存在某些错误和纰漏。如果跳过安全审计这一环节直接将其部署到以太坊或者其他公链上,可能会出现严重的损失和一系列问题。
正如 Amberdata 首席执行官 Shawn 所说,“区块链是下一个浪潮,是下一次革命,一次关于信任和去中心化的革命。”
所谓的智能合约其实并没有那么“智能”,安全审计道阻且长。Amberdata 的安全审计工具与千千万万个智能合约一起,踏上了这次“信任和去中心化的革命”之路。
Amberdata是新一代区块链资源管理器,并且用于监测、搜索、分析及保护公链和私链的高级数据分析平台。
如果您想了解更多Amberdata.io相关信息,
我们的网站:https://amberdata.io/
我们的官方推特账号Amberdataio
我们的官方微信公众号:Amberdata(amberdata_china)