Rzekomy exploit zero-day w Changelly krążący wśród potencjalnych atakujących okazuje się przynętą. Zgodnie ze śledztwem przeprowadzonym przez ThreatMon kod ten jest narzędziem do przechwytywania transakcji kryptowalutowych, a osoby najbardziej narażone na szkody to te, które go uruchamiają. Ten fałszywy schemat przejmowania portfeli rzekomo wykorzystujący zero-day w Changelly pokazuje, jak atakujący mogą celować w ciekawskich, oportunistów i nieostrożnych za pomocą tego samego fragmentu kodu JavaScript.

Jak fałszywy exploit Changelly zwabił ofiary

Kampania została przybrana w formę działającego exploitu dla luki w Changelly, serwisie wymiany kryptowalut. Twierdzenia o luce zero-day to skuteczna przynęta. Zero-day to luka, o której dostawca jeszcze nie wie, więc obietnica gotowego exploitu przyciąga osoby, które mają nadzieję na tym zarobić lub po prostu go przetestować.

I to jest pułapka. Według ThreatMon fałszywe twierdzenia o luce posłużyły do zwabienia użytkowników do interakcji z kodem. Zamiast atakować Changelly, skrypt działa przeciwko temu, kto go uruchomi. Potencjalny atakujący staje się celem.

To podejście nie jest nowe w swojej istocie. Badacze bezpieczeństwa od dawna obserwują zaminowane kody proof-of-concept i fałszywe narzędzia wymierzone w osoby szukające skrótów. Co wyróżnia ten przypadek, to konkretny ładunek: skrypt zbudowany do ingerowania w transakcje kryptowalutowe bezpośrednio w przeglądarce.

Co złośliwy skrypt robi z adresami portfeli

Złośliwy JavaScript został zaprojektowany do robienia dwóch rzeczy, opierając się na ustaleniach ThreatMon:

  • Podmiana adresów portfeli. Gdy użytkownik wprowadza lub kopiuje adres docelowy transakcji, skrypt może podmienić go na adres kontrolowany przez atakującego. Środki wysłane w dobrej wierze trafiają do niewłaściwego portfela.
  • Manipulacja wyświetlanymi wartościami wymiany. Skrypt może zmieniać liczby pokazywane na ekranie, więc kursy lub kwoty, które widzi użytkownik, nie odpowiadają rzeczywistości. Pomaga to ukryć kradzież i sprawia, że transakcja wygląda normalnie.

Transakcje kryptowalutowe są generalnie nieodwracalne. Gdy monety zostaną wysłane na adres atakującego, zazwyczaj nie ma banku, do którego można zadzwonić, ani chargebacku, o który można poprosić. To sprawia, że każde narzędzie, które po cichu zmienia adres docelowy, jest szczególnie szkodliwe.

Dlaczego przejęcie na poziomie przeglądarki jest trudne do zauważenia

Ten rodzaj ataku nie wymaga włamania się do giełdy, złamania hasła ani kradzieży klucza prywatnego. Działa w miejscu, w którym przeglądasz i potwierdzasz informacje: w twojej przeglądarce. Jeśli sama strona jest modyfikowana przez wstrzyknięty JavaScript, to, co widzisz, może nie być tym, co dzieje się w rzeczywistości.

Kilka powodów, dla których trudno to wychwycić:

  • Długie adresy są trudne do odczytania. Adresy portfeli to ciągi losowych znaków. Niewiele osób sprawdza każdy znak, a atakujący często na tym polegają.
  • Interfejs nadal wygląda wiarygodnie. Jeśli wyświetlane wartości wymiany są manipulowane, ekran może wyglądać spójnie i godnie zaufania aż do momentu wysłania.
  • Nie ma oczywistego ostrzeżenia. W przeciwieństwie do nieudanego logowania lub alertu bezpieczeństwa, podmieniony adres nie generuje żadnego komunikatu o błędzie.

Lekcja jest taka, że sam widok w przeglądarce nie jest wiarygodnym źródłem prawdy, gdy w grę wchodzą prawdziwe pieniądze.

Co to oznacza dla ciebie

Większość czytelników nigdy nie będzie szukać kodu exploitu, ale leżące u podstaw ryzyko dotyczy szerokiego grona. Każdy skrypt działający w twojej sesji przeglądarki, niezależnie od tego, czy pochodzi z podejrzanego pobrania, wklejonego fragmentu do konsoli, nieuczciwego rozszerzenia czy zainfekowanej strony, może zmienić to, co widzisz podczas transakcji kryptowalutowej.

Jeśli zajmujesz się kryptowalutami, traktuj nieoficjalny kod "exploitu" lub "bonusu" domyślnie jako wrogi. Kod, który obiecuje łatwy dostęp do cudzych środków, powinien wzbudzać podejrzenia, a nie ciekawość. A jeśli jesteś badaczem bezpieczeństwa lub hobbystą, analizuj nieznany kod wyłącznie w izolowanym środowisku, nigdy na maszynie lub profilu przeglądarki powiązanym z twoimi prawdziwymi portfelami.

Higiena sieciowa również ma znaczenie. Niezaufane sieci dodają atakującym kolejny sposób na manipulowanie tym, co robisz online, co pokazano w ostrzeżeniu Microsoftu o rosyjskich hakerach w sieciach Wi-Fi hoteli. Ten raport dotyczył kradzieży danych uwierzytelniających i złośliwego oprogramowania, a nie kryptowalut, ale ostrożność ma zastosowanie: unikaj obsługi kryptowalut w sieciach, którym nie ufasz.

Kontrole, które chronią twoje transakcje kryptowalutowe

Kilka nawyków znacznie zmniejsza szanse utraty środków z powodu skryptów podmieniających adresy:

  1. Weryfikuj adres na ekranie portfela sprzętowego. Wyświetlacz urządzenia jest oddzielony od przeglądarki, więc wstrzyknięty JavaScript nie może go zmienić. Porównaj tam adres z zamierzonym odbiorcą.
  2. Nigdy nie uruchamiaj nieoficjalnego kodu exploitu. Jeśli rzekomy zero-day w Changelly lub jakikolwiek inny exploit pojawi się na forum lub czacie, nie uruchamiaj go i nigdy nie wklejaj nieznanego kodu do konsoli przeglądarki.
  3. Uważaj na wyskakujące okienka giełd. Docieraj do giełd, wpisując adres samodzielnie lub używając zakładki, i ignoruj nieoczekiwane monity.
  4. Używaj blokera skryptów. Ograniczenie tego, który JavaScript może działać, zmniejsza pole działania dla wstrzykniętego kodu.
  5. Najpierw wyślij małą transakcję testową. W przypadku dużych przelewów potwierdź, że środki dotarły we właściwe miejsce, zanim wyślesz pełną kwotę.
  6. Utrzymuj aktywność kryptowalutową na czystym profilu przeglądarki. Mniej rozszerzeń i mniej niepowiązanych kart oznacza mniej okazji do ingerencji.

Najważniejsze wnioski

Kampania fałszywego przejmowania portfeli rzekomo wykorzystująca zero-day w Changelly przypomina, że najbardziej przekonująca przynęta często celuje w osoby, które myślą, że są atakującym. Praktyczna obrona jest prosta: nie uruchamiaj kodu, któremu nie możesz zaufać, blokuj niepotrzebne skrypty i potwierdzaj każdy adres portfela na ekranie portfela sprzętowego, zanim zatwierdzisz transakcję. Traktuj przeglądarkę jako niezaufaną przy końcowej weryfikacji i zachowaj ostrożność w publicznych lub nieznanych sieciach podczas przenoszenia kryptowalut.