Zurück zum Blog

Kurze Analyse der Profanity-Tool-Schwachstelle

Code Auditing
21. September 2022
4 Min. Lesezeit

Wintermute wurde mit einem Verlust von über 160 Millionen Dollar ausgenutzt. Die Grundursache ist, dass der private Schlüssel des Wintermute-Projekts aufgrund einer Schwachstelle im Profanity-Tool kompromittiert wurde, das von Wintermute zur Generierung des privaten Schlüssels und des Ethereum-Kontos verwendet wurde.

In diesem Blog beschreiben wir die Grundursache der Schwachstelle in Profanity und wie die Schwachstelle ausgenutzt werden kann.

Die Ethereum-Adresse

Die Ethereum-Adresse wird aus dem Keccak-256-Hash des öffentlichen Schlüssels generiert und als Hexadezimalzahl dargestellt. Der öffentliche Schlüssel wird mithilfe der elliptischen Kurvenmultiplikation aus dem privaten Schlüssel generiert, was umkehrbar ist. Wir können einen öffentlichen Schlüssel aus einem privaten Schlüssel erhalten. Ohne Brute-Force können wir jedoch keinen privaten Schlüssel erhalten, wenn wir einen öffentlichen Schlüssel haben. Beachten Sie, dass die Länge des privaten Schlüssels 256 Bit beträgt. Bei einem gegebenen öffentlichen Schlüssel benötigen Sie maximal 2^256 Berechnungen, um den entsprechenden privaten Schlüssel zu finden.

Kurz gesagt, die Beziehung zwischen dem privaten/öffentlichen Schlüssel und der Ethereum-Adresse wird in der folgenden Abbildung gezeigt.

Die Grundursache der Schwachstelle

Der Zweck von Profanity ist es, eine spezielle Ethereum-Adresse zu finden, z. B. die ersten fünf Ziffern der Adresse sind Null. Zu diesem Zweck wendet Profanity die folgende Methode an.

Die detaillierte Implementierung kann leicht abweichen.

Beachten Sie, dass die Länge von private_key 256 Bit beträgt (2^256 verschiedene Werte). Es gibt jedoch eine Schwachstelle bei der Generierung des privaten Schlüssels. Insbesondere ist der Seed (in Schritt 1) nur 32 Bit lang, und der Prozess vom Seed in Schritt 1 zum private_key in Schritt 2 ist deterministisch.

Welche Sicherheitsauswirkungen hat dies?

Wie man ausnutzt

Nehmen wir an, wir haben eine Ethereum-Adresse mit vielen wertvollen Vermögenswerten. Wenn wir ihren privaten Schlüssel erhalten können, können wir dieses Konto besitzen und alle Vermögenswerte transferieren. Wie bereits erläutert, müssen wir jedoch den gesamten 2^256-Raum mit Brute-Force durchsuchen, um den privaten Schlüssel zu finden, was fast unmöglich ist.

Aber was ist, wenn die Ethereum-Adresse mit dem Profanity-Tool generiert wurde? Wir können mit Brute-Force die Schwierigkeit, den privaten Schlüssel zu finden, erheblich reduzieren. Wir müssen nur den Seed von 0 bis 2^32-1 angeben und den gleichen Prozess wiederholen, bis wir den privaten Schlüssel finden, der denselben öffentlichen Schlüssel (und dieselbe Ethereum-Adresse) generieren kann. Da wir nur höchstens 2^32 * loop_threashold Berechnungen benötigen. Dies ist in ein paar Stunden oder Tagen/Wochen machbar, wenn wir einen leistungsstarken GPU-Cluster haben.

Dies ist jedoch immer noch ein optimierter Algorithmus. Weitere Details finden Sie im Artikel von Slowmist.

Fazit

Die Sicherung eines DeFi-Projekts ist keine leichte Aufgabe. Neben der Code-Prüfung sollten wir unserer Meinung nach proaktiv den Projektstatus überwachen und den Angriff blockieren, bevor er überhaupt stattfindet.

Über BlockSec

BlockSec ist ein führendes Blockchain-Sicherheitsunternehmen, das 2021 von einer Gruppe weltweit anerkannter Sicherheitsexperten gegründet wurde. Das Unternehmen engagiert sich für die Verbesserung der Sicherheit und Benutzerfreundlichkeit der aufstrebenden Web3-Welt, um deren breite Akzeptanz zu fördern. Zu diesem Zweck bietet BlockSec Sicherheitsauditing-Dienste für Smart Contracts und EVM-Chains, die Phalcon-Plattform für die Sicherheitsentwicklung und die proaktive Blockierung von Bedrohungen, die MetaSleuth-Plattform für die Verfolgung und Untersuchung von Geldern sowie die MetaSuites-Erweiterung für Web3-Entwickler, die sich effizient in der Krypto-Welt bewegen.

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/

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