Weiter zum Hauptinhalt

Smart-Contract-Sicherheitscheckliste

smart contracts
security
solidity
Fortgeschritten
Trailofbits
7. September 2020
3 Minuten Lesedauer

Smart-Contract-Entwicklungscheckliste

Nachfolgend finden Sie einen allgemeinen Prozess, dessen Befolgung wir beim Schreiben Ihrer Smart Contracts empfehlen.

Auf bekannte Sicherheitsprobleme prüfen:

  • Überprüfen Sie Ihre Verträge mit Slither (opens in a new tab). Es verfügt über mehr als 40 integrierte Detektoren für häufige Schwachstellen. Führen Sie es bei jedem Check-in mit neuem Code aus und stellen Sie sicher, dass Sie einen fehlerfreien Bericht erhalten (oder verwenden Sie den Triage-Modus, um bestimmte Probleme auszublenden).
  • Überprüfen Sie Ihre Verträge mit Crytic (opens in a new tab). Es prüft auf 50 Probleme, die von Slither nicht geprüft werden. Crytic kann Ihrem Team auch dabei helfen, den Überblick zu behalten, indem es Sicherheitsprobleme in Pull-Requests auf GitHub leicht aufdeckt.

Berücksichtigen Sie die besonderen Merkmale Ihres Vertrags:

Überprüfen Sie die kritischen Sicherheitsmerkmale Ihres Codes visuell:

Dokumentieren Sie kritische Sicherheitseigenschaften und verwenden Sie automatisierte Testgeneratoren, um sie zu bewerten:

  • Lernen Sie, wie Sie Sicherheitseigenschaften für Ihren Code dokumentieren. Anfangs ist es schwierig, aber es ist die wichtigste Tätigkeit, um ein gutes Ergebnis zu erzielen. Es ist auch eine Voraussetzung für die Anwendung der fortgeschrittenen Techniken in diesem Tutorial.
  • Definieren Sie Sicherheitseigenschaften in Solidity, zur Verwendung mit Echidna (opens in a new tab) und Manticore (opens in a new tab). Konzentrieren Sie sich auf Ihre Statusmaschine, Zugriffskontrollen, arithmetische Operationen, externe Interaktionen und die Einhaltung von Standards.
  • Definieren Sie Sicherheitseigenschaften mit der Python-API von Slither. Konzentrieren Sie sich auf Vererbung, Variablenabhängigkeiten, Zugriffskontrollen und andere strukturelle Probleme.
  • Führen Sie Ihre Eigenschaftstests bei jedem Commit mit Crytic (opens in a new tab) aus. Crytic kann Tests von Sicherheitseigenschaften verarbeiten und auswerten, sodass jeder in Ihrem Team auf GitHub leicht sehen kann, dass sie erfolgreich sind. Fehlgeschlagene Tests können Commits blockieren.

Achten Sie schließlich auf Probleme, die automatisierte Werkzeuge nicht leicht finden können:

  • Mangelnde Privatsphäre: Alle anderen können Ihre Transaktionen sehen, während sie sich im Pool in der Warteschlange befinden.
  • Front-Running von Transaktionen
  • Kryptografische Operationen
  • Riskante Interaktionen mit externen DeFi-Komponenten

Bitten Sie um Hilfe

Die Ethereum-Sprechstunden (opens in a new tab) finden jeden Dienstagnachmittag statt. Diese einstündigen Einzelsitzungen sind eine Gelegenheit, uns alle Ihre Fragen zur Sicherheit zu stellen, Probleme bei der Verwendung unserer Werkzeuge zu beheben und Feedback von Experten zu Ihrem aktuellen Ansatz zu erhalten. Wir helfen Ihnen, diesen Leitfaden durchzuarbeiten.

Treten Sie unserem Slack bei: Empire Hacking (opens in a new tab). Wir sind immer in den Kanälen #crytic und #ethereum erreichbar, wenn Sie Fragen haben.

Seite zuletzt aktualisiert: 7. Februar 2025

War dieses Tutorial hilfreich?