Chiral Analysis of Smart Contracts: Detecting Vulnerabilities from Relational Inconsistencies Across Business Paths
Dieses Paper führt die „chirale Analyse“ ein, ein relationales statisches Analysemodell, das im ChiralDetector-Tool implementiert ist und Schwachstellen in Smart Contracts durch das Identifizieren von Inkonsistenzen zwischen semantisch gepaarten Geschäftspfaden aufdeckt, wodurch effektiv komplexe Logikfehler gefunden werden, die herkömmliche Single-Function-Analysatoren übersehen.
Originalarbeit lizenziert unter CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Dies ist eine KI-generierte Erklärung des untenstehenden Papers. Sie wurde nicht von den Autoren verfasst oder gebilligt. Für technische Genauigkeit konsultieren Sie das Originalpaper. Vollständigen Haftungsausschluss lesen
Das Dilemma des Detektivs: Wenn Code durch Auslassung lügt
Stellen Sie sich vor, Sie sind ein Detektiv, der versucht, ein Rätsel in einer geschäftigen Stadt zu lösen. Normalerweise suchen Sie nach der „rauchenden Pistole“: einem zerbrochenen Fenster, einem schlammigen Fußabdruck oder einer verdächtigen Notiz. In der Welt des Computercodes, insbesondere bei den „Smart Contracts“, die auf Blockchains laufen, fungieren traditionelle Sicherheitstools wie dieser Detektiv. Sie scannen den Code Zeile für Zeile und suchen nach offensichtlichen Fehlern wie einem fehlenden Schloss an einer Tür oder einem Rechenfehler in einer Kalkulation. Diese Tools sind großartig darin, „lokale“ Bugs zu finden – jene Art von Fehlern, die in einem einzelnen Raum auftreten.
Aber was ist, wenn das Verbrechen gar nicht im Raum stattfindet? Was ist, wenn das Rätsel darin besteht, dass die Vordertür zwar abgeschlossen ist, die Hintertür aber weit offen steht, obwohl beide Türen eigentlich Teil desselben Sicherheitssystems sein sollten? In der Informatik wird dies als „relationales“ Problem bezeichnet. Es geht nicht um ein einzelnes kaputtes Teil, sondern darum, dass zwei Teile, die zusammengehören sollten, nicht zueinander passen. Dieses Paper untersucht einen neuen Weg, um diese hinterhältigen Bugs zu entlarven, indem es Paare von Codepfaden vergleicht und sie wie Spiegelbilder behandelt, die dieselbe Wahrheit widerspiegeln müssen. Wenn ein Pfad „Stopp“ sagt und der andere „Geh weiter“, ist das System fehlerhaft, selbst wenn sowohl „Stopp“ als auch „Geh weiter“ für sich genommen völlig korrekt aussehen.
Das Paper: Chirale Analyse und der Spiegeltest
Dieses Paper stellt eine clevere neue Methode namens Chiral Analysis vor. Das Wort „chiral“ stammt aus der Chemie und beschreibt Objekte, die Spiegelbilder voneinander sind, aber nicht perfekt übereinandergestapelt werden können (wie Ihre linke und rechte Hand). In der Welt der Smart Contracts schlagen die Autoren vor, dass viele Geschäftsabläufe in Paaren vorkommen: ein „einzelner“ Trade und ein „Batch“-Trade, ein „Kauf“ und ein „Verkauf“ oder eine „Vorschau“ eines Preises und die „Ausführung“ dieses Preises. Diese Paare sind die chiralen Zwillinge des Codes.
Die Kernidee ist einfach, aber kraftvoll: Behandeln Sie diese Paare so, als würden sie gegenseitig ihre Hausaufgaben kontrollieren. Wenn ein Nutzer einen Artikel kauft, sollte der Code eine Gebühr berechen. Wenn derselbe Nutzer den Artikel später verkauft, sollte der Code das Geld so handhaben, dass es im Einklang mit dem ursprünglichen Kauf steht. Wenn der „Kauf“-Pfad eine Gebühr in Dollar berechnet, der „Verkauf“-Pfad aber versehentlich in einer anderen Währung erstattet, oder wenn die „Batch“-Version das Geld vergisst zurückzuerstatten, das die „Einzel“-Version zurückzahlt, liegt ein Bug vor. Das Paper argumentiert, dass diese Bugs für Standard-Scanner unsichtbar sind, da jede einzelne Zeile Code korrekt aussieht. Der Fehler wird erst sichtbar, wenn man die beiden Pfade gegen das Licht hält und sieht, dass sie nicht übereinstimmen.
Um diese unsichtbaren Fehler zu finden, haben die Autoren ein Prototyp-Tool namens ChiralDetector entwickelt. Stellen Sie sich dieses Tool wie einen hochintelligenten Praktikanten mit einer sehr spezifischen Stellenbeschreibung vor. Zuerst liest es den gesamten Codebestand und kartografiert jeden möglichen „Geschäftspfad“ (ähnlich wie man jeden Weg nachzeichnet, den ein Kunde durch ein Geschäft nehmen kann). Dann nutzt es einen „statischen Ranker“ – einen Satz einfacher Regeln –, um zu erraten, welche Pfade chirale Zwillinge sein könnten. Zum Beispiel sucht es nach einer Funktion namens buy und einer anderen namens sell, die dasselbe Bankkonto berühren.
Sobald es eine Liste potenzieller Zwillinge hat, ruft es den „Heavy Hitter“ hinzu: ein Large Language Model (LLM), eine Art KI, die menschliche Sprache und Code versteht. Die KI sucht nicht nur nach Fehlern; sie agiert wie ein Logiker. Sie fragt: „Wenn diese beiden Pfade Spiegelbilder sein sollen, welchen Regeln müssen sie folgen?“ Sie prüft sieben spezifische Dimensionen:
- Guards (Schutzmechanismen): Haben beide Pfade dieselben Passwörter oder Berechtigungen geprüft?
- Actors (Akteure): Haben in beiden Fällen dieselben Personen bezahlt und Geld erhalten?
- State (Zustand): Haben beide Pfade die Datenbank auf die gleiche Weise aktualisiert?
- Value (Wert): Haben sie Gebühren und Rückerstattungen konsistent gehandhabt?
- Order (Reihenfolge): Haben sie Dinge in der gleichen Sequenz ausgeführt?
- Failure (Fehlerschlagen): Wenn etwas schiefgeht, stürzen beide Pfade auf die gleiche Weise ab oder erholen sie sich gleich?
- External (Extern): Haben sie dieselben externen Quellen vertraut?
Wenn die KI eine Diskrepanz findet, schreit sie nicht sofort „Bug!“. Stattdessen übergibt sie den Fund an einen „strengen Validator“. Dieser Validator ist wie ein skeptischer Redakteur, der versucht, der KI zu widersprechen. Er fragt: „Ist das wirklich ein Bug oder nur eine Designentscheidung?“ Schließlich gruppiert das Tool ähnliche Funde zusammen, damit es anstatt 100 winziger Fehler die eine große Ursache meldet.
Die Ergebnisse: Die verborgenen Glitches finden
Die Autoren testeten dieses System an einem realen Projekt namens Phi Protocol. Die Ergebnisse deuten darauf hin, dass dieser Ansatz funktioniert, auch wenn er noch ein Arbeitsprozess ist.
So lief ihr Experiment ab:
- Das Tool begann mit der Untersuchung von 3.217 Paaren von Codepfaden.
- Nach dem Filtern der Pfade, die offensichtlich nicht verwandt waren, behielt es 1.643 Paare für eine tiefergehende Untersuchung.
- Der KI-Detektor fand 201 potenzielle Probleme (eine Mischung aus „verdächtigen“ und „bestätigten“ Kandidaten).
- Nach der Gruppierung ähnlicher Berichte und dem Entfernen von Duplikaten schrumpfte dies auf 101 Gruppen.
- Ein strenger Validator reduzierte dies weiter auf 44 bestätigte positive Ergebnisse.
- Nachdem ein menschlicher Experte die Ursachen überprüft hatte, identifizierte das Team schließlich 13 einzigartige, effektive Probleme.
Diese 13 Probleme waren genau die Art von Fehlern, die Standard-Tools übersahen. Zum Beispiel:
- Die „Beweis“-Verwechslung: Ein System erlaubte es, einen Eigentumsnachweis für einen anderen Artikel wiederzuverwenden, weil die „Kauf“- und „Claim“-Pfade den Nachweis nicht korrekt an den spezifischen Artikel banden.
- Die Gebühren-Verwirrung: Ein Teil des Systems berechnete Gebühren in „Basispunkten“ (einer prozentualen Einheit), während ein anderer Teil dieselbe Zahl als „Wei“ (eine winzige Währungseinheit) behandelte, was zu massiven finanziellen Fehlern führte.
- Die Rückerstattungs-Falle: Wenn ein Nutzer zu viel bezahlte, erstattete der „Einzel“-Trade das Geld an den Nutzer zurück, aber der „Batch“-Trade schickte die Rückerstattung versehentlich an einen zwischengeschalteten Vertrag, wodurch der Nutzer leer ausging.
Die Autoren deuten darauf an, dass diese Methode besonders gut darin ist, „Business Logic“-Bugs zu finden – Fehler in der Art und Weise, wie das System über Geld und Regeln denkt – anstatt einfache Tippfehler. Sie merken an, dass der Prozess nicht perfekt ist; er erzeugte viel „Rauschen“ (Fehlalarme), das bereinigt werden musste, und er hängt davon ab, dass die KI intelligent genug ist, die Beziehung zu erkennen. Die Tatsache jedoch, dass er 13 distinkte, hochwirksame Probleme fand, die andere Tools übersahen, legt nahe, dass die Betrachtung von Code durch die Linse „chiraler Paare“ ein vielversprechender neuer Weg ist.
Das Paper kommt zu dem Schluss, dass dies zwar kein Zauberstab ist, der jedes Sicherheitsproblem löst, aber es bietet einen strukturierten Weg, um die Bugs zu finden, die sich in den Zwischenräumen zwischen den Codezeilen verstecken. Indem wir Codepfade als Spiegelbilder behandeln, können wir endlich die Risse sehen, die entstehen, wenn das Spiegelbild nicht mit dem Objekt übereinstimmt.
Ertrinken Sie in Arbeiten in Ihrem Fachgebiet?
Erhalten Sie tägliche Digests der neuesten Arbeiten passend zu Ihren Forschungsbegriffen — mit technischen Zusammenfassungen, in Ihrer Sprache.