Sachen zu wissen: |
– Die Seed-Generierung des Trust Wallet war fehlerhaft, die Gesamtentropie betrug nur 32 Bit. Wir haben eine Datei erstellt, die alle möglichen Samen enthält.
– Glücklicherweise hat Ledger Donjon die Schwachstelle sehr schnell entdeckt und wahrscheinlich einen der größten Hackerangriffe im Krypto-Ökosystem vermieden. |
Am 14. November 2022 kündigte Trust Wallet, eine weit verbreitete Software-Wallet, die Veröffentlichung seiner Browser-Erweiterung an. Es ermöglicht den Zugriff auf digitale Assets auf mehreren Blockchains direkt über den Browser und ist eine lang erwartete Ergänzung zu den bestehenden iOS- und Android-Apps.
Der Ledger Donjon hat kürzlich eine kritische Schwachstelle in dieser Browser-Erweiterung entdeckt, die es einem Angreifer ermöglicht, alle Vermögenswerte aller mit dieser Erweiterung erstellten Wallets zu stehlen, ohne dass ein Benutzereingriff erforderlich ist. Wenn man die Adresse eines Kontos kennt, ist es möglich, sofort seinen privaten Schlüssel zu berechnen und dann auf alle seine Gelder zuzugreifen. Nachfolgend finden Sie Einzelheiten zur Sicherheitslücke, wie Ledger Donjon sie entdeckt hat, welche Auswirkungen sie im Laufe der Zeit hatte, eine Schätzung der gefährdeten Vermögenswerte und wie Trust Wallet reagierte, um sie zu beheben. Aber fangen wir damit an, uns an die Grundlagen zu erinnern.
Wie Wallets erstellt werden
Die Erzeugung von Entropie ist schwierig. Als Wissenschaftler schätzen wir die Reproduzierbarkeit und die Fähigkeit, Phänomene anhand von Ursache-Wirkungs-Prinzipien erklären zu können. Im Allgemeinen ist es also schwierig, Zufälligkeiten zu erzeugen. Darüber hinaus ist es schwierig zu beweisen, dass Zufallszahlen korrekt sind, und ein schlechter, aber nicht endgültig fehlerhafter Zufallszahlengenerator kann den Beobachter leicht täuschen. Für eine gute Zufälligkeit benötigen wir eine gleichmäßige Verteilung von Bits und Bytes (und sogar die Größe aller Chunks) und Unvorhersehbarkeit. Für einen Beobachter einer Sequenz muss es unmöglich sein, Informationen über den nächsten zu generierenden Teil der Sequenz zu haben.
Da diese Eigenschaften unglaublich schwer zu erreichen sind, versucht der Kryptowährungsraum, sich so weit wie möglich auf den Zufall zu verlassen – aber wir brauchen ihn dennoch in einer Phase: wenn wir eine neue Wallet erstellen.
Sie sind wahrscheinlich bereits mit Ihrer Mnemonik vertraut, den 12 bis 24 englischen Wörtern, mit denen Sie Ihr Wallet sichern können (falls nicht, können Sie es überprüfen). Hauptbuchakademie Artikel zu genau diesem Thema).
Diese Mnemonik kodiert 16 bis 32 Bytes Entropie, so die BIP 39-Standard – Die Qualität dieser Entropie ist von entscheidender Bedeutung, da sie der Ausgangspunkt aller Schlüssel ist, die von Ihrem Wallet in allen Ketten verwendet werden, und zwar nach einem deterministischen Ableitungsprozess, der von definiert wird BIP 32 und BIP 44 Standards.
Dieses hierarchisch-deterministische Schema ist heute nahezu allgegenwärtig, wenn man bedenkt, wie einfach es Benutzern das Erstellen einer Sicherung einer Unendlichkeit von Schlüsseln und seiner Portabilität ermöglicht (obwohl BIP 39 „einstimmig von der Implementierung abgeraten“ wurde). Signer-Roaming ist eine leistungsstarke Funktion – wenn Ihr Lieblings-Wallet ausfällt oder enttäuschend ist, können Sie einfach Ihre Mnemonik (oder noch besser Ihr Ledger-Gerät) mitnehmen, zu einem anderen wechseln, Ihre finanzielle Freiheit behalten und die Auswirkungen der Ausfallzeit begrenzen.
Aber auch hier ist eine einwandfreie Entropiequelle erforderlich.
Übersicht über die Sicherheitsanfälligkeit
Trust Wallet verlässt sich auf Vertrauen Sie Wallet Core, eine plattformübergreifende Bibliothek, die kryptografische Wallet-Funktionen auf niedriger Ebene für viele Blockchains implementiert. Es war auf Mobilgeräte ausgerichtet, zielt aber seit April 2022 auch auf Wasm ab (siehe #2132).
Während der Großteil des Trust Wallet Core portabel ist, sind einige Module und Funktionen sehr zielspezifisch. Dies gilt insbesondere für den Teil der sicheren Zufallsgenerierung, der zur Erstellung von kryptografischem Material wie privaten Schlüsseln und Mnemoniken für HD-Wallets verwendet wird. Jede Implementierung nutzt den vom Betriebssystem angebotenen Pseudozufallszahlengenerator (PRNG):
- Für iOS-
SecRandomCopyBytes
wird eingesetzt. - Für Android wird die Entropie durch eine Instanz von bereitgestellt
java.security.SecureRandom
.
Dies ist normalerweise eine gute Vorgehensweise, da solche Grundelemente sicher sein sollen.
Wasm Backend
Es gibt einen Unterschied zum Wasm-Ziel. Dieses Modul kann in mehreren Umgebungen ausgeführt werden, beispielsweise in jedem Browser, der Wasm oder Node.js unterstützt. Diese Plattformen bieten kein gemeinsames starkes PRNG und man kann von diesen Umgebungen aus keinen Zugriff auf die „klassischen“ Systemschnittstellen erhalten. Beispielsweise konnte ein Wasm-Modul, das in Chrome für Linux ausgeführt wird, nicht direkt lesen /dev/urandom
.
Um diesem Problem entgegenzuwirken, wurde ein spezieller sogenannter „sicherer Zufallsgenerator“ implementiert #2240. Es basiert auf einer in emscripten erstellten PR (siehe PR #12240 in emscripten) präzise geschrieben, um ein Lesen zu vermeiden /dev/urandom
.
Laut Autor:
Was wir hier tun, ist einfach: Wir verpacken std::random_device
mit std::mt19937
und geben Sie einen zufälligen uint32-Wert zurück, inspiriert von emscripten-core/emscripten#12240.
Hier gibt es ein wichtiges Problem, das zu einer kritischen Schwachstelle im Wallet-Core für Wasm und für alle darauf basierenden Produkte führt: Der verwendete PRNG ist ein Mersenne Twister und sollte nicht für kryptografische Zwecke verwendet werden. Darüber hinaus verwendet die spezialisierte Version mt19937 einen einzelnen 32-Bit-Wert als Eingabe-Seed.
Welche Konsequenzen ergeben sich hier? Das benutzerdefinierte Random-Modul für Wasm implementiert zwei Funktionen: random32
das einen 32-Bit-Zufallswert ausgibt, und random_buffer
die einen Puffer beliebiger Größe mit zufälligen Daten füllt. Im Wallet Core-Projekt werden diese Funktionen ausschließlich von trezor-crypto verwendet, der von Trezor entwickelten kryptografischen Bibliothek, um eine sichere Kryptografie auf ihren Hardware-Wallets zu gewährleisten.
Sehen wir uns nun an, wie HD-Wallets generiert werden:
- Einstiegspunkt ist HDWallet. Es erfordert eine gewisse Stärke und eine Passphrase, um es später zu schützen:
https://github.com/trustwallet/wallet-core/blob/3.1.0/src/HDWallet.cpp#L45
Diese Funktionen rufen dann auf mnemonic_generate
So erstellen Sie eine BIP-39-Mnemonik:
https://github.com/trustwallet/wallet-core/blob/3.1.0/trezor-crypto/crypto/bip39.c#L55
mnemonic_generate
Anrufe random_buffer
, der einen zufälligen Puffer ausgibt, der mit einem Mersenne-Twister-PRNG gefüllt wird, dessen Instanz gerade geseed wurde:
https://github.com/trustwallet/wallet-core/blob/3.1.0/wasm/src/Random.cpp#L19
Da der Seed nur 32 Bit groß ist, erlaubt die Wasm-Version von Wallet-Core nur die Erstellung von 2^32 (~4 Milliarden) möglichen Mnemonics. Alle diese Mnemoniken können in wenigen Stunden auf einem einzigen Computer erstellt werden.
Von dort aus kann ein Angreifer:
- Berechnen Sie alle Seeds, privaten Schlüssel und dann die Adressen jeder Kryptowährung, die von Trust Wallet verwaltet wird.
- Scannen Sie die zugehörigen Blockchains, um alle verwendeten Adressen zu extrahieren.
- Berechnen Sie die Schnittmenge, um alle Adressen der von Trust Wallet für Wasm erstellten Wallets zu erhalten und deren Gelder zu stehlen.
Die Ausführung eines solchen Angriffs dauert viel mehr als ein paar Stunden, ist aber mit ein paar GPUs in weniger als einem Tag machbar (siehe medium.com/@johncantrell97/how-i-checked-over-1-trillion-mnemonics-in-30-hours-to-win-a-bitcoin für eine Kostenschätzung. Der Angriff ist hier 256-mal einfacher.
Anwendung zur Trust Wallet-Browsererweiterung
Das Trust Wallet-Browsererweiterung ist eine Erweiterung für Chromium-basierte Browser. Es ist eindeutig ein Konkurrent von MetaMask und wird als „sichere Multi-Chain-Krypto-Wallet und Gateway zu Tausenden dezentralen Web3-Anwendungen (dApps)“ bezeichnet.
Die Erweiterung ist eine Closed-Source-Erweiterung, ihr Code kann jedoch leicht analysiert werden. Es basiert auf der anfälligen Wasm-Implementierung von Trust Wallet Core.
Wenn eine Wallet erstellt wird, erstellt die Erweiterung eine 12-Wörter-Mnemonik aus einem zufälligen 128-Bit-Seed. Mnemonik wird auf diese Weise generiert:
HDWallet.create
ist der automatisch generierte Wasm-Wrapper für den oben beschriebenen HDWallet-Konstruktor. Damit sind die Verwundbaren gemeint random_buffer
Funktion wird verwendet, sodass mit einem Brute-Force-Angriff Mnemoniken aus der Benutzeradresse abgerufen werden können.
Diese Erweiterung verwaltet die folgenden Assets: AVAX, BNB, ETH, MATIC, SOL und TWT.
- Die Adressen sind für ETH, BNB, MATIC, AVAX und TWT identisch. Dies sind Standard-Ethereum-Adressen, die denselben Ableitungspfad teilen (m/44'/60'/0'/0/0).
- Solana verwendet einen anderen Ableitungspfad: m/44'/501'/0'/0'.
Um das Geld aller Benutzer der Trust Wallet-Erweiterung abzuschöpfen, kann der Angreifer:
- Berechnen und speichern Sie alle möglichen Mnemoniken, dann den privaten Ethereum-Schlüssel und die Ethereum-Adresse, die von dieser Erweiterung generiert werden können.
- Sammeln Sie alle verwendeten Ethereum-Adressen, die seit der ersten Veröffentlichung der Trust Wallet-Browsererweiterung erstellt wurden, und speichern Sie sie lokal.
- Führen Sie eine Suche in der Adressdatenbank durch.
- Leeres Wallet mit dem privaten Schlüssel, falls die Adresse verwendet wurde.
Diese Schritte können für jede Kette reproduziert werden. Wir erläutern nun, wie Ledger Donjon diesen Angriff auf Ethereum und die Binance Smart Chain umgesetzt hat, natürlich ohne die Wallets zu belasten.
Angriff auf Trust Wallet
Die Sicherheitslücke ermöglicht es einem Angreifer, eine Mnemonik aus jeder Adresse einer von der Browsererweiterung erstellten Wallet zu berechnen. Dazu muss man eine Zuordnung zwischen den möglichen Mnemoniken und der resultierenden Adresse berechnen.
Generieren aller Adressen, die die Trust Wallet-Erweiterung erstellen kann
Basierend auf der zuvor erläuterten Schwachstelle im PRNG ist es möglich, alle Adressen (und die zugehörigen privaten Schlüssel) aufzuzählen, die die Trust Wallet-Erweiterung erstellen kann. Meine Idee war, jede mögliche Adresse in einer großen Tabelle zu speichern. Anschließend kann man anhand einer Liste von Adressen, die aus der Ethereum-Blockchain extrahiert wurden, prüfen, ob einige Adressen in dieser Tabelle vorhanden sind. Wenn ja, kann sein privater Schlüssel berechnet werden.
Die Ableitung von der Entropie zur Mnemonik und dann zur Ethereum-Adresse verwendet den Standard-Ableitungsmechanismus BIP-32, BIP-39und der BIP-44 Kontohierarchie.
Die erste Schwierigkeit bestand darin, alle diese Adressen aufzuzählen. Die Transformation vom PRNG-Seed zur Adresse erfordert die folgenden Schritte:
- Entropieerzeugung: Initialisieren Sie den Mersenne Twister mit dem Startwert und rufen Sie ihn 16 Mal auf, um die anfängliche Entropie zu sammeln.
- Entropie zur Mnemonik: ein SHA-256 zur Berechnung der endgültigen Prüfsumme, eingebettet im letzten Wort.
- Mnemonik zum Aussäen: Mnemonik wird mit PKBDF512-HMAC-SHA2 mit 512 Iterationen in einen 2048-Bit-Seed umgewandelt. Es gibt zwei SHA-2-Berechnungen pro Iteration, sodass die Gesamtkosten 512 SHA-4096-Berechnungen betragen.
- Seed zum BIP-32-Hauptschlüssel: 1 HMAC SHA-512 kostet 2 SHA-512-Berechnungen.
- Hauptschlüssel zum privaten Schlüssel von Ethereum: Hauptschlüssel wird auf m/44'/60'/0'/0/0 abgeleitet. Dies erfordert 3 Ableitungen von gehärteten untergeordneten privaten Schlüsseln und 2 Ableitungen von normalen untergeordneten Schlüsseln.
- Jede Ableitung eines gehärteten untergeordneten privaten Schlüssels erfordert eine HMAC SHA-512-Berechnung (2 SHA-512) und eine Addition auf secp256k1.
- Jede normale Ableitung eines privaten untergeordneten Schlüssels erfordert eine Ableitung eines privaten untergeordneten Schlüssels und eine Skalarmultiplikation auf secp256k1, um den in der Eingabe bereitgestellten privaten Schlüssel in einen öffentlichen Schlüssel umzuwandeln.
- Privater Ethereum-Schlüssel zur Adresse: Dieser letzte Schritt erfordert eine Konvertierung des privaten in den öffentlichen Schlüssel, also eine weitere Skalarmultiplikation und einen Keccak-256-Hash.
Die Gesamtkosten für alle diese Schritte betragen dann:
- Initialisierung und 16 Aufrufe an Mersenne Twister
- 1 SHA-256
- 4108 SHA-512
- 5 Punkte Ergänzungen
- 2 Skalarmultiplikationen auf secp256k1
Die teuersten Schritte sind die SHA-512-Berechnungen und die Skalarmultiplikationen. Um es kurz zu machen: Der gesamte Prozess zur Umwandlung des PRNG-Seeds in eine Ethereum-Adresse ist langsam. Die Ausführung einer solchen Berechnung auf einer einzelnen CPU würde Monate dauern, auf den im Donjon verfügbaren CPUs wahrscheinlich mehrere Wochen. Also haben wir es mit OpenCL implementiert (basierend auf BIP39 Solver-GPU) und ließ es auf 2 NVIDIA GeForce GTX 1080 Ti GPUs laufen.
Die Ausgabe dieses Tools ist eine große Datei, die alle Ethereum-Adressen enthält, die die Erweiterung generieren kann. Da es 2^32 mögliche Seeds gibt und jede Adresse 20 Byte lang ist, benötigt diese Tabelle 80 GB.
Von da an sind Tabellensuchen langsam: Um eine Adresse zu finden, müsste man diese ganze große Tabelle durchlaufen.
Um diese Suchvorgänge zu beschleunigen, haben wir die Tabelle entsprechend dem ersten Byte der Ethereum-Adresse in 256 kleinere Tabellen aufgeteilt. Jede Tabelle enthält Paare von PRNG-Seeds und die daraus resultierende Ethereum-Adresse.
Um eine schnelle Suche in jeder Tabelle durchführen zu können, haben wir sie schließlich nach der Ethereum-Adresse sortiert. Es ist jetzt möglich, binäre Suchvorgänge in diesen Tabellen durchzuführen: Suchvorgänge in diesen sortierten Tabellen sind sehr kostengünstig.
Um etwas Speicherplatz zu sparen, haben wir den PRNG-Seed und nur die ersten 8 Bytes jeder Ethereum-Adresse gespeichert. Die letzten 12 Bytes sind nicht notwendig, da Kollisionen in meinem Anwendungsfall vernachlässigbar sind. Jeder Eintrag benötigt dann 12 Bytes. Ganze Tabellen belegen dann 48 GB.
Hier sind die Zeiten für jeden Schritt:
Anhand dieser Tabellen ist es möglich, die zur Generierung einer Adresse verwendeten Mnemoniken sofort abzurufen. Um die Auswirkungen der Sicherheitslücke einzuschätzen, fragte mich Binance nach der Mnemonik von drei von ihnen bereitgestellten Testadressen. Hier ist das Ergebnis:
Das Abrufen der drei Mnemoniken und privaten Schlüssel dauerte einige hundert Millisekunden. Laut unseren Tests, Der Prozess ist tatsächlich schnell genug, um alle Transaktionen auf der Ethereum-Blockchain in Echtzeit zu verarbeiten und alle anfälligen Adressen zu zerstören, sobald sie verwendet werden. Durch die Zwischenspeicherung bereits getesteter Adressen gilt das Gleiche auch für andere Blockchains wie BSC. In diesem Angriffsszenario könnte man Transaktionen überwachen, wenn sie den Mempool erreichen, und private Schlüssel des Absenders oder Empfängers in Echtzeit berechnen.
Auflistung aller verwendeten Ethereum-Adressen
Wir möchten die tatsächliche Anzahl der anfälligen Geldbörsen und deren Saldo schätzen. Das klingt einfach, da alle Transaktionen öffentlich sind und daher alle Adressen in der Blockchain verfügbar sind. Es besteht jedoch keine Möglichkeit, die Liste der verwendeten Adressen direkt abzurufen.
Wir haben eine Methode implementiert, die jeden Block der Ethereum-Blockchain durchläuft. Wir haben die Absender- und Empfängeradressen aller Transaktionen sowie die Adressparameter jedes Aufrufs zu ERC-20-Verträgen extrahiert.
Beachten Sie, dass mit dieser Methode nur verwendete Wallets erkannt werden können: Einige anfällige Wallets, die keine Vermögenswerte erhalten haben, haben nie mit der Blockchain interagiert.
Wir haben die Ethereum-Blockchain zwischen den Blöcken 14820000 und 16096000 gescannt. Block 14820000 wurde am 21. Mai 2022 erstellt, also kurz vor der Pull-Anfrage, die den anfälligen Code in Trust Wallet Core hinzufügte. 16096000 war der letzte Block, als ich diesen Beitrag schrieb.
Öffentliche Knoten scheinen eine Ratenbegrenzung zu haben, daher habe ich mehrere öffentliche Knoten parallel abgefragt, um innerhalb mehrerer Dutzend Stunden insgesamt 147,910,120 Adressen zu sammeln. Nachdem Duplikate entfernt wurden, erhalten wir eine Liste mit 32,613,317 eindeutigen Adressen.
Die gleiche Methode wurde für Binance Smart Chain verwendet. Öffentliche BSC-Knoten wurden gescannt.
Schätzung der Anzahl anfälliger Konten
Schließlich wurde ein Tool geschrieben, um zu testen, ob eine Adresse durch die Trust Wallet-Erweiterung erstellt wurde. Es führt eine Suche in den generierten Tabellen durch, ruft den PRNG-Seed ab und berechnet daraus die Mnemonik, den privaten Ethereum-Schlüssel und die zugehörige Adresse.
Die Berechnung ist sehr schnell. Kandidatenadressen wurden zuvor sortiert, um E/A zu minimieren und eine verschachtelte binäre Suche durchzuführen. Die Suche nach den 32 Millionen Adressen dauert mit einem einfachen Python-Skript nur wenige Minuten.
Hier ist ein Beispiel mit einer Adresse aus a öffentlicher Tweet Antwort auf die Ankündigung der Trust Wallet-Erweiterung. Ich habe dies als Beispiel genommen, da diese Adresse vorhanden ist niemals benutzt worden, sodass Benutzergelder nicht gefährdet sind.
Das Tool wurde mit dem oben beschriebenen Datensatz von 1,873,720 ausgeführt. Das Testen aller Adressen und die Berechnung der privaten Schlüssel der anfälligen Konten dauerte 4 Minuten und 22 Sekunden und ist daher sehr kostengünstig.
Mit dieser Liste anfälliger privater Schlüssel ist es möglich, alle entsprechenden Adressen und deren Guthaben aufzulisten und sie natürlich zu entleeren … Während unserer Untersuchungen waren irgendwann rund 30 Millionen US-Dollar gefährdet, aber wir haben nicht alle Ketten und Token im Laufe der Zeit überwacht .
Remediation
2022, 17. November
Die Sicherheitslücke wurde Binance über ihre gemeldet Bug Bounty Programm am 2022. November 17.
Um die Schwachstelle zu bestätigen, hat Binance uns drei Adressen geschickt und sie gebeten, Mnemoniken bereitzustellen:
Können Sie bitte versuchen, Ihr Tool auszuführen und Mnemoniken für diese drei Adressen bereitzustellen?
Wallet 1 – 0xdf6D9547e163D5E7eafBe2FeB24Bfa12A4C913C0
Wallet 2 – 0xE1E0580cb5eA0c0FD034FF2cdfc872ce4493676C
Wallet 3 – 0x02b2Ae981b138F066344774A2AD75225A046c377
Vielen Dank!
Mit freundlichen Grüßen.
Sobald alle möglichen Adressen vorberechnet wurden, ist das Abrufen der Mnemonik von einer Adresse so einfach wie das Nachschlagen in einer Tabelle mit 4 Milliarden Einträgen. Die drei Mnemoniken wurden in 0.2 Sekunden abgerufen:
2022, 21. November
Ein paar Tage später, am 21. November, das Trustwallet-Team öffentlich engagiert auf Github der Fix, der die Generierung neuer fehlerhafter Seeds vermeidet. Wir hatten große Angst, dass jemand es bemerken und die Sicherheitslücke ausnutzen würde.
2022 November
Das Trustwallet-Team hat die App aktualisiert, um ihre Benutzer zu warnen, sie daran zu hindern, neue fehlerhafte Seeds zu generieren, und die empfangenden Flows entfernt.
Von dort aus überwachten wir die Situation und die gefährdeten Gelder. Nur wenige Tage nach der Veröffentlichung dieser anfälligen Wallets waren rund 30 Millionen US-Dollar in Gefahr.
2023, März
Das Trustwallet-Team gewährte uns das höchste Kopfgeld, das es bietet: 100 US-Dollar
2023, 22. April
Nachdem das Trustwallet-Team monatelang darauf gewartet hatte, dass Benutzer ihre Gelder migrieren, deckte es die Schwachstelle auf und schrieb eine Obduktion. Derzeit gibt es immer noch Wallets mit Restgeldern, die gestohlen werden können (ca. 100 US-Dollar). Trust Wallet versprach die Rückerstattung gestohlener Gelder.
Zusammenfassung
Diese Sicherheitslücke veranschaulicht das Worst-Case-Szenario eines Krypto-Bugs – Konten sind für immer kompromittiert.
Gute Zufälligkeit zu erzeugen ist eine gewaltige Aufgabe – Ledger-Geräte basieren auf dedizierter Siliziumlogik in unseren zertifizierten Smartcard-Chips, die seit 40 Jahren der Goldstandard für sichere Branchen sind, um qualitativ hochwertige Zufälligkeit und Manipulationssicherheit zu gewährleisten.
Angesichts der Komplexität der Kontaktaufnahme mit den Besitzern dieser Konten und der Möglichkeit, diese kompromittierten Konten auf allen möglichen Software- und Hardware-Wallets zu verwenden, hat TrustWallet gute Arbeit geleistet, um das Risiko für seine Benutzer zu reduzieren.
In (sehr) (naher) Zukunft werden Bots wahrscheinlich darum kämpfen, die ersten zu sein, die an diese Adressen eingezahlte Gelder stehlen, ähnlich wie bei Was ist in der Vergangenheit mit Brain Wallets passiert?.
Besonderer Dank geht an Jean-Baptiste Bédrune für die Rettung der Welt. Nur wenige Tage nach der Veröffentlichung der Trust Wallet-Erweiterung standen fast 30 Millionen US-Dollar auf dem Spiel. Ein Albtraumszenario hätte eintreten können, wenn ein Angreifer die Schwachstelle nach ein paar Monaten entdeckt hätte.
Bei unseren Untersuchungen ist uns außerdem aufgefallen, dass einige Adressen angreifbar waren, obwohl sie lange vor der Veröffentlichung des Trust Wallet generiert wurden. Das bedeutet wahrscheinlich, dass diese Sicherheitslücke in einigen anderen Wallet-Implementierungen besteht, was besorgniserregend ist …
- SEO-gestützte Content- und PR-Distribution. Holen Sie sich noch heute Verstärkung.
- PlatoAiStream. Web3-Datenintelligenz. Wissen verstärkt. Hier zugreifen.
- Die Zukunft prägen mit Adryenn Ashley. Hier zugreifen.
- Kaufen und verkaufen Sie Anteile an PRE-IPO-Unternehmen mit PREIPO®. Hier zugreifen.
- Quelle: https://www.ledger.com/blog/funds-of-every-wallet-created-with-the-trust-wallet-browser-extension-could-have-been-stolen
- :hast
- :Ist
- :nicht
- $UP
- 1
- 12
- 13
- 14
- 15%
- 2022
- 23
- 24
- 30
- 39
- 40
- 49
- 8
- a
- Fähig
- oben
- Zugang
- Nach
- Konto
- Trading Konten
- Erreichen
- berührt das Schneidwerkzeug
- hinzugefügt
- Zusatz
- Adresse
- Adressen
- Nach der
- aufs Neue
- Alle
- erlauben
- Zulassen
- erlaubt
- bereits
- ebenfalls
- an
- und
- androide
- angekündigt
- Ankündigung
- Ein anderer
- jedem
- App
- Anwendungen
- Anwendungen (DApps)
- Apps
- April
- SIND
- um
- Artikel
- AS
- Details
- damit verbundenen
- At
- Attacke
- Autor
- verfügbar
- AVAX
- vermeiden
- vermieden
- Vermeidung von
- Sicherungskopie
- Badewanne
- Balance
- Guthaben
- basierend
- Grundlagen
- BE
- war
- Bevor
- Sein
- unten
- Besser
- zwischen
- Big
- Größte
- Milliarde
- Binance
- Binance-SmartChain
- Beep
- Blockieren
- Blockchain
- blockketten
- Blockiert
- bnb
- Bots
- Kopfgeld
- Gehirn
- gebrandmarkt
- Break
- Browser
- Browsern
- Brute-Force-
- B
- puffern
- Fehler
- aber
- by
- rufen Sie uns an!
- Aufrufe
- CAN
- Kandidat
- kann keine
- Häuser
- Zertifzierte
- Kette
- Ketten
- billig
- aus der Ferne überprüfen
- der
- Pommes frites
- Chrome
- Code
- gemeinsam
- Wettbewerber
- Komplexität
- Kompromittiert
- Berechnung
- Berechnungen
- Berechnen
- Computer
- Computing
- Schichtannahme
- Folgen
- Berücksichtigung
- enthält
- Verträge
- Umwandlung (Conversion)
- verkaufen
- umgewandelt
- Kernbereich
- und beseitigen Muskelschwäche
- Dazugehörigen
- Kosten
- könnte
- Paar
- Kurs
- CPU
- erstellen
- erstellt
- schafft
- kritischem
- Cross-Plattform-
- Krypto
- Krypto-Ökosystem
- Krypto Brieftasche
- kryptowährung
- kryptographisch
- Geheimschrift
- Original
- DApps
- technische Daten
- Datenbase
- Tag
- Tage
- dezentralisiert
- Dezentrale Anwendungen
- gewidmet
- definiert
- zeigen
- hinterlegt
- Abgeleitet
- beschrieben
- Trotz
- Detail
- detailliert
- Details
- erkannt
- entwickelt
- Gerät
- Geräte
- DID
- Unterschied
- anders
- schwer
- Schwierigkeit
- digital
- Digitale Assets
- Direkt
- entmutigt
- entdeckt
- Verteilung
- do
- Ausfallzeit
- Dutzend
- abtropfen
- Duplikate
- im
- jeder
- einfacher
- leicht
- Einfache
- Ökosystem
- eingebettet
- Englisch
- genug
- gewährleisten
- Eintrag
- Umgebungen
- ERC-20
- schätzen
- ETH
- Astraleum
- Ethereum Blockchain
- Sogar
- Jedes
- Beispiel
- ausschließlich
- vorhandenen
- existiert
- teuer
- Erklären
- erklärt
- Ausnutzen
- Erweiterung
- Extrakt
- scheitert
- vertraut
- FAST
- Favorit
- Merkmal
- wenige
- Kampf
- Reichen Sie das
- gefüllt
- Finale
- Revolution
- Finanzielle Freiheit
- Ende
- Vorname
- Fixieren
- fehlerhaft
- Fließt
- Folgende
- Aussichten für
- Zwingen
- für immer
- Zum Glück
- gefunden
- Freiheit
- für
- Funktion
- Funktionalität
- Funktionen
- Mittel
- Zukunft
- Tor
- sammeln
- allgemein
- erzeugen
- erzeugt
- Erzeugung
- Generation
- Generator
- bekommen
- GitHub
- Gold
- Gold Standard
- gut
- GPUs
- erteilt
- Garantie
- hacken
- hätten
- Griffe
- passiert
- hart
- Hardware
- Hardware-Geldbörsen
- Hash-
- Haben
- daher
- hier
- Hierarchie
- High
- höchste
- STUNDEN
- Ultraschall
- aber
- HTTPS
- hundert
- i
- Idee
- identisch
- if
- zeigt
- sofort
- Impact der HXNUMXO Observatorien
- Implementierung
- umgesetzt
- implementiert
- wichtig
- unmöglich
- in
- unglaublich
- Branchen
- Unendlichkeit
- Information
- Anfangs-
- Varianten des Eingangssignals:
- inspirierte
- Instanz
- Interaktion
- Schnittstellen
- Überschneidung
- in
- Untersuchungen
- iOS
- IT
- Iteration
- Iterationen
- SEINE
- Job
- nur
- Behalten
- Wesentliche
- Tasten
- Wissen
- Wissend
- Nachname
- später
- neueste
- umwandeln
- Ledger
- links
- weniger
- Hebelwirkungen
- Bibliothek
- Gefällt mir
- wahrscheinlich
- LIMIT
- linux
- Liste
- örtlich
- Logik
- Lang
- lange Zeit
- lang erwartet
- Nachschlagen
- gemacht
- um
- MACHT
- viele
- Mapping
- Master
- Spiel
- Ihres Materials
- Matic
- max-width
- Kann..
- Mittel
- Mempool
- MetaMask
- Methode
- migriert
- Million
- Millionen
- Min.
- Minuten
- Mnemonik
- Modulen
- Module
- Überwachen
- überwacht
- Monat
- mehr
- Zudem zeigt
- vor allem warme
- viel
- mehrkettig
- sollen
- my
- In der Nähe von
- notwendig,
- Need
- Bedürfnisse
- hört niemals
- Neu
- weiter
- nicht
- Knoten
- Node.js
- Fiber Node
- normal
- vor allem
- Notiz..
- November
- jetzt an
- Anzahl
- Zahlen
- Nvidia
- erhalten
- aufgetreten
- of
- bieten
- angeboten
- on
- EINEM
- einzige
- die
- Betriebssystem
- or
- Andere
- UNSERE
- Möglichkeiten für das Ausgangssignal:
- übrig
- Gesamt-
- Besitzer
- Paare
- Parallel
- Parameter
- Teil
- passt
- Weg
- ausführen
- Plattformen
- Plato
- Datenintelligenz von Plato
- PlatoData
- Bitte
- Points
- Möglichkeit
- möglich
- Post
- größte treibende
- pr
- Praxis
- genau
- Gegenwart
- ziemlich
- verhindern
- vorher
- Grundsätze
- privat
- Private Key
- Private Schlüssel
- wahrscheinlich
- Aufgabenstellung:
- Prozessdefinierung
- Produkt
- Projekt
- versprochen
- immobilien
- Risiken zu minimieren
- die
- vorausgesetzt
- Öffentlichkeit
- public Key
- Zwecke
- Python
- Qualität
- schnell
- zufällig
- Zufälligkeit
- Bewerten
- erreichen
- echt
- Echtzeit
- erhalten
- Empfang
- kürzlich
- Reduzierung
- Grüße
- bezogene
- Release
- verlassen
- verbleibenden
- Entfernt
- Berichtet
- Anforderung
- erfordern
- erfordert
- Robustes Design
- Folge
- was zu
- Rückkehr
- Risiko
- Führen Sie
- Laufen
- safe
- gleich
- Speichern
- Einsparung
- Szenario
- Schema
- Wissenschaftler
- Suche
- Verbindung
- Sicherheitdienst
- sehen
- Samen
- Saatgut
- scheinen
- Absender
- geschickt
- Reihenfolge
- mehrere
- ,,teilen"
- Short
- sollte
- Silizium
- ähnlich
- Einfacher
- da
- Single
- Situation
- Größe
- langsam
- kleinere
- smart
- Intelligente Kette
- So
- Software
- SOL
- einige
- Jemand,
- Bald
- Quelle
- Raumfahrt
- Sprechen
- spezialisiert
- spezifisch
- Geschwindigkeit
- gespalten
- Stufe
- Standard
- Normen
- Anfang
- Schritt
- Shritte
- Immer noch
- gestohlen
- gestohlenes Geld
- speichern
- gelagert
- Stärke
- stark
- so
- Unterstützung
- vermutet
- Schalter
- System
- Tabelle
- angehen
- Nehmen
- nimmt
- Target
- Ziele
- Aufgabe
- Team
- Test
- Testen
- Tests
- als
- dank
- zur Verbesserung der Gesundheitsgerechtigkeit
- Das
- Die Grundlagen
- die Welt
- ihr
- Sie
- dann
- Dort.
- Diese
- vom Nutzer definierten
- fehlen uns die Worte.
- diejenigen
- Tausende
- nach drei
- Durch
- Zeit
- mal
- zu
- heute
- Tokens
- nahm
- Werkzeug
- Thema
- Gesamt
- Transaktionen
- Transformieren
- Transformation
- Trezor
- Vertrauen
- Geldbörse vertrauen
- versuchen
- XNUMX
- TWT
- allgegenwärtig
- einzigartiges
- eindeutige Adressen
- aktualisiert
- us
- -
- benutzt
- Mitglied
- Benutzergelder
- Nutzer
- Verwendung von
- gewöhnlich
- Wert
- Version
- sehr
- Verwundbarkeit
- Verwundbar
- Warten
- Wallet
- Börsen
- wurde
- Weg..
- we
- Web3
- Wochen
- waren
- wann
- welche
- während
- ganze
- deren
- weit
- werden wir
- mit
- ohne
- Word
- Worte
- weltweit wie ausgehandelt und gekauft ausgeführt wird.
- besorgt
- Wurst
- würde
- geschrieben
- Jahr
- U
- Ihr
- Zephyrnet