Seit August hat sich die Entwicklung des Sui-Ökosystems rasant entwickelt. Laut DefiLlama hat das Sui TVL in den letzten zwei Monaten um 200% auf über 1 Milliarde US-Dollar zugenommen, und derzeit übersteigt das Handelsvolumen von Cetus, einer auf Sui aufgebauten Dex, 160 Millionen US-Dollar pro Tag.
Am 9. Oktober wurde das einheimische USDC von Sui auf das Hauptnetz gebracht, was weiterhin mehr Gelder in das Sui-Ökosystem ziehen wird. Als wichtiges Mitglied des Move-Ökosystems verpflichtet sich Sui, schnelle und sichere Transaktionsdienste für verschiedene Blockchain-Anwendungsszenarien bereitzustellen.
In diesem Artikel wird Beosin Ihnen helfen, die Sicherheitsherausforderungen zu verstehen, mit denen Benutzer und Entwickler des SUI-Ökosystems aufgrund jahrelanger Erfahrung in der Sicherheitsüberprüfung konfrontiert sind.
SUI verwendet Move als Programmiersprache für Smart Contracts. Move wurde als ausführbare Bytecode-Sprache mit integrierten Sicherheitsalgorithmen und Bytecode-Verifizierer konzipiert und verwendet statische Aufrufe bei der Vertragsaufruf.
Dieses Design ermöglicht es Move, gängige Schwachstellen in Smart Contracts zu adressieren, wie z.B. Reentrancy-Angriffe, Integer-Überläufe, Double-Spending und potenzielle Compiler-Probleme. Es ist jedoch immer noch möglich, dass Entwickler versehentlich Schwachstellen bei der Vertragsentwicklung einführen. Als Reaktion darauf führte Beosin 2023 Move Lint ein, ein statisches Erkennungstool, das die Erkennung potenzieller Sicherheitsrisiken in Verträgen automatisiert und Schwachstellen lokalisiert.
Neben den Erkennungswerkzeugen sind folgende Sicherheitsprobleme, denen Entwickler bei der Entwicklung von Move-Verträgen zur Verbesserung der Sicherheit zusätzliche Aufmerksamkeit schenken müssen:
Im Vergleich zu anderen Smart-Vertrags-Sprachen überprüft Move standardmäßig automatisch auf Überlaufprobleme beim Durchführen von ganzzahligen mathematischen Operationen, was eine große Anzahl von Überlaufproblemen verhindern kann, aber es gibt immer noch zwei Punkte zu beachten:
Bit-Operationen in der Move-Sprache führen nicht automatisch Überlaufprüfungen durch, da Bit-Operationen im Wesentlichen bitweise Operationen auf Daten sind, die sich von Ganzzahloperationen unterscheiden.
Wenn die automatische Überlaufprüfung von Move wirksam wird, wirft die Funktionsausführung eine Ausnahme, die bei unsachgemäßer Gestaltung dazu führen kann, dass das Projektgeschäft nicht wie erwartet ausgeführt wird und DoS-Angriffe verursacht werden.
Die Weitergabe privilegierter Objekte und privilegierter Funktionsaufrufe sollte sorgfältig authentifiziert werden, da diese Funktionen und Objekte an der Sicherheit der Finanzierung beteiligt sind. Darüber hinaus müssen die Arten von Objekten überprüft werden, um festzustellen, ob es sich um private oder freigegebene Objekte handelt. Wenn ein Objekt fälschlicherweise von einem privaten Objekt in ein freigegebenes Objekt umgewandelt wird, können nicht autorisierte Benutzer möglicherweise auf das Objekt zugreifen, was ein potentielles Sicherheitsrisiko darstellt.
Entwickler können Move Prover verwenden, um zu überprüfen, ob das Programm eine explizite Zugriffskontrollrichtlinie durchsetzt. Zum Beispiel können wir in std.offer sehen, dass die Funktion beendet wird, wenn der Empfänger nicht auf der Whitelist steht:
Transaction Ordering Dependence (TOD) bezieht sich darauf, dass das Verhalten eines Vertrags je nach Reihenfolge, in der die Transaktionen ausgeführt werden, unterschiedliche Ergebnisse haben kann, insbesondere in einer dezentralen Umgebung, in der der Miner oder Verifizierer entscheiden kann, in welcher Reihenfolge die Transaktionen erfolgen. Dies kann Risiken wie Front-Running-Angriffe mit sich bringen.
In SUI liegt es immer noch am Blockproduzenten, den Auftrag der Transaktionen auszuführen, sodass MOVE-Verträge immer noch von diesem Problem betroffen sein können, wenn sie darauf ausgelegt sind, vom Transaktionsauftrag für Zustandsänderungen abhängig zu sein.
Auf der SUI-Chain spiegelt sich das Gasproblem der Move-Smart Contracts hauptsächlich in den für die Vertragsausführung erforderlichen Berechnungs- und Speicherkosten wider. Mit zunehmender Vertragskomplexität und Statusänderungen steigt auch der Gasverbrauch entsprechend. Entwickler müssen sich darauf konzentrieren, die Vertragslogik zu optimieren, unnötige Berechnungen und Statusaktualisierungen zu reduzieren, um Transaktionskosten für Benutzer zu senken, und insbesondere die Situation unkontrollierbarer Iterationen im Vertrag zu vermeiden, die auf unzureichendes Gas zurückzuführen sein können und das ordnungsgemäße Funktionieren des Geschäfts verhindern.
Derzeit wird der numerische Typ, der von Move unterstützt wird, als vorzeichenloser Ganzzahl behandelt und unterstützt keine Gleitkommazahlen. Daher wird der Bruchteil bei Divisionen abgeschnitten und abgerundet, was zu ungenauen Berechnungsergebnissen führen kann. Dies kann sich auf bestimmte wichtige Richtlinien auswirken, zu Einnahmeverlusten führen und sogar zu einer Sicherheitslücke werden.
Für dieses Problem besteht die übliche Maßnahme zur Minderung darin, die Genauigkeit zu erhöhen, es sollte jedoch beachtet werden, dass die Genauigkeit wiederhergestellt werden muss, wenn das Endergebnis erzielt wird.
Bei Move-Smart Contracts auf der SUI-Blockchain ist das Objektmanagement eine wichtige Herausforderung, die mehrere Aspekte des Lebenszyklus, des Eigentums, des gleichzeitigen Zugriffs, der Serialisierung und der Speicherkosten des Objekts abdeckt. Entwickler müssen die Erstellung, Aktualisierung und Zerstörung von Objekten präzise verwalten, um Ressourcenverschwendung und Zustandsinkonsistenz zu verhindern. Gleichzeitig sind eine sinnvolle Gestaltung der Vertragslogik zur Kontrolle des Eigentums und der Zugriffsrechte von Objekten sowie der Umgang mit mehreren Benutzern, die gleichzeitig auf dasselbe Objekt zugreifen, wichtige Faktoren, um den sicheren und effizienten Betrieb von Smart Contracts zu gewährleisten.
Beispielsweise können Angreifer mit der Implementierung von Blitzdarlehen im SUI DeFi-Projekt Flash-Darlehen nutzen, um große Geldangriffe wie Preismanipulationen durchzuführen.
In der üblichen AMM-Token-Austauschfunktion können Entwickler Move Prover verwenden, um zu überprüfen, ob sich die Anzahl der Token korrekt geändert hat:
Zum Beispiel sollten Kreditprotokolle immer vollständig abgesichert sein, nach einer Reihe von Einzahlungen, Ausleihungen und Auszahlungen. Im Falle, dass das Orderbuch des On-Chain-Perpetual-Vertragshandels nach Aufgabe der Bestellung storniert wird, sollten keine Änderungen im Hauptbuch usw. vorgenommen werden, die vom Entwickler überprüft und bestätigt werden müssen.
Derzeit blühen DeFi und Memecoins von SUI, und das Handelsvolumen und TVL haben ein explosives Wachstum verzeichnet. Infolgedessen gibt es immer mehr Arten von Betrügereien und Spam-Trades, die Benutzer vermeiden müssen.
In diesem Jahr ist ein Airdrop-Betrug namens Suisses in Sui Eco aufgetaucht, der es vielen Benutzern ermöglichte, ihre Vermögenswerte zu stehlen. Wenn sich ein Benutzer auf der Suisses-Website mit einer Brieftasche verbindet und auf "Anspruch" klickt, erscheint eine Transaktionsanforderung für die Übertragung der Vermögenswerte des Benutzers. Wenn der Benutzer die Transaktion unterzeichnet, wird er feststellen, dass alle Vermögenswerte seiner Brieftasche übertragen wurden.
Aufgrund der Eigenschaften von Sui: alles ist das Objekt, nicht nur die Token in der Brieftasche des Benutzers, NFT ist das Objekt, sondern auch die Beteiligung des Benutzers an DeFi-Mining, Liquiditätsbindung und anderen Zertifikaten. Wenn ein Phishing-Angriff auftritt, können alle Vermögenswerte eines Benutzers innerhalb des Sui-Ökosystems auf einmal vom Hacker übertragen werden.
Es gibt viele gefälschte Tokens und Honeypots im SUI-Ökosystem. Insbesondere können Benutzer versehentlich erwischt werden, wenn sie Memecoins im SUI-Ökosystem handeln.
Beim Erstellen von Tokens bei SUI, wie unten gezeigt, können Hacker dieselben Symbole und Namen wie bei beliebten oder wichtigen Tokens festlegen, sodass sie für normale Benutzer nicht zu unterscheiden sind. Benutzer müssen daher überprüfen, ob das Datenformat des Tokens beim Kauf korrekt ist.
Darüber hinaus können Hacker auch eine DenyList-Funktion zum Token-Vertrag hinzufügen, so dass Benutzer, die das Token kaufen, es nicht verkaufen können und Benutzern Verluste verursachen.
MEV steht für maximal förderbaren Wert. MEV bezog sich ursprünglich auf Miner Extractable Value, bei dem Miner im BTC-Netzwerk Belohnungen über Block- und Netzwerkgebühren hinaus verdienen, indem sie Transaktionen in Blöcken neu anordnen. MEV hat nichts mit der Art des Blockchain-Netzwerks zu tun. MEV existiert in allen Blockchains, und Sui bildet keine Ausnahme.
Sui verwendet Narwhal als Speicherpool, um unvollständige Transaktionen den Knoten zuzuweisen, und verwendet den Bullshark-Algorithmus als Konsens-Engine, um Transaktionen zu sortieren.
Die Bestellregel von SUI für Transaktionen basiert auf Gasgebühren. Darüber hinaus können Transaktionen, die denselben AMM-Transaktionspoolzustand teilen, nur sequenziell ausgeführt werden, da SUI ein Transaktionsausführungsschema kombiniert, das parallel und sequenziell ist. Daher ist der Sandwich-Angriff / der Frontrunning-Transaktion durchaus machbar. Ein Angreifer kann einen Sandwich-Angriff durch eine höhere Gasgebühr starten, so dass Nutzer, die an DeFi-Handel teilnehmen, Verluste erleiden.
Поділіться
Seit August hat sich die Entwicklung des Sui-Ökosystems rasant entwickelt. Laut DefiLlama hat das Sui TVL in den letzten zwei Monaten um 200% auf über 1 Milliarde US-Dollar zugenommen, und derzeit übersteigt das Handelsvolumen von Cetus, einer auf Sui aufgebauten Dex, 160 Millionen US-Dollar pro Tag.
Am 9. Oktober wurde das einheimische USDC von Sui auf das Hauptnetz gebracht, was weiterhin mehr Gelder in das Sui-Ökosystem ziehen wird. Als wichtiges Mitglied des Move-Ökosystems verpflichtet sich Sui, schnelle und sichere Transaktionsdienste für verschiedene Blockchain-Anwendungsszenarien bereitzustellen.
In diesem Artikel wird Beosin Ihnen helfen, die Sicherheitsherausforderungen zu verstehen, mit denen Benutzer und Entwickler des SUI-Ökosystems aufgrund jahrelanger Erfahrung in der Sicherheitsüberprüfung konfrontiert sind.
SUI verwendet Move als Programmiersprache für Smart Contracts. Move wurde als ausführbare Bytecode-Sprache mit integrierten Sicherheitsalgorithmen und Bytecode-Verifizierer konzipiert und verwendet statische Aufrufe bei der Vertragsaufruf.
Dieses Design ermöglicht es Move, gängige Schwachstellen in Smart Contracts zu adressieren, wie z.B. Reentrancy-Angriffe, Integer-Überläufe, Double-Spending und potenzielle Compiler-Probleme. Es ist jedoch immer noch möglich, dass Entwickler versehentlich Schwachstellen bei der Vertragsentwicklung einführen. Als Reaktion darauf führte Beosin 2023 Move Lint ein, ein statisches Erkennungstool, das die Erkennung potenzieller Sicherheitsrisiken in Verträgen automatisiert und Schwachstellen lokalisiert.
Neben den Erkennungswerkzeugen sind folgende Sicherheitsprobleme, denen Entwickler bei der Entwicklung von Move-Verträgen zur Verbesserung der Sicherheit zusätzliche Aufmerksamkeit schenken müssen:
Im Vergleich zu anderen Smart-Vertrags-Sprachen überprüft Move standardmäßig automatisch auf Überlaufprobleme beim Durchführen von ganzzahligen mathematischen Operationen, was eine große Anzahl von Überlaufproblemen verhindern kann, aber es gibt immer noch zwei Punkte zu beachten:
Bit-Operationen in der Move-Sprache führen nicht automatisch Überlaufprüfungen durch, da Bit-Operationen im Wesentlichen bitweise Operationen auf Daten sind, die sich von Ganzzahloperationen unterscheiden.
Wenn die automatische Überlaufprüfung von Move wirksam wird, wirft die Funktionsausführung eine Ausnahme, die bei unsachgemäßer Gestaltung dazu führen kann, dass das Projektgeschäft nicht wie erwartet ausgeführt wird und DoS-Angriffe verursacht werden.
Die Weitergabe privilegierter Objekte und privilegierter Funktionsaufrufe sollte sorgfältig authentifiziert werden, da diese Funktionen und Objekte an der Sicherheit der Finanzierung beteiligt sind. Darüber hinaus müssen die Arten von Objekten überprüft werden, um festzustellen, ob es sich um private oder freigegebene Objekte handelt. Wenn ein Objekt fälschlicherweise von einem privaten Objekt in ein freigegebenes Objekt umgewandelt wird, können nicht autorisierte Benutzer möglicherweise auf das Objekt zugreifen, was ein potentielles Sicherheitsrisiko darstellt.
Entwickler können Move Prover verwenden, um zu überprüfen, ob das Programm eine explizite Zugriffskontrollrichtlinie durchsetzt. Zum Beispiel können wir in std.offer sehen, dass die Funktion beendet wird, wenn der Empfänger nicht auf der Whitelist steht:
Transaction Ordering Dependence (TOD) bezieht sich darauf, dass das Verhalten eines Vertrags je nach Reihenfolge, in der die Transaktionen ausgeführt werden, unterschiedliche Ergebnisse haben kann, insbesondere in einer dezentralen Umgebung, in der der Miner oder Verifizierer entscheiden kann, in welcher Reihenfolge die Transaktionen erfolgen. Dies kann Risiken wie Front-Running-Angriffe mit sich bringen.
In SUI liegt es immer noch am Blockproduzenten, den Auftrag der Transaktionen auszuführen, sodass MOVE-Verträge immer noch von diesem Problem betroffen sein können, wenn sie darauf ausgelegt sind, vom Transaktionsauftrag für Zustandsänderungen abhängig zu sein.
Auf der SUI-Chain spiegelt sich das Gasproblem der Move-Smart Contracts hauptsächlich in den für die Vertragsausführung erforderlichen Berechnungs- und Speicherkosten wider. Mit zunehmender Vertragskomplexität und Statusänderungen steigt auch der Gasverbrauch entsprechend. Entwickler müssen sich darauf konzentrieren, die Vertragslogik zu optimieren, unnötige Berechnungen und Statusaktualisierungen zu reduzieren, um Transaktionskosten für Benutzer zu senken, und insbesondere die Situation unkontrollierbarer Iterationen im Vertrag zu vermeiden, die auf unzureichendes Gas zurückzuführen sein können und das ordnungsgemäße Funktionieren des Geschäfts verhindern.
Derzeit wird der numerische Typ, der von Move unterstützt wird, als vorzeichenloser Ganzzahl behandelt und unterstützt keine Gleitkommazahlen. Daher wird der Bruchteil bei Divisionen abgeschnitten und abgerundet, was zu ungenauen Berechnungsergebnissen führen kann. Dies kann sich auf bestimmte wichtige Richtlinien auswirken, zu Einnahmeverlusten führen und sogar zu einer Sicherheitslücke werden.
Für dieses Problem besteht die übliche Maßnahme zur Minderung darin, die Genauigkeit zu erhöhen, es sollte jedoch beachtet werden, dass die Genauigkeit wiederhergestellt werden muss, wenn das Endergebnis erzielt wird.
Bei Move-Smart Contracts auf der SUI-Blockchain ist das Objektmanagement eine wichtige Herausforderung, die mehrere Aspekte des Lebenszyklus, des Eigentums, des gleichzeitigen Zugriffs, der Serialisierung und der Speicherkosten des Objekts abdeckt. Entwickler müssen die Erstellung, Aktualisierung und Zerstörung von Objekten präzise verwalten, um Ressourcenverschwendung und Zustandsinkonsistenz zu verhindern. Gleichzeitig sind eine sinnvolle Gestaltung der Vertragslogik zur Kontrolle des Eigentums und der Zugriffsrechte von Objekten sowie der Umgang mit mehreren Benutzern, die gleichzeitig auf dasselbe Objekt zugreifen, wichtige Faktoren, um den sicheren und effizienten Betrieb von Smart Contracts zu gewährleisten.
Beispielsweise können Angreifer mit der Implementierung von Blitzdarlehen im SUI DeFi-Projekt Flash-Darlehen nutzen, um große Geldangriffe wie Preismanipulationen durchzuführen.
In der üblichen AMM-Token-Austauschfunktion können Entwickler Move Prover verwenden, um zu überprüfen, ob sich die Anzahl der Token korrekt geändert hat:
Zum Beispiel sollten Kreditprotokolle immer vollständig abgesichert sein, nach einer Reihe von Einzahlungen, Ausleihungen und Auszahlungen. Im Falle, dass das Orderbuch des On-Chain-Perpetual-Vertragshandels nach Aufgabe der Bestellung storniert wird, sollten keine Änderungen im Hauptbuch usw. vorgenommen werden, die vom Entwickler überprüft und bestätigt werden müssen.
Derzeit blühen DeFi und Memecoins von SUI, und das Handelsvolumen und TVL haben ein explosives Wachstum verzeichnet. Infolgedessen gibt es immer mehr Arten von Betrügereien und Spam-Trades, die Benutzer vermeiden müssen.
In diesem Jahr ist ein Airdrop-Betrug namens Suisses in Sui Eco aufgetaucht, der es vielen Benutzern ermöglichte, ihre Vermögenswerte zu stehlen. Wenn sich ein Benutzer auf der Suisses-Website mit einer Brieftasche verbindet und auf "Anspruch" klickt, erscheint eine Transaktionsanforderung für die Übertragung der Vermögenswerte des Benutzers. Wenn der Benutzer die Transaktion unterzeichnet, wird er feststellen, dass alle Vermögenswerte seiner Brieftasche übertragen wurden.
Aufgrund der Eigenschaften von Sui: alles ist das Objekt, nicht nur die Token in der Brieftasche des Benutzers, NFT ist das Objekt, sondern auch die Beteiligung des Benutzers an DeFi-Mining, Liquiditätsbindung und anderen Zertifikaten. Wenn ein Phishing-Angriff auftritt, können alle Vermögenswerte eines Benutzers innerhalb des Sui-Ökosystems auf einmal vom Hacker übertragen werden.
Es gibt viele gefälschte Tokens und Honeypots im SUI-Ökosystem. Insbesondere können Benutzer versehentlich erwischt werden, wenn sie Memecoins im SUI-Ökosystem handeln.
Beim Erstellen von Tokens bei SUI, wie unten gezeigt, können Hacker dieselben Symbole und Namen wie bei beliebten oder wichtigen Tokens festlegen, sodass sie für normale Benutzer nicht zu unterscheiden sind. Benutzer müssen daher überprüfen, ob das Datenformat des Tokens beim Kauf korrekt ist.
Darüber hinaus können Hacker auch eine DenyList-Funktion zum Token-Vertrag hinzufügen, so dass Benutzer, die das Token kaufen, es nicht verkaufen können und Benutzern Verluste verursachen.
MEV steht für maximal förderbaren Wert. MEV bezog sich ursprünglich auf Miner Extractable Value, bei dem Miner im BTC-Netzwerk Belohnungen über Block- und Netzwerkgebühren hinaus verdienen, indem sie Transaktionen in Blöcken neu anordnen. MEV hat nichts mit der Art des Blockchain-Netzwerks zu tun. MEV existiert in allen Blockchains, und Sui bildet keine Ausnahme.
Sui verwendet Narwhal als Speicherpool, um unvollständige Transaktionen den Knoten zuzuweisen, und verwendet den Bullshark-Algorithmus als Konsens-Engine, um Transaktionen zu sortieren.
Die Bestellregel von SUI für Transaktionen basiert auf Gasgebühren. Darüber hinaus können Transaktionen, die denselben AMM-Transaktionspoolzustand teilen, nur sequenziell ausgeführt werden, da SUI ein Transaktionsausführungsschema kombiniert, das parallel und sequenziell ist. Daher ist der Sandwich-Angriff / der Frontrunning-Transaktion durchaus machbar. Ein Angreifer kann einen Sandwich-Angriff durch eine höhere Gasgebühr starten, so dass Nutzer, die an DeFi-Handel teilnehmen, Verluste erleiden.