Zurück zum Blog

Wenn „SafeTransfer“ unsicher wird: Lehren aus dem QBridge-Sicherheitsvorfall

Code Auditing
28. Januar 2022
2 Min. Lesezeit

Am 28. Januar wurde die QBridge angegriffen und Vermögenswerte im Wert von etwa 80 Millionen USD wurden gestohlen. Nach der Analyse stellten wir fest, dass die Ursache im Code die Implementierung der Funktion safeTransfer (und safeTransferFrom) ist.

Die Ursache

Erstens verwendet das Projekt nicht die bekannte OpenZeppelin SafeERC20-Bibliothek für den Token-Transfer. Stattdessen implementierten sie eine Bibliothek namens SafeToken.

Zweitens prüft die Implementierung nicht, ob das Ziel ein gültiger Vertrag ist (oder ob es sich um eine Null-Adresse handelt).

Drittens gibt der Low-Level-Aufruf der EVM nicht "false" zurück, wenn der Zielvertrag Null ist. Dies widerspricht dem gesunden Menschenverstand der Entwickler.

Natürlich gibt es für den Vorfall auch andere Gründe, z. B. dass die Null-Adresse in die Whitelist aufgenommen wurde. Wenn der Code jedoch diesen Spezialfall ordnungsgemäß behandeln würde, wäre er nicht anfällig.

Übrigens: Es gibt andere Projekte, die ähnlichen Code verwenden. Diese könnten für das gleiche Problem anfällig sein.

Experiment

Um den dritten Grund zu bestätigen, dass die VM nicht "false" zurückgibt, wenn der Zielvertrag Null ist, haben wir einen Testvertrag entwickelt, wie unten dargestellt.

Die Ausführung von TestSafeTransfer.test() wird nicht zurückgesetzt (revert).

Lektionen und wie man das Risiko mindert

Wir schlagen vor:

  • Verwenden Sie etablierte Bibliotheken, anstatt das Rad neu zu erfinden, es sei denn, Sie haben einen sehr, sehr guten Grund dafür.
  • Überprüfen Sie den Kontostand vor und nach dem Asset-Transfer, um sicherzustellen, dass die Anzahl der übertragenen Assets den Erwartungen entspricht. Dies kann auch Probleme mit Deflations- und Inflationstokens vermeiden.

Über BlockSec

BlockSec ist ein bahnbrechendes Blockchain-Sicherheitsunternehmen, das 2021 von einer Gruppe weltweit anerkannter Sicherheitsexperten gegründet wurde. Das Unternehmen engagiert sich dafür, die Sicherheit und Benutzerfreundlichkeit für die aufstrebende Web3-Welt zu verbessern, um deren Masseneinführung zu erleichtern. Zu diesem Zweck bietet BlockSec Sicherheitsaudit-Dienste für Smart Contracts und EVM-Chains, die Phalcon-Plattform für die Sicherheitsentwicklung und proaktive Bedrohungsabwehr, die MetaSleuth-Plattform für die Nachverfolgung und Untersuchung von Geldern sowie die MetaDock-Erweiterung für Web3-Entwickler an, um effizient in der Kryptowelt zu navigieren.

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

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
Wenn „SafeTransfer“ unsicher wird: Lehren aus dem QBridge-Sicherheitsvorfall