Major Smart Contract Security Analysis Tools

Smart Contract Security Analysis Tools

Oyente

Oyente1是第一个也是最流行的基于Ethereum社区进行的研究的安全分析工具。它是由Luu等人开发的,是在主要安全会议Ethereum Devcon上展示的少数工具之一。Oyente利用符号执行来发现潜在的安全漏洞,包括transaction-ordering 依赖性、timestamp 依赖性、 mishandled exceptions 和reentrancy。该工具可以分析Solidity和智能合约的bytecode。在其早期阶段,它只能通过命令行界面使用,后来,他们开发了一个基于web的界面,看起来对用户更友好。值得一提的是,它是描述其消除假阳性的验证方法的唯一工具。
Oyente是一个符号执行工具,它直接与Ethereum虚拟机(EVM)字节码一起工作,而不访问高级表示(如Solidity, Serpent)。这种机制非常关键,因为Ethereum区块链只存储合约的EVM字节码,而不存储它们的源代码。

Security

Security是一个基于web的安全分析工具,根据他们的网站,他们声称它是第一个提供自动化(使每个人都能够验证智能合约)、保证(用于发现特定漏洞)和可扩展性(用于捕获任何新发现的漏洞)的安全分析工具。Security使用形式验证,但也依赖于静态分析检查。它处于beta版,它涉及的安全问题包括:transaction reordering、递归调用、不安全编码模式、 unexpected ether flows和 use of untrusted input。但是,递归调用、unexpected ether flows和不安全编码模式检查暂时被锁定(需要完全访问)。Security除了分析bytecodeSolidity外,还可以通过合约地址分析智能合约。

Remix

Remix是一个基于web的IDE,它允许编写可靠的智能合约、部署和运行它们。集成了调试器和测试环境(测试区块链网络)。此外,它作为一个安全工具,通过分析Solidity的代码,以减少编码错误和识别潜在的漏洞编码模式。它识别的一些漏洞包括: tx.origin usage、timestamp dependence、blockhash usage、 gas costly patterns、check effects (reentrancy)Remix安全分析依赖于形式验证(演绎程序验证、定理验证)。

SmartCheck

SmartCheck也是一个基于web安全代码分析工具,由SmartDec团队提供。SmartDec是一家专注于安全审计、分析工具和web开发的公司。最近(2017年11月),他们发布了安全工具SmartCheck的测试版。它会自动检查漏洞和错误的编码实践。此外,它还强调了漏洞(例如代码行),给出了漏洞的解释,以及避免特定安全问题的可能解决方案。他们的分析只针对Solidity代码运行,并没有说明他们使用哪种特定的方法来识别漏洞(例如符号执行、形式验证等)。发现的每个漏洞都与其严重性级别相关。他们发现的一些严重漏洞有:DoS by external contract、gas costly patterns、locked money、 reentrancy、timestamp dependency、 tx.origin usage、 and unchecked external call。此外,SmartCheck识别了许多严重程度较低的其他漏洞(警告),比如编译器版本不固定、违反样式指南和冗余函数


  1. Luu, L., Chu, D.-H., Olickel, H., Saxena, P., & Hobor, A. 2016. Making smart
    contracts smarter. In Proceedings of the 2016 ACM SIGSAC Conference on
    Computer and Communications Security, 254–269. ACM. Paper ↩︎

猜你喜欢

转载自blog.csdn.net/weixin_43405220/article/details/100134567