Luki w zabezpieczeniach smartfonów
Smartfon to już w zasadzie w pełni funkcjonalny komputer użytkowany praktycznie przez każdego zarówno w życiu zawodowym, jak i prywatnym. Dlatego też wraz ze wzrostem wykorzystania tego typu urządzeń w naturalny sposób pojawiły się ataki wykorzystujące słabości usług typowych dla smartfonów, takich jak: krótkie wiadomości tekstowe (SMS) i multimedialne (MMS), WiFi, Bluetooth oraz GSM, 3G i 4G/LTE. Dostępnych jest również wiele exploitów, które wykorzystują luki m.in. w przeglądarce internetowej zainstalowanej na telefonie, czy też nawet w oprogramowaniu systemu operacyjnego. Nie ma znaczenia, czy telefon działa na platformie iOS, czy Android, ponieważ praktycznie każde oprogramowanie ma błędy, a systemy operacyjne niczym w tym zakresie się nie wyróżniają. Istnieją luki w systemach iOS oraz Android, które można wykorzystać w celu zapewnienia atakującemu pełnej kontroli nad urządzeniem.
Zasadniczo, aby umożliwić użytkownikom danego urządzenia wykonywanie większej ilości działań na danym urządzeniu, których normalnie nie mogą zrobić stosuje się tzw. iOS jailbreaking dla telefonów opartych na iOS i rootowanie dla smatfonów opartych na Androidzie. iOS jailbreaking to nic innego jak umożliwienie dostępu z uprawnieniami roota do iOS, pozwalając tym samym na pobieranie i instalację dodatkowych aplikacji, rozszerzeń i motywów niedostępnych w oficjalnym sklepie Apple App Store. Rooting Android to proces pozwalający użytkownikom smartfonów, tabletów i innych urządzeń z systemem operacyjnym Android na uzyskanie uprzywilejowanej kontroli (znanej jako root access) do systemu operacyjnego Androida, co daje możliwość zmiany aplikacji systemowych i ustawień, a także uruchamiania wyspecjalizowanych aplikacji, które wymagają uprawnień na poziomie administratora lub wykonywania innych operacji, które w przeciwnym razie byłyby niedostępne dla zwykłego użytkownika systemu Android. W zasadzie dla każdej nowej wersji iOS i Android musi powstać, odpowiednio, nowy jailbreaking i rooting, przy czym wielu dostawców urządzeń, takich jak np. HTC, Sony i Asus jawnie zapewnia możliwość odblokowywania urządzeń, w sposób zapewniający użytkownikom dostęp do nich z uprawnieniami administracyjnymi. Poza tym większość jailbreaków i metod rootowania wymaga fizycznego dostępu do urządzenia, a Apple i Google zwykle łatają luki w zabezpieczeniach niemal natychmiast uniemożliwiając tego rodzaju dostęp oraz eliminując inne wykryte zagrożenia.
Osobną kwestią jest to, czy faktycznie użytkownicy na bieżąco aktualizują oprogramowanie systemowe w swoich telefonach, ponieważ najczęściej najnowsze wersje oprogramowania iOS i Android łatają wcześniej zidentyfikowane luki bezpieczeństwa. W praktyce wychodzi jednak na to, że użytkownicy urządzeń Apple mają pewną przewagę, ponieważ mają tendencję do aktualizacji do najnowszego systemu iOS w ciągu kilku tygodni od momentu pojawienia się nowej wersji. Zdecydowana większość urządzeń z systemem Android nie otrzymuje aktualizacji od swoich operatorów i producentów przez wiele miesięcy lub w ogóle, mimo że Google naprawia błędy.
Okazuje się, że pomimo bieżącej aktualizacji oprogramowania systemowego, bezpieczeństwo smartfonów nadal pozostaje pod znakiem zapytania, ponieważ większość arsenału hakerskiego skupia się na błędach w aplikacjach mobilnych, a nie w systemach iOS, czy Android. Zdarzają się podstawowe błędy w systemach operacyjnych, ale w zasadzie wyłącznie w starszych wersjach urządzeń z systemem iOS i Android. Zatem wychodzi na to, że równie ważne jest nie tyle posiadanie aktualnej wersji systemu operacyjnego, co użytkowanie aplikacji pochodzących ze sprawdzonych źródeł, które również muszą być aktualizowane i na bieżąco przez użytkownika monitorowane, czy czasem w sposób niespodziewany nie penetrują całego urządzenia.
Jeśli chodzi o samo hakowanie urządzeń mobilnych, to wyróżnia się zasadniczo cztery podejścia:
- Luki w zabezpieczeniach systemu operacyjnego lub sprzętu, w celu uzyskania pełnej kontroli nad urządzeniem.
- Aplikacje zawierające złośliwy kod, które mogą wykonywać określone zadania bez świadomości użytkownika.
- Ataki typu "man-in-the-middle" (MiTM) przechwytujące ruch sieciowy.
- Inżynieria społeczna (socjotechnika) skierowana do użytkownika urządzenia mobilnego.
Patrząc jakimi narzędziami dysponują hackerzy niezrozumiały jest powód, dla którego większość osób martwi się, że atakujący uzyska pełną kontrolę nad danym urządzeniem mobilnym, a tym czasem w rzeczywistości przeciętna osoba częściej spotyka się ze scenariuszem włamania, w którym wykorzystano metody socjotechniczne, czy też ataki typu "man-in-the-middle" lub złośliwe oprogramowanie.
Można wyróżnić cztery podstawowe rodzaje złośliwych aplikacji mobilnych (MMA):
- Programy szpiegujące (spyware) śledzące działania użytkowników, takie jak np. wiadomości tekstowe, wiadomości e-mail, połączenia, lokalizacja, kontakty lub historia przeglądania.
- Trojany (trojans), które generują nieautoryzowane połączenia o podwyższonej opłacie, teksty lub zakupy - wszystkie obciążają rachunek bezprzewodowy ofiary.
- Strony wyłudzające informacje (phishing sites), które wyglądają jak prawdziwe logowania do znanej usługi, takiej jak bankowość internetowa lub sieci społecznościowe, ale zamiast tego są sprytnymi metodami kradzieży danych uwierzytelniających użytkownika.
- Ukryte procesy (hidden processes), które działają całkowicie w tle na urządzeniu użytkownika, ukrywają się i czekają na pewne zachowania, takie jak sesja bankowości internetowej, aby przejąć kontrolę nad sesją użytkownika, albo uzyskać dane dostępowe wraz z smsem autoryzującym transakcję.
Nie można zapomnieć również o socjotechnice, ponieważ nierzadko cyberprzestępcy przejmują kontrolę nad urządzeniem mobilnym, korzystając z wielu psychologicznych sztuczek, jak np. tworzą złośliwe aplikacje, które wyglądają dosłownie tak samo jak używane na co dzień legalne oprogramowanie, a nawet zakupione jako autentyczne. Jak powiedział Zeltser cyt. tłum. "Z punktu widzenia użytkowników bardzo trudno odróżnić aplikację, która jest zgodna z prawem, od aplikacji, która okazuje się złośliwa". Rozwiązaniem jest tutaj nieinstalowanie aplikacji z nieznanych źródeł, przy czym nie jest tajemnicą, że do oficjalnych sklepów z aplikacjami mobilnymi trafiają również aplikacje złośliwe, które pewnie po jakimś czasie, raz szybciej raz wolniej, usuwane są przez Apple i Google, ale czy na pewno przed pobraniem ich przez kogokolwiek. Pobierając jakąś aplikacje ze sklepu nie za bardzo można również patrzeć na oceny danej aplikacji nadawane przez użytkowników, ponieważ wielu z nich najczęściej zwraca uwagę na "widoczną" część funkcjonalności aplikacji, nie zdając sobie sprawy, że może ona zawierać szereg niechcianych funkcji.
Do grupy metod z obszaru inżynierii społecznej wykorzystywanych do ataków na urządzenia mobilne należą również reklamy wyświetlane zarówno w przeglądarce, jak i dodawane do aplikacji mobilnych. Reklama taka może zawierać złośliwy kod, który przykładowo może działać w taki sposób, że po kliknięciu w baner reklamowy użytkownik trafia do strony internetowej, która go nakłania do uświadomienia sobie, że ma zainfekowany telefon albo że jego bateria w telefonie jest mało efektywna i aby temu zaradzić koniecznie musi zainstalować aplikację, która pomoże mu rozwiązać problem bezpieczeństwa, czy też zoptymalizować zużycie baterii. A tym czasem aplikacja ta zamiast tego jest właśnie złośliwym oprogramowaniem, które daje szerokie pole manewru hackerowi.
Inną metodą socjotechniczną, z wielu technik tego rodzaju, wykorzystywaną do ataków na urządzenia mobilne jest wariant oparty na szkodliwym oprogramowaniu ZeuS, który wywiódł się z tego, że hackerzy doskonale zdają sobie sprawę z faktu, że większość usług np. bankowych wymaga dwuetapowego uwierzytelniania, które to najczęściej jest realizowane jako jednorazowe hasło wysyłane do telefonu użytkownika przez dostawcę usług bankowych. I tak, w momencie kiedy użytkownik loguje się na swoje konto bankowe z zainfekowanego komputera, zostaje poproszony np. o pobranie komponentu bezpieczeństwa lub nowego, zaktualizowanego certyfikatu bezpieczeństwa na swoje urządzenie mobilne, w celu dokończenia procesu logowania. De facto ten mobilny komponent czy też certyfikat bezpieczeństwa to złośliwe oprogramowanie stanowiące część komplementarną aplikacji hackera zainstalowanej na komputerze użytkownika, a już teraz ofiary. Dzięki takiej operacji hacker ma dostęp nie tylko do nazwy użytkownika i hasła do konta bankowego, ale także do drugiego czynnika uwierzytelniania transakcji bankowych wysyłanego do ofiary za pośrednictwem wiadomości SMS. Zeltser powiedział, cyt. tłum. "Kiedy ludzie myślą, że coś jest zrobione dla zapewnienia bezpieczeństwa, zapominają o całej logice i rozsądku" - "Oni po prostu robią to na ślepo".
W przypadku ataków MiTM na urządzeniach mobilnych, to najczęściej polegają one na wykorzystaniu nieprawidłowego sprawdzania poprawności certyfikatów i wykorzystania protokołów, które mogą być niebezpieczne np. z uwagi na błędną implementację SSL, czy też użycie wczesnych wersji TLS. Wektor ataku MiTM polega w tym wypadku na wykorzystaniu podatności związanej z certyfikatem, w celu umożliwienia "niewidzialnego" pośredniczenia w komunikacji urządzenia mobilnego ze światem zewnętrznym i na odwrót. Taki pośrednik w komunikacji może realizować różne funkcje, począwszy od zmiany przekazywanych treści, poprzez ich opóźnianie albo wybrakowywanie, a skończywszy np. na wysyłaniu kopii wszystkich pakietów danych na inny serwer wskazany przez hackera. Problem tego typu związany z certyfikatami można rozwiązać poprzez wykorzystywanie przypinania certyfikatów w aplikacji mobilnej, co z reguły pomaga w zapewnieniu, że aplikacja mobilna będzie się komunikowała z właściwym urządzeniem.
Poniżej przedstawiono listę narzędzi do testowania bezpieczeństwa, w tym łamania zabezpieczeń i rootowania, opartych na znanych metodach wykorzystujących luki w zabezpieczeniach iOS i Androida. Co prawda zarówno Apple, jak i Google w momencie pojawienia się nowych luk dość szybko reagują i wydają oświadczenia, z których wynika, że luki w zabezpieczeniach zostały już naprawione lub istnieją odpowiednie zabezpieczenia, które zapobiegają skutecznemu wykorzystaniu ich przez exploity, ale czy faktycznie tak jest? Czy da się przewidzieć, czy też wyeliminować wszystkie błędy? A może też celowo pozostawia się niektóre luki w zabezpieczeniach?
-
Wybrane narzędzia mobilne do testowania bezpieczeństwa
narzędzie do audytu sieci, dystrybuowane w ramach pakietu dsniff, pozwalające m.in. na przekierowywanie ruchu w sieci lokalnej poprzez ciągłe wysyłanie do komputera ofiary zmodyfikowanej odpowiedzi ARP, z której wynika, że adres MAC należący do adresu IP routera jest adresem MAC hackera/ audytora, przez co po pewnym czasie komputer ofiary popełnia błąd w swojej pamięci podręcznej ARP i uznaje adres MAC hackera za adres routera, dzięki czemu kolejnym razem, gdy ofiara chce wysłać pakiet IP do routera, wysyła ramkę ethernetową na adres MAC hackera/audytora - analogicznie działa to w drugą stronę z routerem.
Komenda służąca do zmodyfikowania odpowiedzi ARP hosta ofiary
# arpspoof -t router ofiary
Komenda służąca do zmodyfikowania odpowiedzi ARP routera
# arpspoof -t ofiara router
Aplikacja pozwalająca zgromadzić pełną listę narzędzi na Androida do przeprowadzania testów penetracyjnych.
aplikacja na Androida do analizy bezpieczeństwa w sieciach bezprzewodowych i przechwytywania kont Facebook, Twitter, LinkedIn i innych.
aplikacja m.in. monitoruje tablicę ARP urządzeń z Androidem i próbuje wykryć ataki ARP-Spoofing wykonywane przez DroidSheep, FaceNiff i inne oprogramowanie.
analogicznie jak DroidSheep służy do analizy bezpieczeństwa w sieciach bezprzewodowych i przechwytywania kont Facebook, Twitter, LinkedIn i innych.
w pełni zautomatyzowana, niewymagająca dużej wiedzy technicznej do obsług, aplikacja dla systemu Android, która umożliwia uruchamianie ataków typu SQL injection na docelowy adres URL.
kompletny i zaawansowany profesjonalny zestaw narzędzi bezpieczeństwa IT działający na zrootowanym systemie Android.
aplikacja umożliwiająca nawiązywanie połączeń pomiędzy dwoma osobami i jednocześnie rejestrowanie tego połączenia.
aplikacja na Androida, która pozwala na wykrywanie i przechwytywanie przez Wi-Fi sesji sieciowych serwisów społecznościowych, w tym Facebook i Twitter.
aplikacja, która pozwala sprawdzić, które urządzenia są połączone z siecią Wi-Fi.
aplikacji na Androida do śledzenia wszystkich szczegółów sieci, do kórej dane urządzenie jest przyłączone.
aplikacja pozwala na zmianę stron internetowych na komputerach innych osób za pomocą telefonu z systemem Android.
narzędzie na Androida, które można wykorzystać w sieci do określenia dostępnych hostów, usług, wersji systemu operacyjnego, typów filtrów pakietów / zapór sieciowych i innych parametrów skanowanej sieci.
aplikacja jest przeznaczona głównie do śledzenia aktywności innych urządzeń.
aplikacja do odczytywania plików pcap, wykorzystywana m.in. do hackowania Androida w celu wykrycia błędów.
aplikacja pozwala wysłać proste SMSy do jednego lub wielu adresatów.
aplikacja pozwala na zmianę ruchu z https na http, przez co cały ruch z komputera ofiary jest kierowany przez serwer proxy utworzony przez hackera, często narzędzie to wykorzystywane jest do przeprowadzenia ataku MITM gdzie w przejrzysty sposób przejmuje się kontrolę nad ruchem http w sieci, wyszukuje połączeń i przekierowań https, a następnie mapuje te połączenia na inne połączenia http lub porównywalne homograficznie łącza https.
narzędzie do odzyskiwania haseł i innych danych z podłączonego poprzez USB systemu Windows 2000 i wyżej
aplikacja pozwalająca na czytanie wiadomości z innych aplikacji Whatsapp podłączonych do tej samej sieci WiFi.
zaawansowana aplikacja do testowania zabezpieczeń sieci WiFi WPA/WPA2 PSK.
analizator sieci WiFi pokazujący dostępne kanały i umożliwiający identyfikację mniej zatłoczonego kanału dla routera bezprzewodowego.
aplikacja do wyszukiwania darmowych lub płatnych hotspotów WiFi, pokazująca szczegóły konfiguracji, lokalizację połączenia itp.
aplikacja, która pozwala dezaktywować wszystkie urządzenia podłączone do sieci WiFi, przez co można zablokować dostęp do Internetu do wszystkich innych urządzeń podłączonych do tej samej sieci Wi-Fi.
aplikacja na zrootowanego Androida, wykorzystywana do testowania/ włamania się do sieci WiFi, umożliwiająca łączenie się z routerami, które mają luki w zabezpieczeniach.
aplikacja gromadząca miliony haseł wifi udostępnianych przez użytkowników na całym świecie oraz przechowująca i dystrybuująca je z serwera w chmurze, aby można było korzystać z nich i automatycznie wyszukiwać wszystkie dostępne sieci WiFi w pobliżu.
narzędzie wielofunkcyjne przeznaczone dla specjalistów ds. bezpieczeństwa i wykorzystywane do monitorowania sieci, posiadająca wiele interesujących funkcji, jak np. UPnP Device Scanner, Host Discovery, Network Sniffer, Port Scan, Host Vulnerability Scan, Traceroute, Ping.
aplikacja na zrootowanego Androida, wykorzystywana do testowania/ łamania haseł sieci WiFi, pozwalająca również m.in. wyłączyć połączenie sieciowe innego użytkownika w tej samej sieci Wi-Fi.
mobilny zestaw narzędzi do wykonywania testów penetracyjnych, który pozwala poprzez wydajną identyfikację niebezpiecznych elementów w sieci, symulować rzeczywiste, powszechnie stosowane techniki mobilnych cyberataków.
Lista z powyższymi narzędziami pokazuje, że obecnie również telefon komórkowy stał się urządzeniem, na którym możliwe jest uruchomienie całego zestawu oprogramowania hackerskiego, gdzie wcześniej używanie tego typu narzędzi było możliwe wyłącznie na komputerze stacjonarnym, czy też laptopie.
Narzędzi i metod włamań pozwalających na nieautoryzowane przejmowanie kontroli nad telefonem jest wiele, ale warto wspomnieć o zagrożeniu dotyczącym możliwości wykorzystania kilku exploitów, zwanych pod wspólną nazwą BlueBorne, które wykorzystują podatność usługi Bluetooth w sposób pozwalający na nieuprawniony zdalny dostęp do praktycznie każdego typu telefonu. BlueBorne może być użyty do przeprowadzenia szerokiego zakresu nielegalnych działań, w tym zdalnego wykonywania kodu, jak również ataków typu man-in-the-middle. Haker może zidentyfikować urządzenie, połączyć się z nim przez Bluetooth, a następnie rozpocząć zdalne zarządzanie ekranem i aplikacjami, przy czym działanie to nie będzie w pełni ukryte przed użytkownikiem, ponieważ aktywacja exploitów spowoduje tzw. "wybudzenie" urządzenia. Demonstrację wektora ataku, czyli sposobu w jaki można zainfekować lub przejąć kontrolę nad urządzeniem pokazano na poniższym wideo.
Wektor ataku BlueBorne składa się z kilku faz, gdzie w pierwszej kolejności hacker (rozumiany tutaj jako osoba szukająca i ewentualnie wykorzystująca słabości w zabezpieczeniach systemów) lokalizuje wokół siebie aktywne połączenia Bluetooth, po czym uzyskuje adres MAC danego urządzenia, przy czym należy zaznaczyć, że urządzenia można zidentyfikować nawet wtedy jeśli nie są ustawione w trybie "wykrywalnym". Kolejno, hacker identyfikuje system operacyjny urządzenia, aby odpowiednio dostosować exploit, który wykorzystuje lukę w implementacji protokołu Bluetooth (BNEP) dla danej platformy i pozwala uzyskać nieautoryzowany dostęp, w celu zdalnego przeprowadzenia w zasadzie dowolnych działań. Od tego momentu hacker może wybrać dowolny odpowiadający jego zamiarom atak typu man-in-the-middle i kontrolować komunikację urządzenia lub przejąć pełną kontrolę nad nim, w celu wykorzystania telefonu do szerokiej gamy cyberprzestępstw. Przykładowo, może zdalnie wykonać kod, który umożliwi mu udostępnienie Internetu przez połączenie Bluetooth (tethering), aby wykorzystać dane urządzenie jako tzw. komputer przesiadkowy (bounce computer), pozwalający hackerowi ukryć swoją faktyczną lokalizację, a nawet tożsamość poprzez zapewnienie odbijania się z jednego komputera na inny przed wykonaniem docelowego ataku. Poza tym hacker może też przekonfigurować routing IP urządzenia w taki sposób, że cała komunikacja będzie przekierowywana za pośrednictwem złośliwego interfejsu sieciowego, co umożliwi mu praktycznie pełną zdalną inwigilację urządzenia. Ważne podkreślenia przy tym jest to, że ten rodzaj ataku nie wymaga żadnej interakcji ze strony użytkownika, w tym m.in. ani uwierzytelniania ani parowania urządzenia, co czyni go praktycznie niewykrywalnym.
Generalnie wdrażane są różne środki ochrony smartfonów począwszy od zabezpieczeń technicznych na różnych warstwach oprogramowania, po rozpowszechnianie informacji wśród użytkowników końcowych o potencjalnych zagrożeniach. Istnieje również wiele dobrych praktyk, które należy stosować na wszystkich poziomach, począwszy od projektowania urządzenia i oprogramowania, poprzez rozwój systemów operacyjnych, warstw oprogramowania i aplikacji do pobrania, a skończywszy na samym właściwym użytkowaniu smartfonu.
Mamy wiele metod pokonywania zabezpieczeń od tych najbardziej trywialnych, do tych wykorzystujących zaawansowane metody i techniki włamań. Można powiedzieć, że im lepsze zabezpieczenia, tym bardziej wyrafinowane metody ich pokonywania. Ale bez obaw, jakbyśmy się nie zabezpieczali, to praktycznie - jest to pewne - określone służby (CIA, NSA) zawsze mogą mieć, albo mają dostęp do naszych telefonów z dowolnego miejsca na świecie. Skoro są dostępne dla przeciętnego śmiertelnika rozwiązania, takie jak np.: spyera, mSpy, FlexiSPY, iKeyMonitor i wiele innych, umożliwiające w czasie rzeczywistym zdalne podsłuchiwanie, śledzenie i monitorowanie telefonu, to co stałoby na przeszkodzie, aby producent w kooperacji ze służbami już na etapie kompilacji, czy też budowy smartfonu wbudowywał tego typu oprogramowanie i umożliwił korzystanie z niego określonej grupie osób, czy też instytucji.
Źródło:
Android Hacking Apps, How Android and iOS devices really get hacked
A Review of Malicious Code Detection Techniques for Mobile Devices
A Survey on Smartphones Security: Software Vulnerabilities, Malware, and Attacks
Best Mobile Spy App Reviews: 10 Best Spy Apps for Android and iPhone
Internet Security Threat Report
Mobile Application Security - Building security into the development process
Understanding the mobile threat landscape in 2018