Bardzo sprytny atak na użytkowników portfela bitcoinowego Electrum

dodał 27 grudnia 2018 o 21:37 w kategorii Wpadki  z tagami:
Bardzo sprytny atak na użytkowników portfela bitcoinowego Electrum

(źródło: btckeychain)

Czy komunikat o błędzie może pomóc w kradzieży miliona dolarów? Okazuje się, że jest to możliwe – a udowodnił to tajemniczy atakujący, który wyczyścił już niejedno konto miłośnika kryptowalut i portfela Electrum.

Od 21 grudnia w sieci pojawiają się raporty użytkowników portfela Electrum, którzy doświadczyli nietypowego ataku. Napastnik popisał się dużą kreatywnością – zobaczcie, jak w swoim ataku wykorzystał banalną funkcję oprogramowania.

Sieć rozproszona, rozproszone ataki

Bitcoinowy portfel Electrum działa w dość nieortodoksyjny sposób. Zamiast trzymać kopię całego blockchaina lokalnie, łączy się do serwerów (stawianych przez członków społeczności) i używa ich do wysyłania przelewów lub sprawdzania salda rachunków. Dzięki odpowiednim mechanizmom kryptograficznym proces przebiega w bezpieczny sposób – właściciel serwera (który z reguły jest po prostu miłym człowiekiem udostępniającym swoje zasoby) nie ma możliwości przejęcia przelewu czy sfałszowania komunikacji użytkownika z siecią bitcoin. Jako że rozmiar blockchaina bitcoina zbliża się do 200 GB, portfel Electrum zyskał wielu miłośników pragnących przeznaczyć swoje cenne dyski na inne cele.

Jak zatem atakujący kradł bitcoiny? Przelewu przejąć nie może, komunikatu sfałszować się nie da, ale okazało się, że każdy serwer Electrum może wysyłać do użytkowników eleganckie komunikaty o błędach, definiowane przez właściciela serwera. Najpierw w sieci pojawiło się sporo nowych serwerów (użytkownicy się cieszą, sieć rośnie).

Krótko potem, 21 grudnia, serwery te zaczęły wyświetlać nietypowy komunikat o błędzie, który wyglądał tak:

Link oczywiście nie prowadził do oficjalnego repozytorium Electrum, a do złośliwej aplikacji, która udawała oryginalnego klienta. Co prawda, klient Electrum prosi o dwuskładnikowe uwierzytelnienie przed wysłaniem transakcji, ale klient złośliwy po prostu prosił o kod 2FA w momencie uruchomienia – jednocześnie w tle opróżniał właśnie cały portfel ofiary. Osoby śledzące przepływy w sieci ustaliły, że skradzione środki trafiają na adres, na którym obecnie znaleźć można ponad 243 bitcoiny – niezły łup, nawet po dzisiejszym kursie. A wszystko dzięki prostej socjotechnice i komunikatach o błędach w HTML-u.

Jak temu zaradzić

Twórcy klienta Electrum usunęli możliwość wyświetlania błędów w HTML-u (co nie przeszkodziło niektórym ofiarom ręcznie kopiować linka do złośliwego repozytorium) i myślą nad wdrożeniem wysyłania jedynie kodów błędów, które będą odpowiednio interpretowane po stronie klienta. A nas niezmiennie dziwi poziom zaufania do anonimowych ludzi obsługujących anonimowe serwery, którzy biorą udział w procesie przelewania gigantycznych sum i mogą wysyłać dowolne komunikaty o błędach do użytkowników… No, ale to świat kleptowalut, tam nic nie jest proste.