23.06.2017 | 14:50

Adam Haertle

Co by było gdyby? Krótka historia problemów ze spoofingiem w sieci Play

Co byś zrobił gdybyś dowiedział się, że jedyną barierą realnie strzegącą dostępu do twoich pieniędzy w banku jest znajomość Twojego numeru telefonu, nazwiska panieńskiego Twojej matki i numer PESEL?

Czy zastanawiałeś się kiedyś, co by było, gdyby każdy średnio rozgarnięty gimnazjalista potrafił dostać się do twojej poczty głosowej?  Jeśli uważasz, że to nierealne, to zapraszam do lektury.

Występ gościnny
Autorem tego artykułu jest nasz Czytelnik, Marek Szustak, któremu kilka miesięcy temu pomogliśmy w kontakcie z jednym z zaangażowanych w incydent podmiotów a niedawno zaproponował nam publikację kompleksowego opisu sytuacji. Dziękujemy!

Obie firmy, których dotyczy artykuł, usunęły już opisane w nim błędy.

Klasyczny bug telekomów

Problem fałszowania numeru telefonicznego osoby nawiązującej połączenie (spoofing Caller ID) jest niemal tak stary jak sama technologia przekazywania numeru nawiązującego połączenie. Pomimo tego, iż incydenty wykorzystujące tą technikę do niecnych celów są doskonale znane, to niektórzy operatorzy telekomunikacyjnym wydają się w ogóle nie zwracać na ten problem uwagi.

O problemie spoofingu pod koniec zeszłego roku przypomniała mi dość głośna historia opisana przez austriackiego konsultanta bezpieczeństwa IT – Slashcrypto. Na swoim blogu poruszył on problemy operatorów telekomunikacyjnych wykorzystujących numer osoby dzwoniącej do uwierzytelniania podczas dostępu do skrzynki głosowej. Każdy z nas przyzwyczaił się do tego, że aby sprawdzić wiadomości pozostawione na skrzynce głosowej wystarczy, że zadzwonimy na specjalny numer i odsłuchamy wiadomość. Operator pozwala nam tego dokonać bez podawania PINu tylko dlatego, że dzwonimy z własnego numeru. Lecz co jeśli ktoś potrafi “zadzwonić z naszego numeru” bez dostępu do naszego telefonu/karty SIM?

Slashcrypto w swoim tekście skoncentrował się na zbadaniu konsekwencji tego zjawiska dla Netflixa, bardzo popularnej na całym świecie platformy streamingu wideo. Każdy klient tej firmy ma możliwość odzyskiwania utraconego dostępu do swojego konta za pomocą jednej z trzech opcji: emaila, SMSa lub rozmowy telefonicznej. Domyślasz się już do czego to zmierza?

Hakowanie przez skrzynkę głosową

Atak na różne usługi za pomocą niedostatecznie chronionej skrzynki głosowej okazał się być łatwiejszy do przeprowadzenia niż można było przypuszczać. W przypadku Netflixa wystarczające było wprowadzenie w serwisie internetowym numeru komórki ofiary gdy ta była poza zasięgiem sieci. Tak zainicjowane połączenie głosowe w wyniku niedostępności rozmówcy przekierowane było na pocztę głosową, gdzie następowało zarejestrowane sekretu: sekwencji 6 cyfr służących do odzyskania konta. W drugim kroku napastnik dzwonił na numer poczty głosowej podszywając się pod numer ofiary i tą drogą pozyskiwał hasło pozwalające mu sfinalizować atak. Efekt końcowy? Całkowite przejęcie konta.

Po lekturze historii opisanej na blogu Slashcrypto pojawiło się w mojej głowie pytanie: co by było, gdyby w Polsce operatorzy również mieli podobne problemy? Przystąpiłem do testów bez większych przygotowań. Od czego zacząć? Od swojego operatora.

Rekonesans: Play

Najłatwiejszym celem jest zawsze ten dobrze znany. Jako klient Playa poszedłem po linii najmniejszego oporu. Zamiast uruchamiać własny serwer Asteriska lub szukać usługodawcy pozwalającego na spoofing skorzystałem z dobrze wszystkim znanej usługi: Skype. Każdy z nas może “zarejestrować” numer swojej komórki  w Skype i następnie dzwonić za jego pomocą, podszywając się pod swój numer komórkowy. Służy to temu,  by nasi rozmówcy, kiedy będziemy do nich dzwonić za pośrednictwem tego operatora VoIP otrzymywali informację że dzwoni dobrze im znany numer. Rejestracja wymaga potwierdzenia kodem otrzymywanym SMSem, a aktywacja usługi trwa do 48h. Rozwiązanie w celach testowych okazało się strzałem w dziesiątkę – w przeciwieństwie do usług oferujących spoofing dowolnego numeru korzystanie ze Skype jest relatywnie tanie.

Kiedy już miałem możliwość wykonania rozmowy ze Skype, a odbiorca widział mój numer telefonu komórkowego jako osoby dzwoniącej wystarczyło skorzystać z pełnego numeru dostępowego do skrzynki głosowej Play (790 200 200). Jakież było moje zaskoczenie, kiedy okazało się, że poczta przywitała mnie bez dodatkowej autoryzacji i mogłem zarówno odsłuchać pocztę jak również ustawiać wiadomość powitalną. Ostatecznie udało się potwierdzić, że nie tylko Skype potrafi skutecznie podszywać się pod mój numer telefonu, a rozmowy wykonane na numer skrzynki głosowej operatora za pośrednictwem innych usług specjalizujących się w spoofingu były przeprowadzane z tą samą skutecznością –  brak było dodatkowych barier do zawartości skrzynki. Co to oznaczało w praktyce? Nieograniczony dostęp do skrzynek głosowych abonentów Play.

Kolejnym pytaniem, które przyszło mi do głowy, było do czego ktoś mi nieprzychylny mógłby spróbować wykorzystać tego rodzaju dziurę u mojego operatora? Po chwili odpowiedź wprawiła mnie w osłupienie.

Ofiara: mBank

Klienci mBanku, a zwłaszcza ci korzystający z bankowości mobilnej mają możliwość przeprowadzenia aktywacji aplikacji mobilnej na dwa sposoby: poprzez stronę systemu transakcyjnego w wersji desktopowej, oraz z pomocą telefonu sparowanego z kontem. Ten drugi wariant wygląda następująco: po zainstalowaniu aplikacji z marketu danej platformy (w moim przypadku Android) na urządzeniu należy wprowadzić nazwisko panieńskie matki oraz numer PESEL. Następnie po potwierdzeniu chęci aktywacji aplikacji następuje nawiązanie automatycznej rozmowy, podczas której mBank przekazuje kod konieczny do finalizacji aktywacji nowej instancji aplikacji. Szczegółem o którym w tym miejscu należy wspomnieć jest fakt, że podczas ww. automatycznej rozmowy automat prosi(ł) o potwierdzenie chęci aktywacji aplikacji mobilnej poprzez wciśnięcie klawisza 1 na klawiaturze telefonu. Dopiero wówczas przekazywał informacje o kodzie służącym aktywacji. Tak sfinalizowany proces użytkownik podsumowuje definiując własny PIN do aplikacji, którym będzie się posługiwał gdy będzie chciał z niej skorzystać.

Pierwszy rzut oka na ten proces pozwala zauważyć, że bank najwyraźniej pomyślał o stosownym zabezpieczeniu by automatyczne rozmowy przypadkiem nie zostały zarejestrowane na poczcie głosowej. Wchodząc w rolę atakującego problem ten można jednak było dość łatwo rozwiązać: trzeba zawczasu przygotować na skrzynce głosowej ofiary wiadomość powitalną, która zrealizowałaby to, czego bank od nas oczekuje, czyli dźwięk wybrania na klawiaturze cyfry 1 (za pomocą tonu dźwiękowego DTMF).

Zadanie nagrania na poczcie głosowej tonu DTMF wymagało nieco gimnastyki, gdyż system operatora podczas nagrywania wiadomości powitalnej na każdy kod DTMF reagował przerywając rejestrację. Ostatecznie dzięki wygenerowaniu dodatkowych dźwięków tła udało się opracować skuteczną metodę nagrania powitania, pozwalającego przechytrzyć automat po stronie banku.

Przeprowadzenie skutecznego “ataku” na konto wyglądało następująco:

  1. Atakujący dzwoni na pocztę głosową ofiary wykorzystując spoofing numeru dzwoniącego. Nagrywa wiadomość powitalną zawierającą w okolicy 30 sekundy ton DTMF 1.
  2. Atakujący instaluje nową instancję aplikacji mobilnej banku.
  3. Atakujący mając pewność, że ofiara jest poza zasięgiem sieci, inicjuje proces aktywacji aplikacji podając nazwisko panieńskie matki oraz numer PESEL.
  4. Bank dzwoni na numer ofiary, rozmowa jest przekierowywana na pocztę głosową, gdzie wiadomość powitalna “potwierdza” chęć aktywacji aplikacji. Następuje nagranie sekretu.
  5. Atakujący dzwoni ponownie na pocztę głosową ofiary, odsłuchuje sekret i finalizuje aktywację aplikacji.

Okazuje się zatem, że do skutecznego przeprowadzenia ataku adwersarz musiał dysponować wyłącznie informacją o numerze telefonu ofiary, numerze PESEL i nazwisku matki. Nie są to jednak dane, których pozyskanie jest niemożliwe.

Co w wyniku takiego ataku otrzymuje atakujący? W pełni działającą aplikację, która daje wgląd w finanse na rachunkach prawowitego właściciela. To co mogłoby zainteresować osoby chcące wyprowadzić środki z rachunku bankowego ofiary to zapewne kody BLIK. Można nimi zarówno płacić w internecie, jak też wypłacać gotówkę w bankomatach.  Operacje te nie wymagają autoryzacji kanałem SMS, lecz właśnie z pomocą aplikacji, którą już dysponuje atakujący.

Na tym etapie doszedłem do wniosku, że najwyższa pora powiadomić o tych odkryciach  zainteresowanych, czyli mBank i Play.

Zgłoszenie: mBank

Kontakt z zespołem bezpieczeństwa udało się nawiązać dzięki pomocy Adama z Z3S. Do zgłoszenia problemu bank podszedł w pełni profesjonalnie. Tak jak należałoby tego oczekiwać wymiana szczegółów dot. problemu możliwa była za pośrednictwem szyfrowanego kanału (GPG). Po udanym powtórzeniu PoC przez bank przystąpiono do wprowadzania koniecznych zmian w sposobie przekazywania kodu aktywacji aplikacji. Wdrożenie zajęło kilka tygodni, a bank ostatecznie w połączeniu do klienta żąda potwierdzenia chęci otrzymania kodu aktywacyjnego poprzez wybranie losowej dla każdej rozmowy sekwencji klawiszy. W ten sposób atakujący nie jest w stanie przewidzieć prawidłowej sekwencji w czasie rozmowy przychodzącej z banku, co skutecznie uniemożliwia przeprowadzenie ataku.

Historia

  • 18.11.2016 Skuteczne przekazanie raportu do banku
  • 22.11.2016 Problemy z powtórzeniem — wymiana szczegółów
  • 23.11.2016 Potwierdzenie podatności, uruchomienie procesu zgłoszenia problemu z mBanku do Play
  • 23.12.2016 Potwierdzenie wdrożenia zmian w procesie aktywacji aplikacji

W ramach podziękowania za owocną współpracę mBank przed świętami Bożego Narodzenia przesłał drobny upominek.

Zgłoszenie: Play

Próby kontaktu z telekomem do najłatwiejszych nie należały. Na stronie internetowej Play nie udało się znaleźć informacji o zalecanej metodzie kontaktu w sprawach bezpieczeństwa. Próby kontaktu z Biurem Obsługi Klienta nie były tu w żaden sposób pomocne. Ostatecznie pomocnym okazał się jak zwykle Twitter i Krzysiek Sylwerski, który wskazał osobę techniczną z którą mogłem nawiązać kontakt. Ostatecznie szczegóły problemów udało się przekazać również szyfrowane. Operatorowi udało się usunąć problem w kilka dni. Od tamtego czasu kontaktu z Play nie stwierdzono.

Inne usługi

Jak się łatwo domyślić z tytułu błędu operatora problem z bezpieczeństwem mogli mieć klienci korzystający także z innych usług. Skontaktowałem się z kilkoma, u których udało mi się potwierdzić, że powyższy schemat w istotny sposób miał wpływ na bezpieczeństwo danych ich klientów. Netflix po krótkiej wymianie informacji podziękował za zgłoszenie i przeprowadził modelowo proces wdrożenia poprawki oraz odwdzięczył się w ramach prywatnego programu Bug Bounty. Google, Microsoft oraz Snapchat, gdzie wariant tego scenariusza ataku pozwala obejść uwierzytelnianie dwuskładnikowe, uznali jednogłośnie ten wektor ataku za interesujący choć nie zdecydowali się zmianę aktualnych procedur uwierzytelniania. Innym podmiotem, który zainteresował się problemem był potentat rozmów VoIP a jednocześnie dostawca usług 2FA (nazwy operatora ze względu na reguły BugBounty wymienić nie mogę).

Co robić? Jak żyć?

Zgodnie z moim stanem wiedzy dziś już wszyscy główni operatorzy telekomunikacyjni w Polsce są odporni na powyższy atak. Niewiadomym jest natomiast zabezpieczenie przed spoofingiem u operatorów VoIP. Miejmy to na uwadze kiedy będziemy korzystali z ich usług.

Jeśli będziecie mieli takową okazję — sprawdźcie jak wasz operator reaguje na połączenie ze spoofowanego numeru na skrzynkę głosową. Gdyby taki test przyniósł ciekawe obserwacje — dajcie znać.

Powrót

Komentarze

  • 2017.06.23 15:39 anon

    A, to dlatego teraz mBank prosi o wprowadzenie 3 losowych cyfr

    Odpowiedz
  • 2017.06.23 16:42 Filon

    A nie wystarczy po prostu nie mieć poczty głosowej? Czy może dzwoniąc ze zespoofowanego numeru da się ją aktywować?

    Odpowiedz
  • 2017.06.23 17:38 B&B

    „Zgodnie z moim stanem wiedzy dziś już wszyscy główni operatorzy telekomunikacyjni w Polsce są odporni na powyższy atak.”
    Uodpornili się na spoofing na pocztę głosową w ogóle, czy na odtwarzanie tonów, czy na co, bo nie do końca rozumiem.

    Odpowiedz
    • 2017.06.26 10:51 as

      zmiana mechanizmu autoryzacji przy dostepie do poczty głosowej. nie zlaogujesz się ze spoofowanego połączenia.

      Odpowiedz
  • 2017.06.23 20:04 Marek

    @B&B: uodpornili się na spoofing. Przynajmniej w czasie autoryzacji do skrzynki głosowej.

    Odpowiedz
  • 2017.06.23 21:14 Wujek Pawel

    A który operator VoIP pozwala teraz spoofowac numery?

    Odpowiedz
    • 2017.06.26 09:41 helkat

      spoofcard, dla przykładu

      Odpowiedz
  • 2017.06.24 07:31 Łukasz

    Chciałbym zauważyć, że Play wysyłając maila z fakturami ich nie szyfruje… dane osobowe lecą otwartym tekstem przez net.

    Odpowiedz
    • 2017.06.26 10:50 as

      W samej treści emaila z fakturą nie ma ani jednej danej osobowej abonenta, specjalnie sprawdziłem. Dane abonenta dopiero znajdują się w załączonym pliku PDF z fakturą.
      Jak sobie wyobrażasz szyfrowane przekazywanie takich danych? Przez PGP? Infolinia play by była ciągle zapchana.
      Poza tym jesli ktoś jest w stanie przechwycić tego emaila wysłanego z systemu play do np Twojego gmaila, to uwierz mi że wyciek Twoich danych osobowych jest Twoim najmniejszym zmartwieniem.

      Odpowiedz
      • 2017.06.30 20:00 KacasPiesel

        Odsyłać do Play24 w celu pobrania faktury.

        Odpowiedz
  • 2017.06.26 12:55 Pajacyk

    Nie kumam, w tekście napisaliście, że można zarejestrować numer jako usługę Skype i w ten sposób spoofować, ale dodaliście:

    „Rejestracja wymaga potwierdzenia kodem otrzymywanym SMSem, a aktywacja usługi trwa do 48h.”

    To ten numer przychodzi na dowolny nr telefonu czy na numer, który chcemy spoofować? Jeżeli na numer spoofowany to skąd atakujący weźmie ten kod od ofiary?

    Odpowiedz
    • 2017.06.26 15:22 Maks

      Autorowi chodziło o to, że są także inne usługi działające w sposób podobny do Skype, nie wymagające kodu z SMS. Po prostu Skype jest najłatwiej dostępny.

      Odpowiedz

Zostaw odpowiedź

Jeśli chcesz zwrócić uwagę na literówkę lub inny błąd techniczny, zapraszamy do formularza kontaktowego. Reagujemy równie szybko.

Co by było gdyby? Krótka historia problemów ze spoofingiem w sieci Play

Komentarze