Zurück zum Blog

Analyse des Sanshu Inu-Sicherheitsvorfalls

Code Auditing
21. Juli 2021
3 Min. Lesezeit

Am 21. Juli meldete unser DeFiRanger-System ein paar verdächtige Transaktionen. Nach manueller Analyse bestätigen wir, dass diese Transaktionen Angriffe auf Sanshu Inu sind. Insbesondere wurde der Memstake-Vertrag von Sanshu Inu durch Missbrauch des deflation-Mechanismus angegriffen. Im Folgenden werden wir mehrere Angriffstransaktionen verwenden, um den Angriffsprozess zu veranschaulichen.

Angriffsablauf

Die folgende Abbildung listet einige der vom Angreifer gestarteten Transaktionen auf (0x333).

Der Angriff besteht aus vier Schritten. Der kritischste ist der zweite Schritt, der den Deflationsmechanismus des ERC20-Tokens nutzt, um die Belohnungsberechnung des Memstake-Smart-Contracts zu manipulieren.

  • Schritt 1 (Vorbereitung): Der Angreifer erstellt zwei Angriffskontrakte. Der erste ist ein Vertrag, der 2.049 Billionen KEANU einzahlt. Der zweite ist der Angriffskontrakt.

  • Schritt 2 (Manipulation): Der Angreifer leiht sich zunächst eine große Anzahl von KEANU-Tokens über einen Flash-Loan (Towards A First Step to Understand Flash Loan and Its Applications in DeFi Ecosystem (SBC 2021)) von UniswapV2 und zahlt dann die Tokens über den in Schritt 1 erstellten zweiten Smart Contract in den Memestake ein/zieht sie daraus ab. Da KEANU über einen Deflationsmechanismus verfügt, der bei jeder Transaktion 2 % der Tokens verbrennt, ist die tatsächliche Anzahl der in den Memestake eingezahlten Tokens geringer als der vom Memestake-Vertrag verwaltete Wert (user.amount). Der Angreifer wiederholt diesen Vorgang und lässt die Anzahl der KEANU-Tokens im Memestake auf einen kleinen Wert (1e-07) sinken. Siehe die Transaktion 0x00ed und die folgende Abbildung.

  • Schritt 3 (Profit machen): Der Angreifer ruft Memestake.updatePool() auf, um accMfundPerShare zu aktualisieren. Dieser Wert hängt von der Anzahl der KEANU-Tokens ab (die im zweiten Schritt manipuliert wurde). Dann erhält der Angreifer eine große Anzahl von Mfund (~61 Mio.). Einzelheiten finden Sie in der Transaktion 0xa945.
  • Schritt 4 (Umtausch in WETH): Der Angreifer tauscht MFund und KEANU gegen WETH und wäscht das Geld über Tornado.Cash. Der Angreifer erzielte einen Gewinn von 55,9484578158357 ETH.

Sonstiges

Interessanterweise steht der zweite/dritte Schritt des Angriffs im Zusammenhang mit Flashbots. Der zweite Schritt kauft KEANU für 38 ETH (0x00ed). Diese Transaktion wird durch einen Sandwidth-Angriff (über Flashbots) angegriffen – was den Angreifer selbst zum Opfer eines Sandwidth-Angriffs macht. Der dritte Schritt (0xa945) verkauft MFund in Uniswap, was eine Arbitragemöglichkeit schafft, die von einem Flashbots-Sucher genutzt wurde.

Über BlockSec

BlockSec ist ein wegweisendes Blockchain-Sicherheitsunternehmen, das 2021 von einer Gruppe weltweit angesehener Sicherheitsexperten gegründet wurde. Das Unternehmen hat sich der Verbesserung der Sicherheit und Benutzerfreundlichkeit für die aufstrebende Web3-Welt verschrieben, um deren Massenadoption zu fördern. Zu diesem Zweck bietet BlockSec Audits für Smart Contracts und EVM-Ketten, die Phalcon-Plattform für die sichere Entwicklung und proaktive Bedrohungsabwehr, die MetaSleuth-Plattform für die Nachverfolgung von Geldern und Ermittlungen sowie die MetaDock-Erweiterung für Web3-Entwickler, die effizient im Krypto-Bereich surfen.

Bis heute hat das Unternehmen über 300 angesehene Kunden wie MetaMask, Uniswap Foundation, Compound, Forta und PancakeSwap betreut und in zwei Finanzierungsrunden von namhaften Investoren wie Matrix Partners, Vitalbridge Capital und Fenbushi Capital zweistellige Millionenbeträge an US-Dollar erhalten.

Offizielle Website: https://blocksec.com/

Offizieller Twitter-Account: https://twitter.com/BlockSecTeam

Für die neuesten Informationen anmelden
Über die sichere Speicherung hinaus, Teil 2: Wallet-Kryptografie sicher implementieren
Security Insights

Über die sichere Speicherung hinaus, Teil 2: Wallet-Kryptografie sicher implementieren

Kann ein Angreifer einen privaten Schlüssel rekonstruieren, ohne dessen geschützte Kopie auszulesen? Teil 2 von Beyond Secure Storage untersucht sechs Vorfälle, bei denen schwache Zufallszahlen, Entropieverlust oder Fehler bei Signatur-Nonces Schlüssel vorhersagbar oder rekonstruierbar machten. Daraus leitet er Anforderungen an die Implementierung der Schlüsselerzeugung und des Signierens ab und erläutert anschließend, wie Zahlungsinstitute deren Einhaltung durch Code-Reviews und Tests des produktiv eingesetzten Systems überprüfen können.

Über sichere Speicherung hinaus, Teil 1: Sichere Zahlungs- und Signaturabläufe gestalten
Security Insights

Über sichere Speicherung hinaus, Teil 1: Sichere Zahlungs- und Signaturabläufe gestalten

Wie kann ein nicht autorisierter Vorgang eine gültige Signatur erhalten, ohne dass der Angreifer den privaten Schlüssel stiehlt? Teil 1 von Beyond Secure Storage untersucht anhand von Vorfällen bei Bitget, Bybit und Binance Autorisierungsfehler bei Zahlungsanforderungen, der Erstellung, Signierung und Ausführung von Transaktionen sowie bei deren Abwicklung. Daraus leitet er Gestaltungsprinzipien ab, um nicht autorisierte Vorgänge zu verhindern und Verluste zu begrenzen. Anschließend erläutert er, wie Überprüfungen, Audits, Penetrationstests und Übungen diese Schutzmaßnahmen verifizieren können.

NEAR-Intents-Exploit: Fehler bei der Rückerstattung und Lehren für die Sicherheit
Security Insights

NEAR-Intents-Exploit: Fehler bei der Rückerstattung und Lehren für die Sicherheit

Beim Exploit von NEAR Intents wurden überdimensionierte Rückerstattungsereignisse genutzt, um interne Guthaben zu erhalten, nachdem die eingezahlten Vermögenswerte zurückgegeben worden waren. Diese Analyse rekonstruiert den Ablauf der Receipts und sieben Auszahlungen auf der BNB Chain in Höhe von insgesamt 3.865.021 USDT. Sie unterscheidet diese Mittelabflüsse von der vom Projekt gemeldeten vollständigen Rückgewinnung der Mittel und erläutert Sicherheitsaspekte bei der Entwicklung und Prüfung von NEAR-Smart-Contracts.

Der beste Sicherheitsauditor für Web3

Lassen Sie Design, Code und Geschäftslogik vor dem Launch prüfen. Nach den höchsten Sicherheitsstandards der Branche.

BlockSec-Audit