Die Verbesserung der Sicherheit von Smart Contracts mit Sprachmodellen
Ein neuer Ansatz verbessert das Auditieren von Smart Contracts und die Erkennung von Schwachstellen.
― 7 min Lesedauer
Inhaltsverzeichnis
- Die Herausforderung von Smart Contract-Sicherheitslücken
- Die Rolle von Sprachmodellen
- Zwei-Phasen Feinabstimmungsansatz
- Erkennung von Sicherheitslücken
- Gründe für Sicherheitslücken
- Verbesserung des Denkens mit LLM-Agenten
- Die Rolle von Ranker und Critic
- Sammeln von hochwertigen Daten
- Bewertung der neuen Methode
- Anwendung der Mehrheitsentscheidung
- Einschränkungen und zukünftige Richtungen
- Fazit
- Originalquelle
- Referenz Links
Smart Contracts sind wie digitale Verträge, die auf Blockchains wie Ethereum laufen. Sie sind mega wichtig für viele Online-Services, besonders im Finanzbereich. Aber je mehr Leute Smart Contracts nutzen, desto höher ist das Risiko für Fehler und Angriffe. Hacker finden oft Möglichkeiten, diese Fehler auszunutzen, was zu erheblichen finanziellen Verlusten führt. Zum Beispiel wurden durch Sicherheitslücken in diesen Verträgen Millionen Dollar verloren.
Es ist wichtig, diese Sicherheitslücken zu verstehen, um Smart Contracts sicherer zu machen. Forscher suchen nach neuen Methoden, um diese Schwächen zu erkennen. Ein vielversprechender Ansatz ist die Nutzung von grossen Sprachmodellen (LLMs), die kraftvolle Werkzeuge sind, um Code zu analysieren und zu verstehen. Auch wenn diese Modelle Potenzial haben, Fehler zu finden, kämpfen sie oft mit Genauigkeit und Zuverlässigkeit.
Dieser Artikel diskutiert eine neue Methode, um das Auditieren von Smart Contracts zu verbessern, indem traditionelle Feinabstimmungstechniken mit LLMs kombiniert werden. Ziel ist es, ein System zu schaffen, das nicht nur Schwächen erkennt, sondern auch erklärt, warum sie auftreten, sodass Entwickler sie einfacher beheben können.
Die Herausforderung von Smart Contract-Sicherheitslücken
Smart Contracts funktionieren auf Basis von Code, und wenn im Code Fehler sind, kann das zu ernsthaften Problemen führen. Diese Probleme können von logischen Fehlern herrühren, die mit gängigen Analysetools schwer zu identifizieren sind. Viele dieser Sicherheitslücken wurden ausgenutzt, was zu erheblichen finanziellen Verlusten für die Nutzer geführt hat.
Ein Bericht einer Plattform zur Verfolgung von Sicherheitslücken zeigt, dass Hacker Milliarden von kompromittierten Smart Contracts erbeutet haben. Dieser besorgniserregende Trend hat Forscher und Entwickler dazu veranlasst, effektive Lösungen zur Identifizierung und Behebung dieser Schwächen zu finden.
Traditionelle Methoden zur Findung von Schwachstellen basieren oft auf vordefinierten Regeln. Diese Regeln können schnell veraltet sein, da Hacker immer neue Wege finden, Schwächen in Smart Contracts auszunutzen. Der Bedarf an innovativen und anpassungsfähigen Lösungen ist klar.
Die Rolle von Sprachmodellen
Grosse Sprachmodelle stellen eine neue Grenze zur Erkennung von Schwächen in Smart Contracts dar. Diese Modelle nutzen riesige Datenmengen, um Muster und Beziehungen im Code zu lernen, was ihnen ermöglicht, Smart Contracts effektiver zu analysieren. Aber selbst die fortschrittlichsten Modelle, wie GPT-4, haben ihre Grenzen und erreichen nur etwa 30% Genauigkeit bei der Identifizierung von Schwächen und der Bereitstellung von Erklärungen.
Ein Grund für diese niedrige Leistung ist, dass diese Modelle nicht speziell auf Smart Contract-Code abgestimmt sind. Sie werden auf einer breiten Palette von Textdaten trainiert, aber dieses Training konzentriert sich nicht spezifisch auf die einzigartigen Merkmale von Programmiersprachen für Smart Contracts wie Solidity.
Um das zu lösen, haben Forscher begonnen, diese Modelle an die spezifischen Sicherheitslücken von Smart Contracts anzupassen. Durch die Feinabstimmung von Modellen auf Datensätzen, die reich an relevanten Beispielen sind, hoffen sie, deren Genauigkeit und Zuverlässigkeit zu verbessern.
Zwei-Phasen Feinabstimmungsansatz
Diese neue Methode verwendet einen Zwei-Phasen Feinabstimmungsansatz, um die Leistung von LLMs beim Auditieren von Smart Contracts zu verbessern. Die Methode besteht aus zwei Hauptkomponenten: Detector und Reasoner.
Erkennung von Sicherheitslücken
Das Detector-Modell ist dafür zuständig, ob ein Code-Stück anfällig ist. Es simuliert, wie ein menschlicher Hacker ein Stück Code bewerten würde, indem es Feinabstimmungstechniken anwendet, die für diese Aufgabe massgeschneidert sind. Durch das Lernen aus sowohl anfälligen als auch nicht-anfälligen Beispielen kann der Detector informierte Entscheidungen über die Sicherheit eines bestimmten Codeabschnitts treffen.
Gründe für Sicherheitslücken
Das Reasoner-Modell kommt ins Spiel, nachdem der Detector eine Schwäche identifiziert hat. Seine Aufgabe ist es, Erklärungen dafür zu liefern, warum der Code als anfällig angesehen wird. Es analysiert den Code genauer, um die spezifischen Probleme zu finden, die zu einer Ausnutzung führen könnten.
In diesem Zwei-Phasen-Setup kennzeichnet der Detector zuerst den Code, und dann erklärt der Reasoner die Gründe hinter dieser Kennzeichnung. Dieser Ansatz ermöglicht es jedem Modell, sich auf seine spezifische Aufgabe zu konzentrieren und könnte insgesamt zu einer besseren Leistung führen.
Verbesserung des Denkens mit LLM-Agenten
Obwohl der Zwei-Phasen-Ansatz effektiv ist, gibt es Herausforderungen, um die Genauigkeit der vom Reasoner generierten Erklärungen sicherzustellen. Um das zu verbessern, führt die Methode LLM-basierte Agenten namens Ranker und Critic ein.
Die Rolle von Ranker und Critic
Der Ranker-Agent bewertet die verschiedenen Gründe, die vom Reasoner bereitgestellt werden, und wählt den am besten passenden aus. Er verwendet eine Reihe von Kriterien, um die Erklärungen zu beurteilen und sicherzustellen, dass nur die relevantesten und genauesten ausgewählt werden.
Der Critic hingegen überprüft die Auswahl des Rankers. Er diskutiert die bereitgestellten Gründe und kann eine Neubewertung anfordern, wenn nötig. Dieser gemeinsame Prozess zwischen Ranker und Critic fügt eine weitere Ebene der Überprüfung zu den Erklärungen hinzu und verbessert die Qualität und Zuverlässigkeit der Ergebnisse.
Sammeln von hochwertigen Daten
Damit die Modelle effektiv sind, müssen sie auf hochwertigen Daten trainiert werden. Diese Daten umfassen Beispiele für sowohl anfälligen als auch nicht-anfälligen Code. Um diese Daten zu sammeln, haben Forscher auf seriöse Prüfberichte von Branchenexperten zurückgegriffen.
Diese Berichte enthalten reale Sicherheitslücken, die in Smart Contracts gefunden wurden. Oft fehlen jedoch Beispiele für nicht-anfälligen Code, die ebenfalls wichtig für das Training der Modelle sind. Um das zu überwinden, haben Forscher Methoden entwickelt, um negative Beispiele oder sichere Codebeispiele zu erstellen, um einen ausgewogenen Datensatz für das Training sicherzustellen.
Bewertung der neuen Methode
Sobald die Modelle trainiert wurden, bewerten Forscher ihre Leistung im Vergleich zu anderen bestehenden Modellen. Diese Bewertung betrachtet verschiedene Kennzahlen, wie Präzision, Rückruf und F1-Werte, um zu beurteilen, wie gut die Modelle bei der Erkennung von Sicherheitslücken und der Bereitstellung von Erklärungen abschneiden.
In Tests mit realen Sicherheitslücken in Smart Contracts hat die neue Methode signifikante Verbesserungen gegenüber traditionellen Modellen gezeigt. Die Ergebnisse zeigen, dass die Methode nicht nur effektiv bei der Erkennung von Sicherheitslücken ist, sondern auch hervorragend darin, die Gründe hinter ihren Entscheidungen zu erklären.
Anwendung der Mehrheitsentscheidung
Ein wichtiger Aspekt des Bewertungsprozesses ist die Verwendung der Mehrheitsentscheidung. Diese Technik aggregiert die Vorhersagen aus mehreren Eingaben, die während der Inferenzphase generiert wurden. Indem das häufigste Ergebnis aus mehreren Ausgaben genommen wird, kann das System die Genauigkeit und Stabilität seiner Vorhersagen erhöhen.
Letztendlich hat sich die Mehrheitsentscheidung als förderlich für die Gesamtleistung des Detectors erwiesen und verbessert Kennzahlen wie F1-Score und Genauigkeit, die entscheidend für die Bewertung der Zuverlässigkeit der Ergebnisse sind.
Einschränkungen und zukünftige Richtungen
Trotz der Verbesserungen, die diese neue Methode gezeigt hat, gibt es weiterhin Herausforderungen, die angegangen werden müssen. Die Leistung der Modelle kann je nach Qualität der Daten und den Techniken, die für die Feinabstimmung verwendet werden, variieren. Ausserdem führt das Einbeziehen zusätzlicher Kontexte, wie etwa Funktionsaufrufsbeziehungen, nicht immer zu einer Verbesserung und kann manchmal das Modell verwirren.
In Zukunft zielen die Forscher darauf ab, ihre Methoden weiter zu verfeinern und zu untersuchen, wie die Modelle robuster gemacht werden können. Zukünftige Arbeiten werden sich auch darauf konzentrieren, die Ausrichtung der Modelle an menschlichem Denken zu verbessern, sodass sie für Entwickler und Prüfer, die mit Smart Contracts arbeiten, intuitiver werden.
Fazit
Zusammenfassend lässt sich sagen, dass die Kombination von Feinabstimmungstechniken und LLM-basierten Agenten einen vielversprechenden Ansatz zur Verbesserung des Auditierens von Smart Contracts bietet. Durch die Entwicklung eines Systems, das effektiv Sicherheitslücken identifiziert und erklärt, können wir Entwicklern helfen, sicherere, geschützte Smart Contracts zu erstellen.
Diese Arbeit legt eine Grundlage für weitere Forschung im Bereich der Sicherheit von Smart Contracts. Indem wir die Stärken von Sprachmodellen nutzen und gleichzeitig ihre Schwächen angehen, können wir bedeutende Fortschritte beim Schutz digitaler Vermögenswerte und beim Erhalt des Vertrauens in Blockchain-Technologien erzielen.
Titel: Combining Fine-Tuning and LLM-based Agents for Intuitive Smart Contract Auditing with Justifications
Zusammenfassung: Smart contracts are decentralized applications built atop blockchains like Ethereum. Recent research has shown that large language models (LLMs) have potential in auditing smart contracts, but the state-of-the-art indicates that even GPT-4 can achieve only 30% precision (when both decision and justification are correct). This is likely because off-the-shelf LLMs were primarily pre-trained on a general text/code corpus and not fine-tuned on the specific domain of Solidity smart contract auditing. In this paper, we propose iAudit, a general framework that combines fine-tuning and LLM-based agents for intuitive smart contract auditing with justifications. Specifically, iAudit is inspired by the observation that expert human auditors first perceive what could be wrong and then perform a detailed analysis of the code to identify the cause. As such, iAudit employs a two-stage fine-tuning approach: it first tunes a Detector model to make decisions and then tunes a Reasoner model to generate causes of vulnerabilities. However, fine-tuning alone faces challenges in accurately identifying the optimal cause of a vulnerability. Therefore, we introduce two LLM-based agents, the Ranker and Critic, to iteratively select and debate the most suitable cause of vulnerability based on the output of the fine-tuned Reasoner model. To evaluate iAudit, we collected a balanced dataset with 1,734 positive and 1,810 negative samples to fine-tune iAudit. We then compared it with traditional fine-tuned models (CodeBERT, GraphCodeBERT, CodeT5, and UnixCoder) as well as prompt learning-based LLMs (GPT4, GPT-3.5, and CodeLlama-13b/34b). On a dataset of 263 real smart contract vulnerabilities, iAudit achieves an F1 score of 91.21% and an accuracy of 91.11%. The causes generated by iAudit achieved a consistency of about 38% compared to the ground truth causes.
Autoren: Wei Ma, Daoyuan Wu, Yuqiang Sun, Tianwen Wang, Shangqing Liu, Jian Zhang, Yue Xue, Yang Liu
Letzte Aktualisierung: 2024-08-17 00:00:00
Sprache: English
Quell-URL: https://arxiv.org/abs/2403.16073
Quell-PDF: https://arxiv.org/pdf/2403.16073
Lizenz: https://creativecommons.org/licenses/by-nc-sa/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.
Referenz Links
- https://pytorch.org/docs/stable/generated/torch.nn.CrossEntropyLoss.html
- https://cameronrwolfe.substack.com/p/understanding-and-using-supervised
- https://pub.towardsai.net/the-ever-evolving-pre-training-tasks-for-language-models-14dc5e27d523
- https://solodit.xyz/
- https://www.zdnet.com/article/meet-the-hackers-who-earn-millions-for-saving-the-web-how-bug-bounties-are-changing-cybersecurity/
- https://sites.google.com/view/iaudittool/home