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



