Potężny atak na portfele kryptowalutowe! „Patrzcie co podpisujecie albo stracicie wszystko”
Panika w branży. Producent portfeli sprzętowych Ledger ostrzega przed gigantycznym atakiem na swoisty „magazyn” dla programistów zwany npm. To tam tysiące aplikacji zaopatrują się w gotowe elementy kodu programistycznego – jak klocki LEGO – aby szybko budować strony i zdecentralizowane aplikacje (dApps). Według najnowszych doniesień *ktoś* przejął konto jednego ze znanych twórców i wrzucił do kilku popularnych klocków złośliwą domieszkę, która potrafi po cichu podmienić adres portfela podczas dokonywania płatności. Efekt? Pieniądze trafiają nie do tego, komu wysyłasz, a zamiast tego prosto na konto złodzieja. Pierwotnie ostrzegano, że problem może dotyczyć milionów użytkowników, a nawet „całego ekosystemu JavaScript”.
Co dokładnie się wydarzyło?
- Atakujący wyłudził hasło do konta twórcy (fałszywe maile rzekomo „od npm” i straszenie odbiorcy blokadą konta). Dzięki temu wgrał „skażone” aktualizacje popularnych paczek używanych w tysiącach stron i portfeli.
- Złośliwy kod działał jak „kopiuj–wklejowy podmieniacz z lupą”: szukał adresów portfeli w przeglądarce i zamieniał je na te należące do złodziei – tak podobne wizualnie, że różnicę trudno było zauważyć. W niektórych przypadkach wirus potrafił wtrącić się przed podpisaniem transakcji i zmienić adres odbiorcy w ostatniej chwili.
Brzmi groźnie… to ile ukradli?
I tu dobra wiadomość: według Ledgera atak „na szczęście się nie powiódł”. Zanim się rozlał na dobre, został wstępnie wykryty i zatrzymany. Na dziś potwierdzona kwota łupu to ok. 503–505 dolarów – grosze jak na tak szeroki zasięg. Do tego czołowe projekty (m.in. Uniswap, Aave) zgłosiły, że nie były dotknięte exploitem.
Paradoksalnie pomogły… błędy złodziei. „Skażony” klocek powodował w wielu firmach wywrotkę procesu budowy strony (wyskakiwały błędy), co błyskawicznie zwróciło uwagę programistów. Zanim większość zdążyła zaktualizować swoje strony, problem był już namierzony i gaszony.
Czy zwykły użytkownik ma się czego bać?
- Jeśli używasz portfela sprzętowego (np. Ledger, Trezor) i czytasz to, co pokazuje urządzenie przed kliknięciem „Sign”, jesteś w praktyce bezpieczny – ekran urządzenia pokazuje prawdziwy adres, którego nie da się „podmienić” przez przeglądarkę.
- Najbardziej narażeni są ci, którzy robią transakcje z hot-walletów w przeglądarce i klikają bez patrzenia. Nawet jeśli to nie ten atak, taka praktyka prędzej czy później kończy się źle.
Co powinieneś zrobić TERAZ
- Przed podpisem – patrz dokładnie co podpisujesz. Zawsze porównaj pierwsze i ostatnie 4 znaki (a najlepiej całość) adresu na ekranie portfela z tym, co widzisz na stronie. Jeśli różni się choć jeden znak – przerywasz operację.
- Nie aktualizuj na ślepo. Jeśli prowadzisz stronę/dAppa, poproś swój zespół o sprawdzenie zależności i „przypięcie” bezpiecznych wersji (tzw. pinning/overrides) oraz o przebudowę projektu „na czysto”. To dosłownie wyłącza „skażone klocki” z obiegu.
- Uważaj na maile-straszaki. Fałszywe powiadomienia „zablokujemy Twoje konto za 48 h” to klasyka. Zamiast klikać w link, wejdź sam na stronę i sprawdź komunikaty.
Miej się na baczności
Atak pokazał, że jedno przejęte konto w „magazynie klocków” może dotknąć milionów stron i aplikacji naraz. Tym razem skończyło się tanio i szybko – jutro ktoś może przygotować cichszy, sprytniejszy ładunek. Dlatego firmy będą musiały podnieść poprzeczkę: blokować wersje, sprawdzać sumy kontrolne, twardo weryfikować maile „od supportu”, a użytkownicy – czytać ekran sprzętowego portfela zamiast „klikać z pamięci”.

