szukaj

14.08.2018 | 07:57

avatar

Marcin Dudek

Wykrywanie fałszywych stacji bazowych za pomocą własnego telefonu

Jedną z zaawansowanych (choć coraz dostępniejszych) technik podsłuchu komórek są fałszywe stacje bazowe, tak zwane IMSI Catchery czy też w slangu polskich służb „testery” i „jaskółki”. Czy da się je wykryć? Jakie narzędzia do tego służą?

Dostępność informacji na temat budowy fałszywych BTS-ów jest coraz większa, a ceny gotowych urządzeń coraz niższe. Co za tym idzie często pojawia się pytanie, jak je wykrywać i nie dać się podsłuchać? Na rynku są aplikacje czy nawet dedykowane telefony, które reklamują się, że są w stanie to robić, ale czy na pewno? A jeśli tak, to na co się zdecydować?

W ostatnim czasie dwóch badaczy z University of Oxford oraz Telekom Innovation Labolatories postanowiło pomóc osobom mającym ten dylemat i przetestować, jak sobie z tym radzi pięć różnych aplikacji na Androida, a my postanowiliśmy się tym testom bliżej przyjrzeć.

Czym są IMSI Catchery?

Rys. 1. Jeden z komercyjnych IMSI Catcherów Verint GI2

Tak naprawdę jest to potoczna nazwa fałszywych stacji bazowych (BTS) pochodząca od jednej z funkcji, którą takie stacje mogą realizować. W Polsce nazywa się je także jaskółkami (wersje umożliwiające pasywny lub aktywny podsłuch) lub testerami (wersje umożliwiające namierzanie komórki w terenie). Ich wykorzystanie opisywaliśmy między innymi w tym artykule.

Poza przechwytywaniem identyfikatora IMSI, co pozwala na obserwację, czy cel pojawił się w danym regionie, czy często omawianym podsłuchiwaniem rozmów, wartym uwagi jest atak przeprowadzony niedawno w Chinach. Polegał on na rozesłaniu SMS-a zachęcającego do kliknięcia w link prowadzący do złośliwego oprogramowania do osób znajdujących się w zasięgu fałszywego BTS-a. Mamy tu do czynienia z kolejnym wektorem dystrybucji złośliwego oprogramowania, do tego na zadanym obszarze.

Warto też dodać, że przenośne stacje bazowe mają zastosowanie nie tylko do ataków, ale również podczas klęsk żywiołowych, w słabo rozwiniętych regionach czy podczas pentestów urządzeń, więc nie można ich widzieć tylko jako zagrożenie.

Rys. 2. Zastosowania przenośnych BTS-ów

Mechanizmy bezpieczeństwa sieci komórkowej (2G i 3G)

Uwaga: W tym rozdziale będzie trochę technicznie, więc jeśli chcecie od razu przeczytać porównanie aplikacji możecie ten rozdział pominąć.

Aby zrozumieć, na czym polegają ataki, które zamierzamy wykrywać, pokrótce opowiemy, jak działa sieć komórkowa oraz przedstawimy proces zestawienia połączenia. W tekście zostały pogrubione te aspekty, które są wykorzystywane przy detekcji fałszywych stacji bazowych.

Sieć komórkowa jest podzielona geograficznie na tzw. Location Areas (LAs; każda posiada unikalny kod – LAC), a następnie na komórki (Cells).  Każda z komórek (lub czasem ich grupy) obsługiwane są przez oddzielną stację bazową (BTS), które to odpowiadają za łączność z naszymi telefonami.

Dla zobrazowania przyjmijmy, że rys. 3 przedstawia jedną z  LA w Chrząszczyrzewoszycach. Urządzenie podłączone do BTS-a w danej komórce, np. środkowej, stale otrzymuje listę z informacjami o komórkach sąsiadujących celem wybrania tej o najlepszej sile sygnału ta informacja jest pomocna przy detekcji fałszywych, źle skonfigurowanych stacji.

Rys. 3. Location Area w Chrząszczyrzewoszycach składająca się z 8 komórek

Kolejnym istotnym aspektem jest procedura przyłączania urządzenia do danej stacji bazowej. Każdy telefon posiada numer identyfikujący urządzenie (IMEI) oraz numer identyfikujący kartę SIM (IMSI). Podczas uruchamiania telefonu lub zmiany LA wysyła on do stacji żądanie LA Upate (LAU). W przypadku gdy telefon nie był podłączony nigdy wcześniej do danej stacji, w żądaniu wysyłany jest numer IMSI (czasem także IMEI). Ponieważ ma to miejsce przed negocjacją sposobu szyfrowania komunikacji, przesyłany jest on jawnym tekstem!

Teraz już wiecie, skąd nazwa IMSI Catcher. Dygresja dla ciekawskich: stworzono mechanizm, który ma za zadanie ograniczać częstotliwość przesyłania numerów IMSI poprzez nadawanie identyfikatorów tymczasowych – TMSI.

Następnym istotnym dla nas etapem jest żądanie uwierzytelnienia. W przypadku sieci 2G tylko BTS ma możliwość uwierzytelniania użytkownika, natomiast użytkownik nie ma żadnej możliwości sprawdzenia, czy BTS należy do operatora. To oznacza, że w przypadku sieci 2G, jeśli fałszywy BTS jest dobrze wykonany, to odróżnienie go od prawdziwego ze 100% pewnością jest praktycznie niewykonalne.  W tym momencie moglibyśmy zakończyć ten artykuł, ale na szczęście jest szereg indykatorów, po których można podejrzewać, że coś z tą stacją jest nie tak.

W przypadku 3G ulepszono ten mechanizm poprzez dodanie obustronnego uwierzytelniania. W celu przeprowadzenia podobnego ataku konieczne byłoby pozyskanie klucza wykorzystywanego w procesie uwierzytelniania bezpośrednio z karty SIM, od operatora, lub całkowita podmiana karty na zaprogramowaną przez atakującego.

Rys. 4. Slajd z prezentacji GCHQ o tym, skąd kraść klucze

Ponieważ dwie pierwsze metody są raczej z poziomu trudności dla agencji wywiadowczych, a trzecia wymaga fizycznej ingerencji i powoduje utratę łączności z innymi BTS-ami, są one rzadko stosowane. Niestety okazuje się, że zazwyczaj nie jest to konieczne. Wszystkie obecnie produkowane urządzenia nadal wspierają sieć 2G i w przypadku zakłócenia 3G (pracującej na innej częstotliwości) podłączą się one do stacji 2G z najmocniejszym sygnałem, a atakujący stara się, by jego taką była.

Rys. 5. Zobrazowanie ataku, w którym telefon korzysta z fałszywego BTS-a

Tym sposobem przechodzimy do trzeciego etapu, jakim jest negocjacja algorytmu, którym połączenie będzie szyfrowane. W tym artykule nie rozpatrujemy pasywnego podsłuchiwania, więc nie będziemy rozwodzili się nad siłą algorytmów, ale warte zaznaczenia jest, że decyzja o użytym algorytmie zależy wyłącznie od BTS-a i w przypadku sieci drugiej generacji (2G) możliwe jest zastosowanie algorytmu łatwiejszego do złamania lub nawet wymuszenie braku szyfrowania (A5/0). W takim przypadku cała komunikacja z BTS-em odbywa się w sposób jawny.

Jak się wykrywa fałszywe BTS-y

Jak się pewnie spodziewacie, takie działania, jak obniżenie szyfrowania, niespodziewane przejście w sieć 2G czy częste komendy LAU, mogą być wykrywane i używane jako indykatory, że mamy do czynienia z fałszywym BTS-em. Do tego dochodzi badanie siły sygnału czy wykrywanie technik wspomagających ataki, takich jak „Silent/Stealth SMS” czy „Silent Call„.

Poniżej zebraliśmy zachowania najczęściej wykorzystywane przez aplikacje wykrywające fałszywe stacje bazowe:

  • Nagła zmiana mocy sygnału, mimo że telefon nie porusza się z dużą prędkością.
  • Zmiana kodu Location Area (na inny niż posiadają sąsiadujące komórki / informowanie o każdej jego zmianie).
  • Wykrywanie pustej listy sąsiadujących komórek.
  • Poprawność identyfikatora komórki (sprawdzanie pod kątem konfliktów z listą sąsiadujących komórek / sprawdzanie lokalizacji z zewnętrznymi bazami BTS-ów).
  • Sprawdzanie, czy rozgłaszana wiadomość typu „Paging” nie zawiera IMSI.
  • Żądanie przez BTS identyfikatorów IMEI/IMSI przed rozpoczęciem procedury podłączenia.
  • Brak uwierzytelniania stacji bazowej.
  • Nagłe wyłączenie lub obniżenie szyfrowania.
  • Otrzymanie „Silent SMS” / „Silent Call”.
  • Otrzymanie komunikatu odrzucenia sieci.

Test aplikacji wykrywających fałszywe BTS-y

Po tym krótkim wstępie technicznym możemy wrócić do meritum, czyli analizy aplikacji mających wykrywać fałszywe stacje bazowe.

Łącznie przetestowano pięć aplikacji dostępnych na telefony z Androidem. Niestety tego typu oprogramowanie nie jest dostępne na iOS, ani na Windows Mobile. Okazuje się, że systemy te nie pozwalają na dostęp do informacji o parametrach połączenia komórkowego. Małym pocieszeniem może być fakt, że iOS sam z siebie ostrzega w przypadku obniżenia szyfrowania lub jego braku. Warto też nadmienić, że testowano tylko rozwiązania darmowe i np. omawiany przez nas w przeszłości CryptoPhone nie był brany pod uwagę.

Rys. 6.  Komunikat systemu iOS o tym, że połączenie nie jest szyfrowane

Poniżej przedstawiamy wszystkie testowane aplikacje wraz z odnośnikami do nich:

Kod
Nazwa Pobrania Dostępny kod źródłowy? Potrzebny root?
App1 SnoopSnitch 500k+ Tak Tak
App2 Cell Spy Catcher 100k+ Nie Nie
App3 GSM Spy Finder 100k+ Nie Nie
App4 Darshak usunięte z Google Play Tak Tak
App5 AIMSICD brak w Google Play (z wyboru) Tak 2 tryby

Na podstawie przestudiowania dokumentacji tych aplikacji badacze stworzyli listę ich funkcji (patrz poprzedni rozdział), a następnie zaprojektowali testy mające sprawdzić, czy faktycznie będą one w stanie wykryć stworzonego przez nich fałszywego BTS-a. W poniższej tabelce prezentujemy rezultaty tych testów:

App1
App2
App3
App4
App5
Nagłe zmiany w mocy odbieranego  sygnału
Nietypowa konfiguracja sieci
(LAC, Cell-ID, brak listy sąsiadów)
Żądania w nietypowych momentach
(np. LAU bez następstwa uwierzytelniania)
Wiadomości typu „Paging”,
a następnie zerwanie połączenia
Ponowne wykorzystanie tokenu uwierzytelniania
Obniżenie lub brak szyfrowania
„Silent SMS” (patrz poprzedni rozdział)
Fałszywa wiadomość zawierająca
czas i datę (NITZ)
Żądanie pozycji (po GPS)
Obniżenie sieci z 3G do 2G poprzez wiadomość
typu „GPRS services not allowed
Suma detekcji 5 2 2 2 4

Podsumowanie

Bardzo cieszy fakt, że testy wygrały aplikacje posiadające otwarty kod źródłowy SnoopSnitch (5 punktów) oraz AIMSICD (4 punkty). W tej drugiej warta uwagi jest możliwość działania zarówno z rootem, jak i bez niego (oczywiście w tym drugim przypadku wpłynie to negatywnie na detekcje).

Niestety obu aplikacjom jest nadal daleko do doskonałości. Nie dość, że wielu użytkowników zgłasza problemy z kompatybilnością z ich telefonami, to nie wykrywają one niektórych metod ataku wykorzystywanych przez fałszywe stacje bazowe. Odpowiednio zdeterminowany atakujący byłby w stanie, wykorzystując tylko ogólnie dostępne rozwiązania, tak skonfigurować BTS-a i przeprowadzić atak, że nie zostałby on wykryty przez żadną z darmowych aplikacji na Androida. Oczywistym jest też, że komercyjni producenci sprzętu śledzą rozwój tych aplikacji i implementują metody ograniczające detekcję.

Mimo wszystko zalecamy skorzystanie z którejś z testowanych aplikacji  szczególnie przydatna może być informacja o obniżeniu szyfrowania. Mogą one też pomóc przy detekcji IMSI Catcherów, gdzie nie poświęcono dużo czasu na techniki ukrywania, np. podczas obecności na którejś ze zbliżających się konferencji bezpieczeństwa ;)

Powrót

Komentarze

  • avatar
    2018.08.14 09:10 Minro

    A po co aplikacji dostep do zdjec?

    Odpowiedz
  • avatar
    2018.08.14 11:28 hoek

    „Jeden z komercyjnych IMSI Catcherów – Verint GI2” – chodzi na Windows XP :D Czyżby stażyści/studenci nie przepisali aplikacji pod nowsze systemy?

    Odpowiedz
  • avatar
    2018.08.14 19:59 rysy

    Najprostsze rozwiązanie problemu, to wymusić w telefonie pracę w 4G (ew. 3G)

    Odpowiedz
    • avatar
      2018.08.14 23:04 Marcin Dudek

      Większość urządzeń nie wspiera wymuszenia generacji sieci, zazwyczaj jest opcja „preferowanej”. Co więcej, jeden z czytelników podpowiedział, że kiedyś iOS miał możliwość wyboru tylko 4G, ale z tego zrezygnowano w późniejszych wersjach…

      Odpowiedz
      • avatar
        2018.08.15 08:22 Darek

        Co do Apple tak, szczególnie od wprowadzenia VoLTE, natomiast na większości Androidów można wymusić 3G only we wbudowanym ServiceMode *#*#4636#*#*
        Nie działa to w Huawei ale tutaj akurat 3G only można wybrać w ustawieniach.
        Od czasu popularyzacji UMTS900 u naszych operatorów działa to całkiem nieźle i nie wyrzuca rozmów na starszych telefonach z HDVoice przy przejsciu rozmowy z U2100->GSM co się często dzieje.

        Odpowiedz
        • avatar
          2018.08.15 08:45 Marcin Dudek

          Dzięki za informację, nie znałem tego, przetestuję.

          Odpowiedz
      • avatar
        2018.08.15 08:59 rysy

        Byłem użytkownikiem wielu modeli telefonów Samsunga, Sony i innych marek i _nigdy_ nie spotkałem się z brakiem funkcjonalności o której napisałem powyżej. Czasami wymuszenie pracy telefonu w określonej technologii, np. 3G wiązało się z tym, że (będąc w strefie przygranicznej, gdzie z powodu koordynacji częstotliwościowej obsługujący mnie operator nie mógł uruchomić UMTS900 i serwował tylko GSM900) „traciłem zasięg” albo w przypadku wymuszenia 4G – nie mogłem wykonać połączeń głosowych z braku VoLTE w telefonie.

        Przyznaję, że nigdy nie użytkowałem iPhone’a.

        Wniosek nasuwa się taki, że skoro są na rynku producenci, których urządzenia nie umożliwiają wymuszenia pracy w bardziej bezpiecznych (niż 2G) technologiach, to z ich wyrobów nie należy korzystać, nawet jeśli to będą urządzenia z iOSem na pokładzie.

        Odpowiedz
  • avatar
    2018.08.14 22:13 noiz

    Jeśli można samemu wybrać kanał komunikacji w trybie 2G (znając LAC i CID okolicznych BTS-ów) to całe te „jaskółki” nie są warte złamanego grosza.

    Odpowiedz
  • avatar
    2018.08.15 08:18 Darek

    „Podczas uruchamiania telefonu lub zmiany LA wysyła on do stacji żądanie LA Upate (LAU). W przypadku gdy telefon nie był podłączony nigdy wcześniej do danej stacji, w żądaniu wysyłany jest numer IMSI”

    Raczej w przypadku kiedy telefon był wyłączony już wcześniej podczas pobytu w innym LA, włączenie w nowym LA powoduje IMSI attach.
    Sama zmiana stacji (na nową) nie powoduje żadnej komunikacji, natomiast zmiana stacji która zmienia LA wysyła TMSI.

    Odpowiedz
  • avatar
    2018.08.16 13:27 Zdzich

    W starszych telefonach komórkowych na wyświetlaczu pokazywał się tekst identyfikacyjny nadawany przez BTS, najczęściej była to nazwa miejscowości w której stał dany BTS.

    Odpowiedz
    • avatar
      2018.08.18 12:54 Grzegorz

      Wystarczy włączyć 50 kanał

      Odpowiedz
      • avatar
        2018.08.28 08:07 Zdzich

        Jak/gdzie?

        Odpowiedz
  • avatar
    2018.08.16 21:35 Grzegorz

    Nie polecam SnoopSnitch. Zjada akumulator jak powalony. Bez niego w nocy znika 1-2%, a z uruchomioną aplikacją zjada ponad 10% (na okół 15-16%).

    Odpowiedz
  • avatar
    2018.08.17 15:49 wat

    Jak wy to testowaliście skoro AIMSICD nie działa? https://github.com/CellularPrivacy/Android-IMSI-Catcher-Detector/issues/926

    Odpowiedz
    • avatar
      2018.08.17 21:06 Marcin Dudek

      1) wpis który przytaczasz jest z 2017 roku, z tego co wiem aplikacja jest nadal rozwijana
      2) to jest opinia jednego z developerów, który już w tamtym momencie pisał, że nie pracuje nad projektem od 2 lat.
      3) Tak jak to napisane we wstępie artykułu nie testowaliśmy aplikacji z BTSami sami, tylko opieraliśmy się na tych badaniach – http://www.cs.ox.ac.uk/files/9192/paper-final-woot-imsi.pdf .

      I oczywiście tak jak pisaliśmy, zgadzamy się, że te aplikacje mają wiele problemów i korzystają tylko z podstawowych indykatorów które stosunkowo łatwo obejść.

      Odpowiedz
      • avatar
        2018.08.20 11:35 wat

        W obecnym kształcie jedyne co ta aplikacja robi to wyświetla informacje o telefonie… Właściciel otwartej bazy BTSów się wycwaniaczył i po latach żerowania na frajerach („crowdsourcing”) sprzedał całe przedsięwzięcie indyjskiemu startupowi, który zaraz zrobił swoje łubudubu i baza stała się nieużywalna. Próba pobrania listy BTSów wywala aplikację.

        Zmieńcie może artykuł żeby ludzie nie myśleli że ta apka coś robi…

        Odpowiedz
  • avatar
    2018.08.17 18:46 ardtech.pl

    „numer identyfikujący kartę SIM (IMSI)”

    Nr SIM a IMSI to dwie różne rzeczy :)

    Odpowiedz
    • avatar
      2018.08.17 20:55 Marcin Dudek

      Oczywiście, że tak. „IMSI” w nawiasie odnosi się do całego zwrotu który przytoczyłeś „numer identyfikujący kartę SIM”. Nie do samego skrótu SIM.

      Odpowiedz
      • avatar
        2018.08.17 21:41 ardtech.pl

        Tylko że karta SIM ma dwa nr identyfikujące. Nr SIM i IMSI właśnie. Nr SIM z punktu widzenia sieci nie ma znaczenia, gdyż nie jest używany. Co nie znaczy, że po nr SIM nie ustali się IMSI i MSISDN.

        Szkoda tylko, że w artykule nie ma wspomniane (w formie przypomnienia rzecz jasna ;) ) czemu IMSI jest ważny przy skanowaniu a nie MSISDN.

        Odpowiedz
        • avatar
          2018.08.17 21:43 Marcin Dudek

          Masz rację, warto było o tym wspomnieć, dzięki.
          Dla czytelników: Oczywiście chodzi o to, że MSISDN nigdy nie jest przesyłany w komunikacji z BTSem.

          Odpowiedz
          • avatar
            2018.08.17 21:59 ardtech.pl

            Co więcej nie ma go na karcie SIM :)

  • avatar
    2018.08.19 14:06 :))

    Chrząszczyrzewoszyce. To pewnie te w powiecie Łękołody. Cieszę się, że pomimo poważnych tematów humor was nie opuszcza :)

    Odpowiedz
  • avatar
    2018.08.22 10:26 kamil

    Skoro IMSI Catcher jest wielkości walizki to przewozić go można raczej tylko samochodem. Przydała by się inicjatywa typu typu janosik mapująca zaniki sieci i korelująca je z obrazem kamer w tym tym obszarze, aby zlokalizować auta przewożące IMSI Catcher.

    Nie tylko zabezpieczać własną komórkę, ale też łapać łamiących prawo.

    Odpowiedz
  • avatar
    2018.09.22 14:44 Irek

    Wiele opisów przytoczonych w tym artykule jest błędnych albo wynika w bardzo dużego uproszczenia, jak na przykład ta:
    „… decyzja o użytym algorytmie zależy wyłącznie od BTS-a …”
    Warto zajrzeć to specyfikacji 3GPP :-).

    Odpowiedz
  • avatar
    2018.12.18 17:55 MajsterKlepka

    Gdzie można coś poczytać jak te sieci GSM działają od strony technicznej? Zawsze mnie to zastanawiało.

    Odpowiedz
  • avatar
    2018.12.30 23:57 Irek

    Specyfikacje 3GPP to najlepsze źródło wiedzy o procedurach i messages używanych na wszystkich interfejsach pomiędzy wszystkimi nodami w sieci, jak również pomiędzy mobile station i BTS-em.
    http://www.3gpp.org/

    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.

Wykrywanie fałszywych stacji bazowych za pomocą własnego telefonu

Komentarze