2

Do we have any standardized security scanning tool to go for security code review for solidity language? If not, what all opensource tools are there on which we can relay? Need response urgently.

  • Please note that running a linting tool is not a security review, because automated tools do not understand pitfalls in logic and purpose. I would suggest you edit this questions so that the title does not say a security review as it won't be one and you are just fooling yourself and your potential clients. – Mikko Ohtamaa Feb 7 '18 at 13:16
4

SmartCheck [1] is a static code analyzer developed by SmartDec Security Team. It runs analysis in Solidity source code and automatically checks smart contracts for security vulnerabilities and bad practices. The full list of them can be found in the SmartCheck Knowledge Base [2]. It is totally free and doesn’t need installation.

[1] https://tool.smartdec.net

[2] https://consensys.github.io/smart-contract-best-practices/security_tools/

1

Securify [1] is an automated formal verifier for Ethereum smart contracts. It can detect various security issues such as missing input validation, reentrancy, and others. You can directly ping the team for access to the latest version which features more security patterns (e.g., for detecting bugs like the parity multisig bug [2]).

[1]: Securify system: https://securify.ch

[2]: An In-Depth Look at the Parity Multisig Bug: http://hackingdistributed.com/2017/07/22/deep-dive-parity-bug/

  • I'm confused about this issue missing input validation, do you have any ideas? – Ender Apr 8 at 6:46
1

Copied from here https://consensys.github.io/smart-contract-best-practices/security_tools/

Static Analysis

  • Manticore - Dynamic binary analysis tool with EVM support
  • Mythril - Reversing and bug hunting framework for the Ethereum blockchain
  • Oyente - Analyze Ethereum code to find common vulnerabilities, based on this paper.
  • Solgraph - Generates a DOT graph that visualizes function control flow of a Solidity contract and highlights potential security vulnerabilities.
  • SmartCheck - Static analysis of Solidity source code for security vulnerabilities and best practices.
  • Securify - an automated formal verifier for Ethereum smart contracts.

Test Coverage

Linters

Linters improve code quality by enforcing rules for style and composition, making code easier to read and review.

  • Solcheck - A linter for Solidity code written in JS and heavily inspired by eslint.
  • Solint - Solidity linting that helps you enforce consistent conventions and avoid errors in your Solidity smart-contracts.
  • Solium - Yet another Solidity linting.
  • Solhint - A linter for Solidity that provides both Security and Style Guide validations.
0

I suppose there is not any standardized tool, however there is a pretty good static analysis tool to test contracts for having certain vulnerabilities. It is called Oyente and it is able to check 4 bugs in contracts:

  1. Reentrancy bugs (just like the one exploited in the DAO v1.0)
  2. Mishandled Exceptions (see KingOfTheEtherThrone)
  3. Transaction-Ordering Dependence
  4. Timestamp dependence

Github link; Oyente paper link

0

There is also a SonarQube static analyzer for Solidity.

SonarSolidity has rules that support Solidity’s best practices and track security vulnerabilities and code smell issues.

I have already analyzed some open source projects and very interesting issues were found.

So, I would like to invite anyone interested to take advantage of SonarSolidity’s value.

Feedback is very much appreciated.

Cheers.

0

The best option for devs is MythX smart contract security analysis service with support Truffle, Embark, Github, VS Code and many other environments. It was developed by the Mythril team. Try the MythX awesome list.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.