L'hack di Wintermute è stato replicato su un semplice laptop in meno di 48 ore sfruttando il difetto di profanità

Amber Group, un fornitore di tecnologia blockchain, ha replicato l'hacking di Wintermute in meno di 48 ore utilizzando un laptop di base. Un rapporto del Gruppo Ambra ha affermato,

“Abbiamo utilizzato un Macbook M1 con 16 GB di RAM per precalcolare un set di dati in meno di 10 ore ... Abbiamo terminato l'implementazione e siamo stati in grado di decifrare la chiave privata di 0x0000000fe6a514a32abdcdfcc076c85243de899b in meno di 48 ore."

I incidere è stato attribuito a vanity address creati con lo strumento Profanity, consentendo agli utenti di generare indirizzi ethereum specifici con caratteri particolari. Nel caso di Wintermute, l'indirizzo conteneva sette zeri iniziali. Gli indirizzi vanity consentono agli account di avere caratteri simili, semplificando l'identificazione degli indirizzi pubblici sulla blockchain.

Un altro impatto di un indirizzo Ethereum con diversi zeri iniziali è una riduzione delle tariffe del gas a causa dello spazio ridotto necessario per archiviare le informazioni sulla blockchain. Tuttavia, la rimozione di un elemento di casualità dal processo crittografico utilizzato per generare l'indirizzo comporta una riduzione della sicurezza.

L'analisi iniziale ha suggerito che ci sarebbero volute 1,000 GPU in soli 50 giorni per generare ogni possibile chiave privata per gli indirizzi che iniziano con sette zeri iniziali. Tuttavia, Amber Group ora afferma che può essere ottenuto utilizzando un solo laptop in meno di 48 ore.

La crittografia spiegata

profanità è uno strumento di generazione di indirizzi per l'ecosistema Ethereum. La base di codice può essere facilmente scaricata da GitHub ed è disponibile dal 2017. Tuttavia, l'attuale versione della base di codice include un avviso che sconsiglia l'uso dello strumento. Il creatore dello strumento, Giosuè, ha aggiunto il seguente messaggio al file readme.md il 15 settembre 2022.

“Sconsiglio vivamente di utilizzare questo strumento nel suo stato attuale. Questo repository sarà presto ulteriormente aggiornato con ulteriori informazioni su questo problema critico.

Inoltre, i file binari principali sono stati rimossi per impedire agli utenti di compilare la base di codice "per impedire un ulteriore uso non sicuro di questo strumento".

The Profanity utilizza la "potenza della GPU locale con OpenCL attraverso un semplice algoritmo" per generare chiavi private e pubbliche di Ethereum fino a quando non trova un indirizzo che corrisponda alle regole impostate dall'utente. Ad esempio, se un utente desidera creare un indirizzo Ethereum che termina con "AAA", continuerà a funzionare finché non genererà un indirizzo con questi caratteri come suffisso.

Quando viene generato un indirizzo che non soddisfa le condizioni dettagliate nel set di regole, Profanity "aggiunge 1 alla chiave privata e ricava un nuovo indirizzo Ethereum finché non trova quello che corrisponde alle regole".

Gli indirizzi di Ethereum vengono generalmente generati localmente utilizzando la crittografia a curva ellittica. Quando si genera un indirizzo Ethereum, non viene eseguito alcun calcolo per verificare se la chiave privata è stata utilizzata in passato per un altro indirizzo. Tuttavia, ciò è dovuto al numero di possibili indirizzi Ethereum.

Questo video spiega la vera grandezza di Crittografia a 256 bit utilizzato nella crittografia di Ethereum. Un semplice confronto può anche essere fatto in quanto ci sono approssimativamente 2^76 granelli di sabbia nel mondo ma 2^160 possibili indirizzi di Ethereum.

Tuttavia, quando qualsiasi carattere degli indirizzi di Ethereum è predeterminato, il calcolo per generare la chiave privata diventa significativamente più semplice e il numero di indirizzi possibili si riduce drasticamente.

L'exploit

Amber Grouped ha spiegato che il difetto del metodo Profanity deriva dall'utilizzo di un seme a 32 bit per generare indirizzi.

“Per generare una chiave privata casuale, Profanity utilizza prima il dispositivo casuale per generare un seme. Ma purtroppo il seme è a 32 bit, che non può essere utilizzato direttamente come chiave privata".

Il seme a 32 bit viene alimentato tramite un generatore di numeri pseudocasuali (PRNG) che utilizza una funzione deterministica. Questo metodo PRNG si traduce in un modo semplice per determinare tutti i semi di chiave pubblica praticabili utilizzati all'interno di Profanity.

"Dato che ci sono solo 2^32 possibili coppie di chiavi iniziali (d_0,0, Q_0,0) e l'iterazione su ogni round è reversibile, è possibile decifrare la chiave privata da qualsiasi chiave pubblica generata da Profanity."

Il metodo utilizzato da Amber Group consisteva nell'acquisire la chiave pubblica dell'indirizzo, precalcolare le possibili chiavi pubbliche di Profanity, calcolare le chiavi pubbliche utilizzando OpenCL, confrontare le chiavi pubbliche calcolate e quindi ricostruire la chiave privata una volta trovata una corrispondenza.

A causa della semplicità del metodo, Amber Group raccomanda che "i tuoi fondi non sono al sicuro se il tuo indirizzo è stato generato da volgarità".

Amber Group ha detto CryptoSlate che, in relazione alla necessità di un algoritmo crittografico migliore, "la risposta è ovviamente sì... l'industria può vedere quanto sia vulnerabile questo tipo di design".

Fonte: https://cryptoslate.com/wintermute-hack-replicated-on-simple-laptop-in-under-48-hours-by-exploiting-profanity-flaw/