Simple Science

Hochmoderne Wissenschaft einfach erklärt

# Computerwissenschaften# Software-Entwicklung

Bewertung von Sicherheits-Tools für Smart Contracts

Eine Studie zur Effektivität von SAST-Tools für Smart Contracts.

― 9 min Lesedauer


Bewertung vonBewertung vonSicherheitswerkzeugen fürSmart Contractsanalysieren.Identifizierung von SchwachstellenDie Wirksamkeit von SAST-Tools bei der
Inhaltsverzeichnis

Smart Contracts werden in der Blockchain-Welt immer beliebter. Sie ermöglichen es den Leuten, direkt miteinander Vereinbarungen zu treffen, ohne einen Vermittler zu brauchen. Aber je mehr sie genutzt werden, desto mehr Sicherheitsprobleme gibt es auch. Viele Smart Contracts wurden angegriffen, was zu erheblichen finanziellen Verlusten geführt hat. Um dabei zu helfen, haben Forscher Werkzeuge entwickelt, die Smart Contracts auf potenzielle Sicherheitslücken analysieren können. Diese Werkzeuge nennt man Static Application Security Testing (SAST) Tools.

Leider ist es schwer herauszufinden, welche Tools wirklich effektiv sind. Einige Studien versuchen, sie zu vergleichen, aber oft verwenden sie veraltete Listen von Schwachstellen, was ihre Ergebnisse unzuverlässig macht. In diesem Artikel präsentieren wir eine aktualisierte Reihe von Schwachstellenkategorien speziell für Smart Contracts. Wir zeigen, wie wir einen Benchmark erstellt haben, um acht SAST-Tools basierend auf unseren neuen Kategorien zu bewerten. Unsere Erkenntnisse zeigen, dass viele Tools Schwierigkeiten haben, Schwachstellen zu finden, wobei einige die Hälfte der Probleme übersehen.

Die Bedeutung der Sicherheit von Smart Contracts

Smart Contracts automatisieren Transaktionen und setzen Bedingungen durch, ohne dass eine zentrale Autorität nötig ist. Das bietet grosses Potenzial, wirft aber auch Fragen zur Sicherheit auf. Schwachstellen in Smart Contracts können zu erheblichen finanziellen Verlusten führen. Über das letzte Jahrzehnt sind zum Beispiel mehr als 4,75 Milliarden Dollar wegen Sicherheitslücken verloren gegangen.

Deshalb ist es wichtig, zuverlässige Methoden zu haben, um Schwachstellen in Smart Contracts zu überprüfen. Es gibt verschiedene Techniken, um diese Probleme zu finden, darunter sowohl SAST als auch Dynamic Application Security Testing (DAST). SAST-Tools analysieren den Code des Vertrags, ohne ihn auszuführen, während DAST-Tools den Vertrag in kontrollierten Umgebungen mit unterschiedlichen Eingaben nach der Bereitstellung ausführen. SAST ist wertvoll, weil es Probleme schon während des Codierungsprozesses identifizieren kann, was es für Entwickler unverzichtbar macht.

Herausforderungen beim Vergleich von SAST-Tools

Trotz der Wichtigkeit dieser Tools ist es nicht leicht, sie zu vergleichen. Verschiedene Studien haben versucht, diese Tools zu bewerten, aber oft bieten sie kein klares Bild über deren Leistung. Dafür gibt es mehrere Gründe:

  1. Veraltete Kategorien: Viele Studien verwenden veraltete Listen von Schwachstellen, die nicht die neuesten Entdeckungen abdecken.
  2. Inkonsistente Benchmarks: Die Tests, die zur Bewertung dieser Tools verwendet werden, sind oft nicht umfassend, was zu unterschiedlichen Schlussfolgerungen über die Effektivität führt.
  3. Begrenzte Metriken: Die meisten Studien konzentrieren sich nur auf einige Aspekte der Bewertung, wie Präzision oder Recall, ohne das grosse Ganze zu betrachten.

Unsere Studie zielt darauf ab, diese Probleme zu lösen, indem wir eine neue und aktualisierte Schwachstellenliste erstellen. Wir werden auch einen Benchmark entwickeln, der eine breite Palette von Schwachstellen abdeckt, um eine gründliche Bewertung der SAST-Tools zu ermöglichen.

Erstellung einer aktualisierten Schwachstellenliste

Um Schwachstellen in Smart Contracts besser zu verstehen, brauchen wir eine genaue und umfassende Liste. Bestehende Listen, wie die DASP Top 10 und die Smart Contract Weakness Classification (SWC), haben ihre Einschränkungen. Sie sind entweder veraltet oder zu breit gefasst und erfassen nicht die neuesten Schwachstellen, die Smart Contracts bedrohen.

Unser Ansatz umfasste folgende Schritte:

  1. Überprüfung bestehender Taxonomien: Wir haben bestehende Listen betrachtet und ihre Einschränkungen notiert. Veraltete Schwachstellen haben wir entfernt und die neuesten Erkenntnisse integriert.
  2. Schwachstellen nach Ursachen organisieren: Wir haben Schwachstellen basierend auf ihren Ursachen analysiert, um sicherzustellen, dass sie sinnvoll strukturiert sind.
  3. Unklarheiten klären: Viele frühere Kategorien überschneiden sich, was zu Verwirrung führt. Wir haben daran gearbeitet, unsere Kategorien klar und deutlich zu machen, um Überschneidungen zu vermeiden.
  4. Ausrichtung an realen Tools: Unsere neue Liste berücksichtigt die Fähigkeiten bestehender SAST-Tools, damit sie widerspiegelt, was die Tools realistisch erkennen können.

Unsere endgültige Liste umfasst 45 Schwachstellentypen, die für die Bewertung von Smart Contracts entscheidend sind. Diese aktualisierte Liste dient als Grundlage für den Benchmark, den wir entwickelt haben.

Erstellung eines umfassenden Benchmarks

Um die SAST-Tools gründlich zu bewerten, mussten wir einen umfassenden Benchmark erstellen. Dieser Benchmark umfasst eine Vielzahl von Smart Contracts, die jeweils bekannte Schwachstellen enthalten. Wir gingen dabei wie folgt vor:

  1. Sammeln von Smart Contracts: Wir haben Verträge aus verschiedenen Quellen gesammelt und darauf geachtet, dass sie Open Source und öffentlich verfügbar sind. Wir haben 19 Datensätze mit Solidity Smart Contracts identifiziert.
  2. Qualitätssicherung: Wir konzentrierten uns auf bekannte oder peer-reviewed Datensätze und stellten sicher, dass sie in der Forschungsgemeinschaft anerkannt sind.
  3. Kennzeichnung von Schwachstellen: Ein entscheidender Teil unseres Benchmarks ist die Kennzeichnung von Schwachstellen auf Funktionsebene, da dies eine präzise Analyse ermöglicht. Wir arbeiteten mit Sicherheitsexperten zusammen, um die Schwachstellen in den gesammelten Verträgen gründlich zu kennzeichnen.

Der endgültige Benchmark umfasst Tausende von einzigartigen Smart Contract-Dateien, die eine breite Palette von Schwachstellen abdecken. Dieses umfassende Datenset ist entscheidend für die genaue Bewertung der Effektivität der SAST-Tools.

Bewertung der SAST-Tools

Wir haben acht SAST-Tools zur Bewertung ausgewählt, basierend auf ihrer Relevanz und Effektivität bei der Identifizierung von Schwachstellen. Diese Tools variieren in ihren Ansätzen und Techniken, was uns ermöglicht, ihre unterschiedlichen Fähigkeiten zu analysieren. Unsere Bewertung konzentrierte sich auf vier Hauptbereiche:

  1. Abdeckungsanalyse: Wir haben untersucht, wie viele Arten von Schwachstellen jedes Tool erkennen konnte.
  2. Effektivitätsanalyse: Wir haben gemessen, wie gut jedes Tool bei der Identifizierung von Schwachstellen mit unserem Benchmark abgeschnitten hat.
  3. Konsistenzanalyse: Wir haben geprüft, ob die Tools konsistente Ergebnisse bei verschiedenen Arten von Schwachstellen lieferten.
  4. Effizienzanalyse: Wir haben bewertet, wie schnell jedes Tool die Smart Contracts in unserem Benchmark analysieren konnte.

Abdeckungsanalyse

Unsere Analyse hat gezeigt, dass die Fähigkeit jedes Tools, verschiedene Schwachstellentypen abzudecken, erheblich variierte. Einige Tools, wie das kommerzielle Tool, deckten fast alle Schwachstellen ab. Viele Open-Source-Tools hingegen zeigten eine begrenztere Abdeckung, was auf Verbesserungsmöglichkeiten hinweist.

Bemerkenswerterweise war ein Tool besonders effektiv bei der Identifizierung von Schwachstellen im Zusammenhang mit Reentrancy (ein häufiges Sicherheitsproblem, bei dem eine Funktion erneut aufgerufen werden kann, bevor ihre vorherige Ausführung abgeschlossen ist). Andere waren besser darin, Zugriffssteuerungsprobleme zu erkennen (bei denen unbefugte Benutzer auf Funktionen oder Daten zugreifen können).

Allerdings hatten viele Tools Schwierigkeiten mit bestimmten Kategorien, besonders bei arithmetischen Operationen und speicherbezogenen Schwachstellen. Diese Inkonsistenz ist eine wichtige Erkenntnis für Entwickler, da sie die Notwendigkeit für umfassendere Tools hervorhebt, die effektiv ein breiteres Spektrum an Schwachstellen abdecken können.

Effektivitätsanalyse

Die Effektivitätsanalyse zielte darauf ab, zu bestimmen, wie gut die ausgewählten Tools Schwachstellen in unserem Benchmark identifizieren konnten. Wir haben die Leistung anhand von Metriken wie Recall (wie viele tatsächliche Schwachstellen gefunden wurden) und Präzision (die Genauigkeit der Ergebnisse) bewertet.

Unsere Ergebnisse zeigten, dass einige Tools effektiver waren als andere. Das kommerzielle Tool hatte beispielsweise eine hohe Recall-Rate, was darauf hindeutet, dass es gut darin war, Schwachstellen zu finden. Viele Tools hatten jedoch hohe Raten von falsch positiven Ergebnissen, was bedeutet, dass sie viele Dinge als Schwachstellen markierten, die eigentlich keine Probleme waren.

Diese Diskrepanz weist auf ein grösseres Problem im Bereich der SAST-Tools hin: Während einige Schwachstellen identifizieren können, tun sie dies auf Kosten einer hohen Anzahl von Fehlalarmen. Entwickler, die diese Tools verwenden, müssen sich dieser Abwägung bewusst sein.

Konsistenzanalyse

Konsistenz zwischen verschiedenen Tools war ein weiterer entscheidender Bereich unserer Untersuchung. Wir haben analysiert, wie konsistent die Ergebnisse waren, wenn die gleichen Schwachstellen mit verschiedenen Tools getestet wurden.

Unsere Ergebnisse zeigten bemerkenswerte Inkonsistenzen in den Erkennungsfähigkeiten der Tools. Einige Tools waren besonders gut darin, Schwachstellen in der Zugriffssteuerung zu finden, während andere in der Erkennung nicht effektiv waren. Diese Variation zeigt, dass die Auswahl des Tools entscheidend ist, da die Verlass auf ein einzelnes Tool dazu führen kann, dass Schwachstellen übersehen werden.

Wir haben auch untersucht, ob die Kombination der Ergebnisse mehrerer Tools die Gesamterkennungsraten verbessern könnte. In einigen Fällen verbesserte das Zusammenführen der Ergebnisse den Recall der identifizierten Schwachstellen. Diese Methode führte jedoch auch zu einem Anstieg von falsch positiven Ergebnissen, was die Wichtigkeit unterstreicht, umfassende Erkennung mit Präzision in Einklang zu bringen.

Effizienzanalyse

Schliesslich haben wir die Effizienz jedes Tools betrachtet. Wir haben gemessen, wie lange jedes Tool brauchte, um die Smart Contracts zu analysieren. Die Ergebnisse zeigten erhebliche Unterschiede in der Analysezeit, wobei einige Tools ihre Bewertungen innerhalb von Sekunden abschlossen, während andere deutlich länger brauchten.

Das schnellste Tool konnte Verträge in weniger als 20 Sekunden analysieren, was sie besser geeignet für grossangelegte Analysen oder zeitkritische Anwendungen macht. Im Gegensatz dazu benötigten Tools, die auf komplexere Analysetechniken setzten, oft Stunden, um Ergebnisse zu liefern.

Diese Analyse hat praktische Auswirkungen für Entwickler. Sie müssen Tools wählen, die nicht nur Schwachstellen effektiv identifizieren, sondern auch effizient innerhalb ihres Workflows arbeiten.

Fazit

Unsere Bewertung von SAST-Tools offenbart wichtige Erkenntnisse über deren Effektivität bei der Identifizierung von Schwachstellen in Smart Contracts. Viele Tools haben Schwierigkeiten bei der Erkennung, insbesondere bei neuen und komplexen Schwachstellen. Die hohen Raten von falsch positiven Ergebnissen in vielen Tools komplizieren zudem deren Einsatz im Entwicklungsprozess.

Wir empfehlen Entwicklern, sorgfältig zu überlegen, welche Tools sie verwenden, da deren Effektivität stark variiert. Zudem gibt es einen klaren Bedarf an Tools, die sich parallel zur sich verändernden Landschaft von Smart Contracts und den damit verbundenen Schwachstellen weiterentwickeln.

Zukünftige Forschungen sollten sich darauf konzentrieren, die Leistung der Tools zu verbessern und die Erkennungsimplementierung zu optimieren, um die Genauigkeit zu erhöhen und die falsch positiven Ergebnisse zu reduzieren. Wir schlagen auch vor, hybride Analysetechniken zu erkunden, die eine bessere Abdeckung von Schwachstellen bieten könnten. Indem wir diese Herausforderungen angehen, kann die Sicherheit von Smart Contracts erheblich verbessert werden, was dazu beiträgt, das Blockchain-Ökosystem zu schützen, während es weiter wächst.

Originalquelle

Titel: Static Application Security Testing (SAST) Tools for Smart Contracts: How Far Are We?

Zusammenfassung: In recent years, the importance of smart contract security has been heightened by the increasing number of attacks against them. To address this issue, a multitude of static application security testing (SAST) tools have been proposed for detecting vulnerabilities in smart contracts. However, objectively comparing these tools to determine their effectiveness remains challenging. Existing studies often fall short due to the taxonomies and benchmarks only covering a coarse and potentially outdated set of vulnerability types, which leads to evaluations that are not entirely comprehensive and may display bias. In this paper, we fill this gap by proposing an up-to-date and fine-grained taxonomy that includes 45 unique vulnerability types for smart contracts. Taking it as a baseline, we develop an extensive benchmark that covers 40 distinct types and includes a diverse range of code characteristics, vulnerability patterns, and application scenarios. Based on them, we evaluated 8 SAST tools using this benchmark, which comprises 788 smart contract files and 10,394 vulnerabilities. Our results reveal that the existing SAST tools fail to detect around 50% of vulnerabilities in our benchmark and suffer from high false positives, with precision not surpassing 10%. We also discover that by combining the results of multiple tools, the false negative rate can be reduced effectively, at the expense of flagging 36.77 percentage points more functions. Nevertheless, many vulnerabilities, especially those beyond Access Control and Reentrancy vulnerabilities, remain undetected. We finally highlight the valuable insights from our study, hoping to provide guidance on tool development, enhancement, evaluation, and selection for developers, researchers, and practitioners.

Autoren: Kaixuan Li, Yue Xue, Sen Chen, Han Liu, Kairan Sun, Ming Hu, Haijun Wang, Yang Liu, Yixiang Chen

Letzte Aktualisierung: 2024-06-29 00:00:00

Sprache: English

Quell-URL: https://arxiv.org/abs/2404.18186

Quell-PDF: https://arxiv.org/pdf/2404.18186

Lizenz: https://creativecommons.org/licenses/by/4.0/

Änderungen: Diese Zusammenfassung wurde mit Unterstützung von AI erstellt und kann Ungenauigkeiten enthalten. Genaue Informationen entnehmen Sie bitte den hier verlinkten Originaldokumenten.

Vielen Dank an arxiv für die Nutzung seiner Open-Access-Interoperabilität.

Mehr von den Autoren

Ähnliche Artikel