Kurz erklärt: Slither ist ein quelloffenes Framework zur statischen Analyse von in Solidity geschriebenen Smart Contracts. Es wurde von der Sicherheitsfirma Trail of Bits entwickelt und deckt Schwachstellen, unsichere Muster und Optimierungspotenziale ohne Ausführung des Codes auf.
Herkunft und Einordnung
Slither wurde von Trail of Bits entwickelt und um 2018/2019 als Open-Source-Werkzeug veröffentlicht. Es ist in der Programmiersprache Python geschrieben und richtet sich an Entwickler und Auditoren von Ethereum-kompatiblen Smart Contracts.
Als statisches Analysewerkzeug untersucht Slither den Quellcode, ohne ihn tatsächlich auszuführen. Dadurch lassen sich viele Contracts in kurzer Zeit prüfen, was Slither zu einem häufig genutzten Bestandteil von Entwicklungs- und Prüfprozessen macht.
Funktionsweise
Slither übersetzt den Solidity-Code in eine eigene Zwischenrepräsentation namens SlithIR und wendet darauf verschiedene Analysepässe an. Zu den Fähigkeiten gehören:
- eine Sammlung eingebauter Detektoren für bekannte Schwachstellenmuster, etwa Reentrancy oder unsichere Zufallszahlen;
- Ausgabe von Informationen zur Vertragsstruktur, zu Vererbung und Funktionsaufrufen;
- eine Programmierschnittstelle (API), mit der eigene Analysen und Skripte erstellt werden können;
- Integration in Entwicklungsumgebungen und Continuous-Integration-Prozesse.
Verbindungen und Ökosystem
Slither ist Teil einer Reihe von Sicherheitswerkzeugen von Trail of Bits, zu der auch der Fuzzer Echidna und das Analysewerkzeug Medusa gehören. In Prüfprozessen wird es oft gemeinsam mit dynamischen Verfahren wie Fuzzing und symbolischer Ausführung durch Mythril eingesetzt.
Auf Wettbewerbs- und Bug-Bounty-Plattformen wie Code4rena und Immunefi nutzen Prüfer Slither häufig als ersten Schritt, um offensichtliche Probleme zu identifizieren, bevor eine tiefere manuelle Analyse erfolgt.
Häufige Fragen
Wofür wird Slither eingesetzt?
Slither analysiert Solidity-Smart-Contracts statisch und meldet potenzielle Schwachstellen, unsichere Muster und Optimierungsmöglichkeiten. Es dient Entwicklern und Auditoren als schneller erster Prüfschritt.
Wer hat Slither entwickelt?
Slither wurde von der Sicherheitsfirma Trail of Bits entwickelt und als quelloffenes Werkzeug veröffentlicht. Es ist in Python geschrieben.
Führt Slither den Vertrag aus?
Nein. Slither ist ein statisches Analysewerkzeug und untersucht den Quellcode, ohne ihn auszuführen. Dynamische Verfahren wie Fuzzing oder symbolische Ausführung ergänzen es.
Kann Slither eigene Prüfungen umsetzen?
Ja. Slither stellt eine Python-API und eine Zwischenrepräsentation (SlithIR) bereit, mit denen sich eigene Detektoren und Analyse-Skripte schreiben lassen.
Ersetzt Slither ein manuelles Audit?
Nein. Slither findet vor allem bekannte, musterbasierte Probleme. Komplexe logische Fehler erfordern weiterhin manuelles Review und ergänzende Werkzeuge.
Zusammenfassung
Slither ist ein von Trail of Bits entwickeltes, quelloffenes Framework zur statischen Analyse von Solidity-Smart-Contracts. Es erkennt musterbasierte Schwachstellen ohne Ausführung des Codes und wird häufig als schneller erster Prüfschritt in Audits und Bug-Bounty-Programmen eingesetzt.
Weiterführende Quellen
- Slither auf GitHub (Trail of Bits): github.com