Sicherheitsanalysetool für Ethereum Smart Contracts

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.

[1] https://github.com/b-mueller/mythril

Wir haben die folgenden Tools überprüft und verglichen: Manticore, Mythril, Oyente, Slither, SmartCheck, Solhint, Solium, SonarSolidity. Sie ersetzen in keiner Weise menschliche Auditoren, aber sie können dabei helfen. Die Bewertungen sind unter blog.coinfabrik.com/smart-contract-auditing-human-vs-machine und blog.coinfabrik.com/auditing-solidity-code-with-slither verfügbar

Antworten (7)

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

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.

Wahrscheinlich ist es gut zu wissen, dass Sie dazu dem Unternehmen die Erlaubnis erteilen müssen, Ihren Code weiterzuverteilen.
@MikeShultz Entschuldigung, das war nicht der Fall, als ich die Frage beantwortete. Ich habe die Antwort bearbeitet!

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.

Haben Sie das für ein Produktionsprojekt verwendet?

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.

Aprilscherz ist nicht vor 2019 Kumpel

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

https://www.youtube.com/watch?v=iqf6epACgds