Smart Contract Security: Ein agiler SDLC-Ansatz PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Smart Contract Security: Ein agiler SDLC-Ansatz 

Lesezeit: 10 Minuten

Blockchain wird als dezentrales und manipulationssicheres Ledger bezeichnet. Aber dieses manipulationssichere Hauptbuch ist anfällig für Hacks und Exploits. Die Dezentralisierung, die einer der stärksten Vorteile von Blockchain ist, ist einer der Nachteile. 

Nun, das ist in Ordnung, aber was ist mit SDLC? 

Der Software-Lebenszyklus-Ansatz, den wir gleich diskutieren werden, basiert auf der Einteilung von Sicherheitslücken in Smart Contracts in mehrere Phasen. 

Im ersten Abschnitt haben wir die Sicherheitsprobleme in den Smart Contracts dargelegt. Und im nächsten Abschnitt diskutieren wir seine Lösungen, die in vier Phasen unterteilt sind; Sicherheitsdesign, Sicherheitsimplementierung, Testen vor der Bereitstellung und zuletzt Überwachung und Analyse. 

ANALYSE VON SICHERHEITSFRAGEN IN SMART CONTRACTS 

Smart Contracts sind anfällig für verschiedene Hacks und Exploits. Diese Verträge, die gleichbedeutend mit realen rechtlichen Vereinbarungen sind, laufen unabhängig auf der Grundlage der Bedingungen der nativen Blockchains. 

Aber haben Sie gedacht, dass selbst diese nativen Blockchains auch für potenzielle Sicherheitsbedrohungen in Smart Contracts verantwortlich sein können? Im Folgenden stellen wir einige der Merkmale von Blockchains vor:

Dezentralisierung: Es wird als einer der Vorteile von Blockchain-basierten Protokollen angesehen. Aber die Angreifer haben einen Weg gefunden, diese positive Eigenschaft in eine negative umzuwandeln. 

Böswillige Akteure können eine gefälschte Identität erstellen, um einen Smart Contract zu entwickeln und einzusetzen. Manchmal wird es schwierig, einen anfälligen Vertrag zu identifizieren, da nur die öffentliche Adresse (oder) die öffentlichen Schlüssel auf öffentlichen Blockchains verfügbar sind. 

Open-Source-Code: Das mag Sie überraschen, aber ja, im Allgemeinen sind die meisten intelligenten Vertragscodes in gewisser Weise Open Source. 

Sagen wir, im Fall der Ethereum Virtual Machine (EVM) ist ihr Bytecode immer öffentlich. Und einige Solidity-Decompiler können Ihnen helfen, eine intelligente Vertragsadresse und den Solidity-Code zu erhalten. Durch die Offenlegung des Quellcodes macht sich diese Funktion für Angreifer einen Vorteil. 

Unentwickelte Blockchain-Plattformen: Für einen Entwickler ist es eine Hauptvoraussetzung, sich mit der Entwicklungsplattform vertraut zu machen. Es gibt viele unterentwickelte oder neue Blockchain-Plattformen, sodass Entwickler kein fundiertes Wissen über Operationen auf der Blockchain entwickeln können. 

Diese Inkonsistenz betrifft die Smart Contracts aufgrund fehlender Synchronisation. Die Fehler in der Blockchain-Plattform bleiben aufgrund ihrer kontinuierlichen Weiterentwicklung unbemerkt. 

Unbekannte Transaktionen: Im ersten Punkt haben wir die anonyme Identität besprochen; Ebenso werden die Transaktionen auf Blockchains nicht offengelegt. Es ist unmöglich, die Transaktionen zurückzuverfolgen, was zu vielen illegalen Aktivitäten führt. Da es sich um Finanztransaktionen handelt, kann jedes Sicherheitsproblem zu enormen finanziellen Verlusten führen. 

SMARTE VERTRAGSSICHERHEITSLÖSUNGEN

Wenn wir jetzt die Sicherheit von Smart Contracts vorantreiben, können wir alle notwendigen Schritte vergleichen, die erforderlich sind, um einen Smart Contract mit seiner Entwicklung zu sichern. Wie in der traditionellen Softwareentwicklung neigen wir dazu, einem Entwicklungslebenszyklus zu folgen; In ähnlicher Weise können wir den Lebenszyklus der Auftragsentwicklung klassifizieren. 

Der Lebenszyklus der Smart Contract-Entwicklung kann in vier Phasen unterteilt werden: Sicherheitsdesign, Sicherheitsimplementierung, Tests vor der Bereitstellung sowie Überwachung und Analyse.

Überblick über Sicherheitsthemen aus der Perspektive des Smart-Contract-Lebenszyklus
Überblick über Sicherheitsthemen aus der Perspektive des Lebenszyklus von Smart Contracts

1. SICHERHEITSDESIGN 

Diese erste Phase umfasst drei Themen; Entwurfsprinzip, Entwurfsmuster und Sicherheitsmodellierung (wie in der obigen Abbildung gezeigt). Der Schwerpunkt dieser Themen liegt auf der Vertragsgestaltung und der Abwehr von Sicherheitsbedrohungen. 

DESIGNPRINZIP

Designprinzipien sind grundlegende Ideen für die Gestaltung sicherer Smart Contracts auf der Blockchain. Es gibt fünf wesentliche Gestaltungsprinzipien für Verträge: Vorbereiten auf Fehler, vorsichtiges Rollout, Verträge einfach halten, auf dem Laufenden bleiben und über Blockchain-Eigenschaften Bescheid wissen. 

Jetzt denken Sie vielleicht, wie werden sie dazu beitragen, einen sicheren Smart Contract zu erstellen? 

Nehmen wir eines der obigen Prinzipien, sagen wir „Vorbereitung auf Fehler“, das bedeutet, dass der Vertrag in Ermangelung von Patch-Schemata in der Lage sein sollte, auf Fehler zu reagieren. Und wenn ein Angriff stattfindet, sollte der Vertrag pausieren können, um weitere Verluste zu verhindern. 

DESIGNMUSTER

Beim Softwaredesign sind die Entwurfsmuster die Lösungen, die wiederverwendet werden können, um ein Problem zu lösen. 

Wenn wir ein Beispiel von Ethereum nehmen, gibt es sechs Sicherheitsmuster; Check-Effects-Interaction, Notstopp, Mutex, Speedbump, Rate-Limit und Balance-Limit.  

Wir können diese Sicherheitsmuster verwenden, um Sicherheitsprobleme in der Blockchain anzugehen, wie z. B. die Reentrancy-Schwachstelle, die durch das Mutex-Muster behandelt werden kann. 

Gleichzeitig kann uns das Notstoppmuster dabei helfen, die Ausführung eines Vertrags zu beenden, wenn er von einer Schwachstelle betroffen ist. 

SICHERHEITSMODELLIERUNG

Es kann einen Unterschied zwischen dem entwickelten Code und dem erforderlichen Code für Verträge geben, da Solidity zum Erstellen von Verträgen verwendet wird; diese Sprache erfüllt die Turing-Vollständigkeit, ist aber fehleranfällig. 

Die obige Abbildung zeigt, dass diese Unterphase zwei Phasen umfasst; Sicherheitsdesign und -implementierung. 

Die Sicherheitsmodellierung steht in direktem Zusammenhang mit der Geschäftslogik; Da Spezifikationen aus dem Geschäft abgeleitet werden, kann Logik durch fehlerfreie Semantik klassifiziert werden. Dies hilft später während des formalen Überprüfungsprozesses, der durchgeführt wird, um Schwachstellen zu mindern. 

2. SICHERHEITSIMPLEMENTIERUNG

In diesem Abschnitt behandeln wir zwei der drei Themen; Sicherheit

Entwicklung und Sicherheitsvorlage, da wir die Sicherheitsmodellierung bereits in der letzten Phase behandelt haben.

SICHERHEITSENTWICKLUNG

In diesem Abschnitt wird gezeigt, wie Schwachstellen während des Vertragsimplementierungsprozesses vermieden werden können. 

Auf der Ethereum-Plattform haben wir Sicherheits-EIPs (Ethereum-Verbesserungsvorschläge) – Empfehlungen zur Bekämpfung der Sicherheitsprobleme auf der Ethereum Plattform. Daher sind diese EIPs bemerkenswert für die sichere Implementierung von Smart Contracts. 

SICHERHEITSVORLAGE

Vorlagen dienen als Ausgangspunkt für neue Dokumente. Die intelligenten Vertragsvorlagen mit Betriebsparametern verbinden eine rechtliche Vereinbarung mit einem ausführbaren Code. 

Im Zusammenhang mit Smart Contract Security ist es möglich, die Standardvertragsvorlagen mit aktualisierten Sicherheitsparametern wie Sicherheitsmustern und Sicherheitsbibliotheken zu extrahieren. Dadurch wird die Möglichkeit von Fehlern bei der manuellen Codierung verringert. 

3. TESTS VOR DER BEREITSTELLUNG

Auch hier ergibt sich die Anforderung dieser Phase aus einem der Vorteile von Smart Contracts – „Unveränderlichkeit“. 

Sobald die Smart Contracts erstellt wurden, gibt es keine Möglichkeit, sie zu ändern. Daher ist es zwingend erforderlich, vor dem Einsatz ausreichende Tests durchzuführen, um die Sicherheit von Smart Contracts zu gewährleisten.

Diese Phase umfasst drei Sicherheitsparameter, die befolgt werden müssen, bevor ein Smart Contract bereitgestellt wird; Strenge formale Verifizierung, Code-Analyse-Tools und Sicherheitsaudit. 

STRENGSTE FORMALE ÜBERPRÜFUNG

Die formale Verifizierung ist ein genau definierter Prozess, der mathematische Überlegungen und mathematische Beweise nutzt, um die gewünschten Eigenschaften des Systems zu verifizieren. 

Wir können eine formelle Überprüfung von Smart Contracts durchführen, da das Vertragsprogramm kurz und zeitlich begrenzt ist. Es gibt mehrere Möglichkeiten, intelligente Verträge streng zu formalisieren und zu verifizieren; Einige basieren auf dem Vertragscode und andere auf der Semantik der Ethereum Virtual Machine (EVM). 

CODE-ANALYSE-TOOLS

Die Analyse des Codes erfolgt ohne Ausführung der Programme. Zu diesem Zweck verwenden wir einige Tools, die Static Application Security Testing (SAST) Tools genannt werden. Diese Tools helfen bei der Entdeckung von Sicherheitslücken im Quellcode. 

Die von diesen Tools durchgeführte Analyse kann einen oder alle der folgenden Schritte umfassen:

(I) Erstellen Sie eine Zwischendarstellung (IR), z. B. einen abstrakten Syntaxbaum (AST), für eine detaillierte Analyse. 

(Ii) IR mit ausreichenden Informationen ergänzen, die aus statischer Kontrolle oder Datenflussanalyse und formalen Überprüfungstechniken stammen; Zu diesen Techniken gehören: symbolische Ausführung, abstrakte Interpretation und symbolische Modellprüfung. 

Aber mit welchen Tools kann man Codeanalysen für Smart Contracts durchführen? 

Obwohl es viele Tools gibt, mit denen man die Sicherheitsanalyse durchführen kann, ist Oyente das beliebteste. 

Hörer kann verwendet werden, um eine Sicherheitsanalyse für die EVM Smart Contracts durchzuführen. Es verwendet „symbolische Ausführung“, um vier häufige Fehler zu entdecken; Transaktionsreihenfolgeabhängigkeit, Zeitstempelabhängigkeit, falsch behandelte Ausnahmen und Reentrancy. 

Die Architektur von Oyente
Die Architektur von Oyente

Die Architektur von Oyente zeigt, dass sie Bytecode verwendet und den globalen Status von Ethereum als Eingabe darstellt. 

Eine der Kehrseiten von Oyente ist, dass es nur Sicherheitslücken erkennt. Die von Oyente verwendete symbolische Hinrichtungstechnik erkundet nicht alle möglichen Wege. Dadurch entsteht der Bedarf an weiteren Tools wie Security und manuellen Audits. 

SICHERHEITSAUDIT

Wir beginnen diesen Abschnitt dort, wo wir den letzten verlassen haben; die manuellen Audits. 

Aber lassen Sie uns zuerst die Notwendigkeit eines Sicherheitsaudits verstehen; sei es der Ronin Network-Hack oder der Poly Network-Hack, ungeprüfter Code ist am anfälligsten für Hacks und Exploits. 

Sie führen zu enormen finanziellen Verlusten. Tatsächlich ist es nicht nur wichtig, Ihr Web3-Projekt auditieren zu lassen, sondern es auch von erfahrenen Fachleuten auditieren zu lassen, da dies von der beruflichen Fähigkeit der Auditoren abhängt, Sicherheitsaudits durchzuführen. 

Nochmal, wo findet man diese professionellen Experten? Sie müssen nirgendwo hingehen, um nach vertrauenswürdigen Prüfern zu suchen; klicken https://t.me/quillhash um mit einem von ihnen in Kontakt zu treten! 

Ein ideales Smart Contract Audit ist eine Kombination aus manueller und automatisierter Codeanalyse; Wie wir im vorherigen Punkt besprochen haben, besteht trotz automatisierter Codeanalyse durch Tools wie Oyente die Möglichkeit nicht identifizierter Schwachstellen im Vertrag. 

Um dies zu überwinden, können Sicherheitsprüfer jede Codezeile manuell analysieren und sie auf potenzielle Schwachstellen testen. 

4. ÜBERWACHUNG UND ANALYSE

Erinnern Sie sich an das sich ständig weiterentwickelnde Prinzip der Blockchain, das wir anfangs besprochen haben? 

Diese Phase basiert auf demselben Thema; Sobald der Vertrag bereitgestellt und ausgeführt wurde, können einige Schwachstellen, die in den vorherigen Phasen unbemerkt geblieben sind, aufgrund neuer Versionen und häufiger Updates auftreten, die Verträge später weniger effizient machen. 

Wir können durchführen; Bug Bounty, Sicherheitsüberwachung und Post-hoc-Analyse, um diese Barrieren zu überwinden. 

BUG-KOPFGELD

Da wir die Sicherheitsprobleme nach der Bereitstellung mit Verträgen berücksichtigen, können Bug Bounties hilfreich sein. Die zuvor diskutierte formale Verifizierungstechnik ist eine statische Analysetechnik. Bug Bounty hingegen ist eine dynamische Analysetechnik. 

Das Konzept hinter Bug Bounty ist einfach; Hacker entdecken Fehler und werden im Gegenzug mit einigen finanziellen Belohnungen bezahlt. Sieht nach einer Win-Win-Situation aus, oder? Aber das ist es nicht!

Der Haken hier ist; dass der Wert von Fehlern höher sein kann als die Prämie auf den grauen Märkten, und die Möglichkeit besteht, dass Hacker die Fehler ausnutzen oder verkaufen, um einen hohen Preis zu erzielen. 

Manchmal weigern sich die Projektbesitzer, die Prämie zu zahlen, es sei denn, die Fehler werden bestätigt; Hacker sorgen sich auch um die Ungewissheit von Zahlungen nach der Entdeckung von Fehlern. 

Um dies zu überwinden, wurde ein Bug-Bounty-Framework namens „Hydra“ vorgeschlagen. 

Hydra nutzt eine Exploit-Gap-Technologie namens N-of-N-Version Programming (NNVP) als Bug-Bounty-System in der Blockchain. 

Das Hydra-Gerüst mit Köpfen
Das Hydra-Gerüst mit Köpfen

SICHERHEITSÜBERWACHUNG

Wir können die statische Codeanalyse verwenden, um die Sicherheitslücken zu entdecken, aber diese Methode wird vor der Bereitstellung der Smart Contracts verwendet. 

Aber um Fehler und potenzielle Schwachstellen in Echtzeit zu finden, müssen wir Transaktionsdaten in der Blockchain überwachen und analysieren. 

Diese durch die Analyse intelligenter Verträge entdeckten Schwachstellen können als Trace-Schwachstellen bezeichnet werden. Im Mittelpunkt dieser Trace-Schwachstellen stehen drei Arten von Verträgen; 

(I) Gierige Verträge (Verträge, die am Leben bleiben und Ether auf unbestimmte Zeit sperren).

(Ii) Verschwendungsverträge (Verträge, bei denen Gelder fahrlässig an beliebige Benutzer fließen) und

(iii) Suizidverträge (Verträge, die jeder beliebige Benutzer töten kann). 

Sogar ein Begriff von Effectively Callback Free (ECF)-Objekten wurde vorgeschlagen, um Schwachstellen durch Überwachung von ECF-Objekten zu identifizieren. 

In diesem Zusammenhang wurde auch ein Online-Algorithmus vorgestellt; Es half, unbekannte Schwachstellen zu entdecken. Im selben Vorschlag wurde vorgeschlagen, Smart Contracts auf Testnet auszuführen, bevor sie auf dem Mainnet bereitgestellt werden. 

Monitoring UI ist eine Blockchain-Überwachungsplattform, die React.js verwendet. Über diese Plattform können Transaktionen durchgeführt, Vermögenswerte überprüft und der Zustand der Blockchain abgefragt werden. 

Wir können uns bei der sicheren Überwachung von Smart Contracts nicht auf diese Plattform verlassen, aber da die meisten Transaktionsdaten im Zusammenhang mit Smart Contracts gefunden werden können, können wir Exploits in Echtzeit erkennen, indem wir die Übertragung von Vermögenswerten verfolgen. 

POST-HOC-ANALYSE

Die Post-Hoc-Analyse verwendet Blockchain-Transaktionsdaten, um potenzielle Bedrohungen in der Blockchain in Laiensprache zu analysieren, zu entdecken oder zu verfolgen. 

Wenn wir die Graph-Analyse diskutieren, wurde sie als Ansatz zum Sammeln aller Transaktionsdaten entwickelt (einschließlich interner Transaktionen aus Smart Contracts). 

Mit Hilfe dieser Daten erstellten sie drei Grafiken; 

(I) Ein Geldflussdiagramm (MFG)

(Ii) Vertragserstellungsdiagramm (CCG) und,

(iii) Vertragsaufrufgraph (CIG)

Basierend auf der Analyse der oben erwähnten Grafiken wurden viele neue Erkenntnisse vorgeschlagen, wie z. B. Lösungen für Sicherheitsprobleme zwischen mehreren Verträgen, die miteinander interagieren. 

Ein Überblick über die Graphenanalyse
Ein Überblick über die Graphenanalyse

Das Ponzi-Schema ist eines der klassischen Betrugsschemata, durch die eine große Anzahl von Geldern erworben werden kann und die native Blockchain beeinflusst. Um diesen Betrug zu bekämpfen, wurde ein Klassifizierungsmechanismus vorgeschlagen, um Schneeballsysteme auf Ethereum zu erkennen. 

Dieser Mechanismus nutzt Data Mining und maschinelles Lernen, um Ponzi-Verträge zu erkennen. Dieser Prozess funktioniert auch dann, wenn der Quellcode der Smart Contracts nicht verfügbar ist. 

Das Framework der intelligenten Ponzi-Schema-Erkennung
Das Framework der intelligenten Ponzi-Schema-Erkennung

Schlüssel zum Mitnehmen

Das ist es, ja, das ist es für jetzt!

Wenn Sie bisher bei uns waren, würden wir uns freuen. Ohne weiter zu gehen, würden wir abschließend nur sagen, dass das Ökosystem der Smart Contracts dezentralisiert ist und es schwierig ist, Fehler zu beheben. 

Wir haben versucht, die Sicherheit von Smart Contracts aus der Perspektive des Softwarelebenszyklus aufzuschlüsseln. 

Wir haben zuerst die Hauptmerkmale der Blockchain besprochen, die dafür verantwortlich sind Sicherheitsprobleme in Smart Contracts. Wir haben die Sicherheitslösungen für die Smart Contracts in vier Phasen eingeteilt. Wir hoffen, weitere Beiträge veröffentlichen zu können, damit Sie den Herausforderungen im wachsenden Web3-Ökosystem immer einen Schritt voraus sind. 

Was halten Sie von diesem agilen SDLC-Ansatz für Smart Contract Security? Teilen Sie Ihre Gedanken in den Kommentaren unten!

46 Views

Die Post Smart Contract Security: Ein agiler SDLC-Ansatz  erschien zuerst auf Blog.quillhash.

Zeitstempel:

Mehr von Quillhash