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.
Komentarze
A w polskiej rzeczywistości (branży finansowa) jest serwis rządowy który wymaga logowania tzw. certyfikatem kwalifikowanym.
Powiecie, że przecież nie można się logować certyfikatem który ma ustawiony bit nonRepudiation (contentCommitment), bo wyklucza się on z Authentication.
Faktycznie nie można. Ale można podpisać prośbę o dostęp i poprzez załadowanie podpisanego pliku następuje proces uwierzytelnienia i następnie logowania. Nic więcej nie jest używane do uwierzytelnienia w serwisie.
Tylko za każdym razem podpis. :) Taka specyficzna usługa GIIF.
Niezmiernie mnie dziwi podpisywanie dokumentów aby się zalogować do „jakiegoś” rządowego serwisu. No ale to świat rzeczywisty, tam nic nie jest proste.
Sorry – nie mogłem się powstrzymać. :]
Rzeczywisty świat finansów nie różni się znacząco od wirtualnego świata finansów (kryptowaluty/kleptowaluty – jak zwał, tak zwał).
Oba są podatne na manipulacje, oba są niedoskonałe, oba są oparte na instrumentach których fizycznie nie ma. Oba mają swoje problemy.
Rynek kryptowalut wyrównuje szanse podmiotów.
Jakie szanse ma „szary” Kowalski, czy nawet spółka w starciu z gigantami rynku finansowego i udowodnienie jaki był przepływ elektronicznych „pieniędzy”.
Nie ma jak dotrzeć w normalnym czasie do całości listy transakcji dotyczących „mojego” konta, bo taką listę posiada tylko Bank. A jeśli jemu nie ufamy i chcemy go zweryfikować – to bez wyroku sądowego i zewn. audytu nic nie zdziałamy.
Zresztą te zewnętrzne mechanizmy kontroli czasami nie mieszczą się w żadnej znanej mi logice. Taki cytat:
„Zatrzymać Wojciecha Kwaśniaka za SKOKi to jak papieża ekskomunikować za herezję. Potępiam tych, któryz wydali taką decyzję, i tych, co wcześniej zlecili pobicie/zabójstwo Kwaśniaka. Może to ci sami, kto wie?”
Znam osobiście sytuację, kiedy klientowi kazano zapłacić za transakcje kartą kredytową której nie odebrał z Banku. Sytuacja się wyjaśniła, ale trwało to dłużej niż trochę.
Jeszcze nie tak dawno temu, był taki przekręt z wykorzystaniem Banku.
Pewna firma zrobiła całkiem spore zamówienie, ponieważ przelewy szły długo a klientowi zależało na czasie realizacji zamówienia, to sprzedawca poszedł do Banku aby upewnić się, że klient pieniądze wysłał. Bank zadzwonił do Banku klienta, gdzie wszystko potwierdzili. Sprzęt wysłano na pewien adres w Warszawie. Kurierzy zwozili tam sprzęt z całej Polski do późnych godzin nocnych w piątek. Ostatni kurierzy odbijali się już od zamkniętych drzwi. W weekend sprzęt został sprzedany na giełdzie komputerowej. Po weekendzie pieniądze nie doszły do oszukanych firm. Oddział Banku który twierdził, że pieniądze zostały wysłane przenoszony był w tym czasie do nowej siedziby. Telefonu nie działały i nikogo to nie dziwiło. Ich telefony odbierał oszust i potwierdzał nieistniejące przelewy. Wiele firm z całej Polski zostało tak oszukanych.
Nie tak dawno jeszcze wiele rzeczy było potwierdzanych na faks!
(No dobra dla niektórych to będzie prehistoria :) )
Założenie konta jednym przelewem, a później kredyt na nieświadomą niczego ofiarę? To tylko w obecnej rzeczywistości.
Bankowość mobilna przez aplikację w telefonie z potwierdzaniem przelewów tym samym telefonem – wow, mamy od razu 2FA. ;]
Dlaczego Kaczyński tak długo nie miał konta bankowego?
Cytat: „Nie żartuję. Trzymam pieniądze na koncie mamy. Nie jest to moje dziwactwo, lecz efekt doświadczeń.”
On po prostu nie chciałby któregoś dnia otrzymać nagle dużej sumy pieniędzy i nie potrafić wyjaśnić skąd się tam wzięła.
Jakbym miał obstawiać, to bym stawiał że założył konto bo został do tego zmuszony.
Dzisiaj niby jest lepiej, można pójść do Banku – poprosić o informację czy konto które kiedyś miałem i zamknąłem jest faktycznie zamknięte. Otrzymać informację twierdzącą, a po kilku miesiącach/latach dostać wezwanie do zapłaty niezłych odsetek od kilku złotych które leżały na nieaktywnym koncie i wygenerowały opłaty za konto, debet i opłaty karne oraz odsetki. Bo „to stary system” niepołączony z nowym.
Patrząc na wiek kryptowalut( lub jak ktoś woli kleptowalut) to radzą one sobie całkiem nieźle pod kątem bezpieczeństwa.
A jak komuś przeszkadzają ruchy na bitcoinie i innych, to niech przypomni sobie tzw. frankowiczów, oraz to ile razy Polacy w tym stuleciu zapłacili „podatek” tym co mieli dużo kasy i zagrali sobie polską walutą na rynku międzynarodowym.
Dzisiaj jak chce się kogoś okraść, to jest to coraz łatwiejsze przy wykorzystaniu tradycyjnego modelu zaufania do centralnych systemów.
Przykładowo baza Dokumentów Zastrzeżonych obsługiwana przez CPBiI dla ZBP sprawdza tylko czy dany dokument jest zastrzeżony. Nie sprawdza ona czy taki dokument istnieje. Zresztą to też nie jest problem. W PKP kontrolerzy biletów nagminnie żądają dowodziku dla biletów kupionych przez internet. Sprawdzają dane pasażera trzymając w ręce urządzenie wyposażone w kamerę.
Może warto zatrudnić się w PKP IC aby posprawdzać bilety i dowodziki w pociągach premium? Jak na tacy podane osoby posiadające więcej pieniędzy od przeciętnych ludzi.
A dowodzik kolekcjonerski to koszt kilkuset złotych.
Teraz tylko potrzeba wiedzy jak działają procedury. Ale i o to coraz prościej, bo idą kolejne fale zwolnień bankowców pracujących z klientami.
Nie chcę demonizować, tylko zwrócić uwagę na fakt, że zagrożenia są dosłownie wszędzie. Jedyna istotna różnica to skala i automatyzacja ataków.
Przekręt z lewymi aktualizacjami jest niczym innym jak zautomatyzowaną (bo internet na to pozwala) wersją wkręcenia staruszki. Ma pójść do Banku odpowiednio poinstruowana przez złodzieja i wybrać prawie wszystkie swoje oszczędności. Na dodatek jej komórka cały czas jest włączona i na podsłuchu złodzieja.
Ta Pani zaufała, bo tak ja uczono instytucji. A kto z nas wie jak powinna wyglądać legitymacja policyjna? Jak powinno wyglądać zatrzymanie, przesłuchanie, co to są czynności procesowe i jak powinny być przeprowadzane? Gdzie o tym można przeczytać? I kto ma na to czas w obecnym zagonionym świecie. Przeszukanie? Zabezpieczenie sprzętu?
Obstawiam, że dobrze przygotowana grupa 2-3 osób udająca policjanta może zrobić „przeszukanie” i zabezpieczenie sprzętu „za pokwitowaniem” u co najmniej 3/4 czytelników z3s.
U ludzi którzy wiedzą o bezpieczeństwie więcej niż reszta społeczności.
Przy braku zaufania do społeczności („do anonimowych ludzi obsługujących anonimowe serwery”) to proponuję także nie korzystać z rozwiązań na których działa oprogramowanie Open Source. Bo to w sumie anonimowi ludzie pisali. 8]
A tak serio, to mam wielką nadzieję, że oba zarówno „tradycyjna” bankowość jak i ta oparta na kryptografii będą korzystać z doświadczeń drugiej strony. Przyda się każdej ze stron.
Pozdrowienia dla wszystkich pracujących w backendach systemów bankowych będących jeszcze w „epoce serwera łupanego”.
Szacun za dosc dlugi komentarz.
A co do Open Souce …
Slawa lub anonimowosc developerow nie broni Open Source.
Najwazniejsze to jest mozliwosc przeczytania i badania kodu w celu sprawdzenia czy nie zawiera bledow, wirusow, trojanow.
Natomiast w zamknietym oprogramowaniu jest trudniej zwlaszcza legalnie jesli licencja zabroni takze reversingu.
Co Ci pomoze slawny developer, jesli zrobi niechcacy buga ze pol internetu stanie ?
W OpenSource jesli umiesz programowac i masz czas to mozesz sam badac najwazniejsze oprogramowanie i ewentualnie sam przestrzec druga cwiartke swiata ktora takze umie programowac i potwierdzic twoje obawy.
Nie jest proste, ale trzeba myslec i miec doswiadczenie. To wlasnie doswiadczenie pozwala unikac takich wpadek. Kazdy mysli, ze ma komouter w domu i kupi BTC to jest guru bo to takie proste wszystko jest, normalnie caly ten komputerowy swiat to copy/paste. No i potem okazuje sie, jak proste to jest – mozna stracic nawet 80btc, nie czytajac prostego komunikatu i nie wiedzac skad sie sciaga portfel Electrum do BTC. Dziecieca wpadka tak bym to nazwal.
Gość jak widać na tym nie poprzestał. Właśnie wyskoczył mi ten „błąd” ale wersja 2019-*******-3.3.1 jakoś. Link prowadzi na githuba jak na screenie. Dobrze, że jest Z3S bo praktycznie ten error nie pozwala wykonać transakcji. Jest to bardzo przekonujące można powiedzieć.