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 ;)
Komentarze
A po co aplikacji dostep do zdjec?
O której aplikacji mówisz?
Dla SnoopSnitch wymagane uprawienia są opisane tutaj: https://opensource.srlabs.de/projects/snoopsnitch/wiki/Android_application_permissions
Dla AIMSICD tutaj: https://github.com/CellularPrivacy/Android-IMSI-Catcher-Detector/wiki/Permissions
Dodatkowo obydwie aplikacje mają otwarty kod źródłowy, więc jeśli nie ufamy temu co deklarują, zawsze pozostaje możliwość przejrzenia kodu :)
Pisze o gms Spy Finder .Przy starcie aplikacji chce dostep do lokoalizacji,rozmow,zdjec mediow i plikow na urzadzeniu.
„zdjec mediow i plikow na urzadzeniu”
nie ma uprawnienia dla dostępu dla zdjęć, po prostu chodzi o uprawnienia do zapisu/odczytu pamięci, np żeby zapisać logi
„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?
Najprostsze rozwiązanie problemu, to wymusić w telefonie pracę w 4G (ew. 3G)
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…
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.
Dzięki za informację, nie znałem tego, przetestuję.
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.
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.
„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.
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.
Wystarczy włączyć 50 kanał
Jak/gdzie?
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%).
Jak wy to testowaliście skoro AIMSICD nie działa? https://github.com/CellularPrivacy/Android-IMSI-Catcher-Detector/issues/926
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ść.
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…
„numer identyfikujący kartę SIM (IMSI)”
Nr SIM a IMSI to dwie różne rzeczy :)
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.
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.
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.
Co więcej nie ma go na karcie SIM :)
Chrząszczyrzewoszyce. To pewnie te w powiecie Łękołody. Cieszę się, że pomimo poważnych tematów humor was nie opuszcza :)
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.
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 :-).
Gdzie można coś poczytać jak te sieci GSM działają od strony technicznej? Zawsze mnie to zastanawiało.
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/