Hack Wintermute zreplikowany na prostym laptopie w czasie krótszym niż 48 godzin, wykorzystując lukę wulgaryzmów

Amber Group, dostawca technologii blockchain, zreplikował włamanie do Wintermute w mniej niż 48 godzin przy użyciu podstawowego laptopa. Raport Grupy Bursztynowej stwierdzał:

„Użyliśmy Macbooka M1 z 16 GB pamięci RAM, aby wstępnie obliczyć zestaw danych w mniej niż 10 godziny… Zakończyliśmy wdrożenie i udało nam się złamać klucz prywatny 0x0000000fe6a514a32abdcdfcc076c85243de899b w mniej niż 48 godzin.”

Połączenia siekać została przypisana do adresów próżności utworzonych za pomocą narzędzia Wulgaryzmy, umożliwiającego użytkownikom generowanie określonych adresów ethereum z określonymi znakami. W przypadku Wintermute adres zawierał siedem wiodących zer. Słabne adresy pozwalają kontom mieć podobne znaki, co ułatwia identyfikację adresów publicznych w łańcuchu bloków.

Innym skutkiem adresu Ethereum z kilkoma wiodącymi zerami jest obniżenie opłat za gaz ze względu na zmniejszoną przestrzeń potrzebną do przechowywania informacji w łańcuchu bloków. Jednak usunięcie elementu losowości z procesu kryptograficznego wykorzystywanego do generowania adresu odbywa się kosztem zmniejszenia bezpieczeństwa.

Wstępna analiza sugerowała, że ​​1,000 procesorów graficznych zajęłoby zaledwie 50 dni, aby wygenerować każdy możliwy klucz prywatny dla adresów zaczynających się od siedmiu wiodących zer. Jednak Amber Group twierdzi, że teraz można to osiągnąć za pomocą jednego laptopa w mniej niż 48 godzin.

Wyjaśnienie kryptografii

Bluźnierstwo to narzędzie do generowania adresów dla ekosystemu Ethereum. Kod można łatwo pobrać z GitHub i jest dostępny od 2017 roku. Jednak obecna wersja kodu zawiera ostrzeżenie odradzające korzystanie z narzędzia. twórca narzędzia, Johguse, dodał następujący komunikat do pliku readme.md 15 września 2022 r.

„Zdecydowanie odradzam używanie tego narzędzia w jego obecnym stanie. To repozytorium będzie wkrótce dalej aktualizowane o dodatkowe informacje dotyczące tego krytycznego problemu.”

Co więcej, podstawowe pliki binarne zostały usunięte, aby uniemożliwić użytkownikom kompilację bazy kodu „aby zapobiec dalszemu niebezpiecznemu korzystaniu z tego narzędzia”.

Wulgaryzmy wykorzystuje lokalną „moc GPU z OpenCL za pomocą prostego algorytmu” do generowania prywatnych i publicznych kluczy Ethereum, dopóki nie znajdzie adresu zgodnego z regułami ustalonymi przez użytkownika. Na przykład, jeśli użytkownik chce utworzyć adres Ethereum kończący się na „AAA”, będzie działał, dopóki nie wygeneruje adresu z tymi znakami jako sufiksem.

Gdy generowany jest adres, który nie spełnia warunków wyszczególnionych w zestawie reguł, wulgaryzmy „dodaje 1 do klucza prywatnego i wyprowadza nowy adres Ethereum, dopóki nie znajdzie tego, który pasuje do reguł”.

Adresy Ethereum są zwykle generowane lokalnie przy użyciu kryptografii krzywych eliptycznych. Podczas generowania adresu Ethereum nie ma obliczeń sprawdzających, czy klucz prywatny był w przeszłości używany dla innego adresu. Wynika to jednak z samej liczby możliwych adresów Ethereum.

Ten film wyjaśnia prawdziwą wielkość Szyfrowanie 256-bitowe używany w kryptografii Ethereum. Można również dokonać prostego porównania, ponieważ istnieją w przybliżeniu 2^76 ziaren piasku na świecie, ale 2^160 możliwych adresów Ethereum.

Jednakże, gdy jakiekolwiek znaki adresów Ethereum są wstępnie określone, obliczenia w celu wygenerowania klucza prywatnego stają się znacznie prostsze, a liczba możliwych adresów jest drastycznie zmniejszona.

Exploit

Amber Grouped wyjaśniła, że ​​wadą metody wulgaryzmów jest użycie 32-bitowego seeda do generowania adresów.

„Aby wygenerować losowy klucz prywatny, wulgaryzmy najpierw używa losowego urządzenia do wygenerowania ziarna. Niestety, ziarno jest 32-bitowe, którego nie można użyć bezpośrednio jako klucza prywatnego.”

Ziarno 32-bitowe jest podawane przez generator liczb pseudolosowych (PRNG), który wykorzystuje funkcję deterministyczną. Ta metoda PRNG daje prosty sposób na określenie wszystkich wykonalnych nasion klucza publicznego używanych w wulgaryzmach.

„Ponieważ istnieje tylko 2^32 możliwych początkowych par kluczy (d_0,0, Q_0,0), a iteracja w każdej rundzie jest odwracalna, możliwe jest złamanie klucza prywatnego z dowolnego klucza publicznego wygenerowanego przez wulgaryzmy.”

Metoda zastosowana przez Amber Group polegała na uzyskaniu klucza publicznego adresu, wstępne obliczenie możliwych kluczy publicznych Profanity, obliczenie kluczy publicznych za pomocą OpenCL, porównanie obliczonych kluczy publicznych, a następnie zrekonstruowanie klucza prywatnego po znalezieniu dopasowania.

Ze względu na prostotę metody, Amber Group rekomenduje, że „Twoje środki nie są bezpieczne, jeśli Twój adres został wygenerowany przez Wulgaryzmy”.

Amber Group powiedział CryptoSlate że w odniesieniu do tego, czy potrzebny jest lepszy algorytm kryptograficzny, „odpowiedź brzmi oczywiście tak… branża może zobaczyć, jak podatny jest ten rodzaj projektu”.

Źródło: https://cryptoslate.com/wintermute-hack-replicated-on-simple-laptop-in-under-48-hours-by-exploiting-profanity-flaw/