Ich suche nach den preiswertesten Codeprüfern, um Schwachstellen in Solidity-Code zu finden. Ich bin auf Mythril[1] gestoßen, aber ich frage mich, welche anderen Produkte verwendet werden.
Hier sind einige Tools aus den Best Practices von ConsenSys , die alle Open Source sind:
Statische Analyse
- Manticore – Dynamisches Binäranalysetool mit EVM-Unterstützung
- Mythril – Reversing- und Bug-Hunting-Framework für die Ethereum-Blockchain
- Oyente – Analysieren Sie den Ethereum-Code, um häufige Schwachstellen zu finden, basierend auf diesem Artikel .
- Solgraph – Generiert ein DOT-Diagramm, das den Funktionssteuerungsfluss eines Solidity-Vertrags visualisiert und potenzielle Sicherheitslücken hervorhebt.
Testabdeckung
- solidity-coverage – Codeabdeckung für Solidity-Tests.
Linters
Linters verbessern die Codequalität, indem sie Regeln für Stil und Komposition durchsetzen, wodurch der Code leichter lesbar und überprüfbar wird.
- Solcheck - Ein Linter für Solidity-Code, der in JS geschrieben und stark von eslint inspiriert ist.
- Solint – Solidity Linting, das Ihnen hilft, konsistente Konventionen durchzusetzen und Fehler in Ihren Solidity Smart Contracts zu vermeiden.
- Solium - Noch ein Solidity-Flusen.
- Solhint – Ein Linter für Solidity, der sowohl Sicherheits- als auch Styleguide-Validierungen bereitstellt.
Probieren Sie SmartCheck aus . Es ist der statische Codeanalysator. Es überprüft den in Solidity geschriebenen Smart-Contract-Code auf Sicherheitslücken und schlechte Praktiken. SmartCheck kann kostenlos verwendet werden, es ist keine Installation erforderlich. Wir verwenden es in unserer Arbeit.
Es gibt ein Tool zur formalen Verifizierung namens Securify , das von der ETH Zürich entwickelt wurde. Es sucht nach häufigen Sicherheitslücken.
Derzeit erfordert dies die Erlaubnis, Ihren Code weiterzuverteilen.
Werfen Sie einen Blick auf dieses Github-Projekt für Solidity Smart Contracts https://github.com/raineorshine/solgraph . Es generiert ein DOT-Diagramm, das den Funktionssteuerungsfluss eines Solidity-Vertrags visualisiert und potenzielle Sicherheitslücken hervorhebt.
Es gibt auch einen SonarQube -Community-Analyzer für Solidity.
SonarSolidity verfügt über Regeln, die die Best Practices von Solidity unterstützen und Sicherheitslücken und Codegeruchsprobleme verfolgen.
Ich habe bereits einige Open-Source-Projekte analysiert und sehr interessante Probleme gefunden.
Daher möchte ich alle Interessierten einladen, den Wert von SonarSolidity zu nutzen.
Feedback wird sehr geschätzt.
Prost.
Schauen Sie sich Quantstamp an . Request Network verwendet sie bereits.
Mithril ist bei weitem das beste verfügbare Tool, erfordert jedoch etwas Eingewöhnung.
Tolle Einführung und Übersicht:
#HITB2018AMS D1T2 - Smashing Ethereum Smart Contracts for Fun and ACTUAL Profit - Bernhard Mueller
schw.