Hack Wintermute replicat pe un laptop simplu în mai puțin de 48 de ore prin exploatarea defectului de blasfemie

Amber Group, un furnizor de tehnologie blockchain, a replicat hack-ul Wintermute în mai puțin de 48 de ore folosind un laptop de bază. Un raport al Grupului Amber a afirmat:

„Am folosit un Macbook M1 cu 16 GB RAM pentru a precalcula un set de date în mai puțin de 10 de ore… Am terminat implementarea și am reușit să spargem cheia privată a 0x0000000fe6a514a32abdcdfcc076c85243de899b în mai puțin de 48 de ore.”

hack a fost atribuită adreselor de vanitate create cu instrumentul Profanity, permițând utilizatorilor să genereze adrese Ethereum specifice cu anumite personaje. În cazul lui Wintermute, adresa conținea șapte zerouri la început. Adresele de vanitate permit conturilor să aibă caractere similare, facilitând identificarea adreselor publice pe blockchain.

Un alt impact al unei adrese Ethereum cu mai multe zerouri la început este o reducere a taxelor de gaz datorită spațiului redus necesar pentru stocarea informațiilor pe blockchain. Cu toate acestea, eliminarea unui element de aleatorie din procesul criptografic utilizat în generarea adresei vine cu prețul unei securități reduse.

Analiza inițială a sugerat că ar fi nevoie de 1,000 de GPU-uri în doar 50 de zile pentru a genera fiecare cheie privată posibilă pentru adrese care încep cu șapte zerouri la început. Cu toate acestea, Amber Group susține acum că poate fi realizat folosind doar un singur laptop în mai puțin de 48 de ore.

Criptografia a explicat

Blasfemia este un instrument de generare de adrese pentru ecosistemul Ethereum. Baza de cod poate fi descărcată cu ușurință de pe GitHub și este disponibilă din 2017. Cu toate acestea, versiunea actuală a bazei de cod include un avertisment care sfătuiește împotriva utilizării instrumentului. Creatorul instrumentului, Johguse, a adăugat următorul mesaj în fișierul readme.md pe 15 septembrie 2022.

„Recomand cu tărie să nu folosiți acest instrument în starea sa actuală. Acest depozit va fi în curând actualizat în continuare cu informații suplimentare cu privire la această problemă critică.”

Mai mult, binarele de bază au fost eliminate pentru a împiedica utilizatorii să poată compila baza de cod „pentru a preveni utilizarea în continuare nesigură a acestui instrument”.

Profanity folosește „puterea GPU cu OpenCL printr-un algoritm simplu” local pentru a genera chei private și publice Ethereum până când găsește o adresă care se potrivește cu regulile stabilite de utilizator. De exemplu, dacă un utilizator dorește să creeze o adresă Ethereum care se termină cu „AAA”, va continua să funcționeze până când va genera o adresă cu aceste caractere ca sufix.

Când este generată o adresă care nu corespunde condițiilor detaliate în setul de reguli, Profanity „adaugă 1 la cheia privată și derivă o nouă adresă Ethereum până când o găsește pe cea care se potrivește cu regulile”.

Adresele Ethereum sunt de obicei generate local folosind criptografia cu curbe eliptice. Când se generează o adresă Ethereum, nu există niciun calcul pentru a verifica dacă cheia privată a fost folosită în trecut pentru o altă adresă. Cu toate acestea, acest lucru se datorează numărului mare de adrese Ethereum posibile.

Acest videoclip explică adevărata amploare a Criptare pe 256 biți folosit în criptografia lui Ethereum. O comparație simplă poate fi făcută și prin faptul că există aproximativ 2^76 de boabe de nisip în lume, dar 2^160 de adrese Ethereum posibile.

Cu toate acestea, atunci când orice caractere ale adreselor Ethereum sunt predeterminate, calculul pentru generarea cheii private devine semnificativ mai simplu, iar numărul de adrese posibile este redus dramatic.

Exploit-ul

Amber Grouped a explicat că defectul metodei Profanity provine din utilizarea unei semințe de 32 de biți pentru a genera adrese.

„Pentru a genera o cheie privată aleatorie, Profanity folosește mai întâi dispozitivul aleatoriu pentru a genera o sămânță. Dar, din păcate, semințele sunt pe 32 de biți, care nu pot fi folosite direct ca cheie privată.”

Semințele de 32 de biți sunt alimentate printr-un generator de numere pseudo-aleatorie (PRNG) care utilizează o funcție deterministă. Această metodă PRNG are ca rezultat un mod simplu de a determina toate semințele viabile ale cheii publice utilizate în Profanity.

„Deoarece există doar 2^32 de perechi de chei inițiale posibile (d_0,0, Q_0,0) și iterația pe fiecare rundă este reversibilă, este posibil să spargeți cheia privată din orice cheie publică generată de Profanity.”

Metoda folosită de Amber Group a fost să achiziționeze cheia publică a adresei, să precalculeze posibilele chei publice de blasfemie, să calculeze cheile publice folosind OpenCL, să compare cheile publice calculate și apoi să reconstruiască cheia privată odată ce se găsește o potrivire.

Datorită simplității metodei, Amber Group recomandă ca „fondurile tale să nu fie în siguranță dacă adresa ta a fost generată de profanitate”.

a spus Amber Group CryptoSlate că, în ceea ce privește dacă este nevoie de un algoritm criptografic mai bun, „răspunsul este evident da... industria poate vedea cât de vulnerabil este acest tip de design”.

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