Zurück zum Blog

Nicht alle Token sind gut: Schnelle Analyse des Paraluni-Angriffs

Code Auditing
13. März 2022
3 Min. Lesezeit

Das Paraluni-Projekt wurde am Morgen des 13. März (UTC+8-Zeit) angegriffen. Der Angreifer nutzte zwei Schwachstellen aus, um das Protokoll anzugreifen. Die erste Schwachstelle ist das Fehlen der Verifizierung der übergebenen Tokens und die zweite ist die traditionelle Reentrancy. Der Angreifer startete ein paar Angriffstransaktionen. Im Folgenden werden wir eine davon 0xf2bba649019ce40a67f0fb74e5e800257d359d9094b6ba6faea14ffa4d3446b1 verwenden, um den gesamten Angriffsprozess zu veranschaulichen.

Schritt I: liquidity zu paraRouter hinzufügen

Der Angreifer rief addLiquidity für den BTCB-WBNB-Pool (Index = 9) auf, und der Pool prägt das lp-Token an UBT (ein vom Angreifer erstelltes Token). Nach dieser Operation hält das UBT-Token das lp-Token des Pools. Beachten Sie, dass BTCB und WBNB aus einem Flash-Loan geliehen wurden.

Schritt II: depositByAddLiquidity von MasterChef aufrufen Der Angreifer rief depositByAddLiquidity auf, indem er _pid als 9 angab und die Token UGT und UBT als Parameter verwendete. Die Funktion prüft jedoch nicht, ob die Reservetoken des Pools mit den übergebenen Token (UGT und UBT) übereinstimmen.

Anschließend ruft die Funktion depositByAddLiquidityInternal auf, die dann addLiquidity von paraRouter aufruft. Diese Funktion ruft die transferFrom-Funktion der Token UGT und UBT auf. Diese beiden Token werden jedoch vom Angreifer kontrolliert. In der transferFrom-Funktion von UBT rief der Angreifer die deposit-Funktion des MasterChef-Vertrags auf, um das im ersten Schritt erhaltene LP-Token in den MasterChef-Vertrag einzuzahlen.

Leider ist aufgrund der Bilanzänderung in der deposit-Funktion die newBalance nach addLiquidity viel höher als die oldBalance. Auf diese Weise erhielt der Angreifer eine doppelte Gutschrift im MasterChef-Vertrag.

Schritt III: Gewinn erzielen

Der Angreifer rief schließlich UBT.withdrawAsset und MasterChef.withdraw auf, um das lptoken einzulösen und BTCB und WBNB zu erhalten. Da die Liquiditätsmenge größer ist, als der Angreifer haben sollte, wird der Angreifer Gewinne erzielen.

Lektionen

Neben dem Reentrancy-Problem ist das Fehlen der Verifizierung der übergebenen Token eine der Hauptursachen. Wir haben andere Fälle mit ähnlichen Problemen gesehen, wie im Visor-Fall und im Coin98-Fall.

Über BlockSec

BlockSec ist ein führendes Unternehmen für Blockchain-Sicherheit, das 2021 von einer Gruppe weltweit renommierter Sicherheitsexperten gegründet wurde. Das Unternehmen widmet sich der Verbesserung der Sicherheit und Benutzerfreundlichkeit für die aufstrebende Web3-Welt, um deren Massenadoption zu fördern. Zu diesem Zweck bietet BlockSec Dienstleistungen für die Sicherheitsprüfung von Smart Contracts und EVM-Ketten, die Phalcon-Plattform für die Sicherheit von Entwicklungen und die proaktive Abwehr von Bedrohungen, die MetaSleuth-Plattform für die Verfolgung und Untersuchung von Geldern sowie die MetaSuites-Erweiterung für Web3-Entwickler, um effizient in der Krypto-Welt zu navigieren.

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

Offizielle Website: https://blocksec.com/

Offizielles Twitter-Konto: 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
Nicht alle Token sind gut: Schnelle Analyse des Paraluni-Angriffs