以太坊安全性专用工具套件大合集

2021-02-24 17:27 jianzhan

两年前,在大家刚开始探讨区块链安全性的情况下,那时候大家手头上基本上沒有任何能够立即应用的专用工具。大家既沒有静态数据剖析专用工具和模糊不清检测专用工具,也沒有任何对于以太坊的逆向剖析专用工具,大家甚么都沒有。

因而,大家投入了很多的時间和活力并运用技术专业专业知识造就出了大家所必须的物品,并且大家还开展了无多次检测以健全大家的成效。今日,大家很开心能够和大伙儿共享这些专用工具,期待它们可以协助提高以太坊的安全性水平。

开发设计专用工具

以便搭建安全性的以太坊编码库,大家最先要熟习1些普遍的不正确实践活动,并防止再犯这些不正确。其次,大家还要对新加上的编码开展各种各样静态数据剖析,对新加上的作用开展模糊不清检测,并根据标记实行来认证最后商品的合理性及安全性性。

1. Not So Smart Contracts

这个名叫“NotSo Smart Contracts”的编码库中包括了许多普遍的以太坊智能化合约系统漏洞,在其中包括了真正的编码。查询这个编码库以后,你可能掌握并熟习1些有将会会出現的安全性难题。

这个编码库为每类型型的系统漏洞都出示了1个子文件目录开展储存,比如整形外溢、可重入性(注:可重入与递归定义类似)和 未维护的作用这些。每个子文件目录中都包括了有关的readme文档和真正情景下的合约系统漏洞样版,并且一些还出示了系统漏洞运用编码。

演试视頻:https://asciinema.org/a/6W3GSHeisBrohMRqrhbjqg08v

大家能够运用这些样版和检测测试用例来检测大家所开发设计的以太坊系统漏洞发掘专用工具,并评定专用工具的合理性。必须留意的是,大伙儿1定要在充足掌握系统漏洞细节以后再开展检测,不然将会会引发1些比较严重不良影响。

2. Slither

Slither包括了1整套对于Solidity(以太坊智能化合约脚本制作語言)的专用静态数据剖析专用工具,它能够用来检验可重用性、结构涵数和方式浏览等编号中的普遍不正确。Slither现阶段只出示给那些跟大家有协作的企业应用,但假如你感兴趣爱好的话,你还可以根据API来监视或浏览有关作用【传输门】。

演试视頻:https://asciinema.org/a/Guu4k6vxgF9C17z3rwhbECCK0

Slither的运作十分简易:

$ slither.py contract.sol

运作以后,Slither可能把全部找寻到的系统漏洞信息内容輸出给你。

3. Echidna

Echidna选用了下1代智能化模糊不清检测技术性来对EVM字节码开展检验。它出示了简易且遮盖率高(80%以上)的模块检测测试用例,你能够在进行了某项作用的开发设计以后,应用Echidna检测你的编码是不是存在安全性系统漏洞。

演试视頻:https://asciinema.org/a/zfeDxWagBIadulMU5mlqYdBGF

Echidna的应用也十分简易:

(1) 向你的编码中加上Echidna检测用劲(参照样例);

(2) 运作指令“./echidna-test contract.sol”;

(3) 查询輸出信息内容;

假如你还想开展更高級的安全性剖析(例如说抽象性情况机检测),Echidna一样能够保证。

4. Manticore

Manticore应用了标记实行来仿真模拟对于EVM字节码的繁杂的多合约和多种买卖进攻。当你的运用程序流程开发设计进行以后,你可使用Manticore来检验你程序流程中的风险情况,Manticore能够枚举类型出合约的实行情况,并认证重要作用的安全性性。

演试视頻:https://asciinema.org/a/MCIMEImS8wIeHHvWfxiNKMc67

假如你的合约不必须原始化主要参数,那你便可以应用指令行专用工具来查询智能化合约的全部实行相对路径了:

manticore contract.sol --contract ContractName --txaccount [attacker|owner]

Manticore还能够转化成1份包括了全部可抵达情况的目录,和开启这些相对路径的輸出主要参数。并且它还能够标识处安全性难题的种类,例如说整形外溢或未原始化运行内存这些。

你还能够应用Manticore API来查验更为高級的合约:

(1) 应用正确值原始化你的合约;

(2) 界定买卖信息内容来查询潜伏的情况;

(3) 查验輸出目录以获得情况信息内容

逆向剖析专用工具

智能化合约开发设计进行以后,或说你想剖析别的人的编码,你可使用逆向专用工具来完成。

1. EVM实际操作码数据信息库

当你在应用Remix调节器查验编码时,或对合约2进制编码开展逆向剖析时,你将会必须查询EVM命令的细节信息内容。这里出示了1份包括了详细EVM实际操作码的目录,和有关的完成细节。大家感觉这样能够帮大伙儿节约许多時间,感兴趣爱好的盆友能够点一下【这里】获得。

2. Ethersplay

Ethersplay是1款有着图型页面的EVM反选编专用工具,它能够开展方式修复、动态性自动跳转测算、源码配对和2进制编码较为这些。客户可使用Ethersplay来剖析和调节已编译程序合约或已布署在区块链中的合约。

Ethersplay的键入数据信息为EVM字节码(ASCII106进制编号或初始2进制文件格式),这里必须挑选相应的test.evm和test.bytecode检测测试用例。在Binary Ninja(Ethersplay软件)中开启test.evm文档以后,它会全自动对文档开展剖析,并鉴别编码中的涵数,随后转化成1份操纵步骤图。

3. IDA-EVM

IDA-EVM是1款对于IDA Pro的图型化EVM反选编专用工具,能够开展涵数修复、动态性自动跳转测算、编码签字和2进制编码比对这些。IDA-EVM容许大家在沒有源码的状况下对智能化合约开展逆向工程项目剖析。专用工具的应用也很简易,依照readme的安裝流程开展安裝,随后在IDA中开启1份.evm或.bytecode文档便可。

4. Rattle

Rattle是1款EVM静态数据剖析专用工具,它能够立即检索EVM字节码中的安全性系统漏洞。Rattle现阶段只出示给那些跟大家有协作的企业应用,但假如你感兴趣爱好的话,你还可以根据API来监视或浏览有关作用【传输门】。

演试视頻:https://asciinema.org/a/py5RpGwdLqOZtsfMt864xO4ZT

后话

大伙儿在应用过这些专用工具以后,能够到相应的编码库中递交难题或参加作用的升级。除此以外,大伙儿还可以去Empire Hacking Slack的#ethereum专区开展探讨。

* 参照来源于:trailofbits,FB网编Alpha_h4ck编译程序

天地数据信息已为多家公司出示区块链服务器租赁代管处理计划方案,为她们的区块链服务器适用!实际详询线上客服!