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

dodał 14 sierpnia 2018 o 07:57 w kategorii Mobilne, Prywatność  z tagami:
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 ;)