Konferencja Mega Sekurak Hacking Party w Krakowie – 26-27 października!
Adminie… Czy znamy Twoje grzechy? ;-) Sprawdź!
Konferencja Mega Sekurak Hacking Party w Krakowie – 26-27 października!
Adminie… Czy znamy Twoje grzechy? ;-) Sprawdź!
Co mam na myśli pisząc ‘urządzenia mobilne’?
Telefony oraz tablety wykorzystujące dwie platformy: Android oraz applowski iOS – które sumarycznie mają prawie 95% rynku (z czego Android przeszło 80%). W dalszej kolejności należy wskazać wschodzący Windows Phone (około 3.5% rynku) oraz balansujący już chyba na krawędzi upadku Blackberry (niecałe 2% rynku).
Całą tematykę bezpieczeństwa platform mobilnych można podzielić na trzy obszary:
Osobom chcącym zorganizować własną infrastrukturę mobilną tak, aby umożliwiała sprawne działanie oraz bezpieczne zarządzenie flotą mobilną, polecam dwa dokumenty, których krótką charakterystykę przedstawiam poniżej.
Dokument opisuje wzorcowe wdrożenie bezpiecznej architektury mobilnej – bez skupiania się na konkretnej platformie.
Zaczynając – mamy tutaj sporą sekcję dotyczącą częstych zagrożeń dla systemów mobilnych – od kwestii zagrożeń związanych z korzystaniem z webu, przechodzimy przez problemy z technologiami bezprzewodowymi (w tym NFC), socjotechnikę, aż do problemów z fizyczną utratą telefonu czy wrogą ingerencją w sam sprzęt.
Dalej w dokumencie przeczytamy o takich rozwiązaniach jak:
Całość charakterystyki dopełniają diagramy, na przykład takie jak ten:
Jeśli ktoś potrzebuje lektury do pociągu, wcześniej wspomniane opracowanie (Mobile Security Reference Architecture) może okazać się zbyt “ciężkie”. Ale bez obaw, zamiennie proponuję przyjrzeć się dokumentowi z NIST-u: Guidelines for Managing the Security of Mobile Devices in the Enterprise.
Znajdziemy tutaj podstawowe informacje o mobilnych zagrożeniach takich jak:
Nie zabraknie też informacji o rozwiązaniach klasy MDM (Mobile Device Management) umożliwiających zarządzanie scentralizowane:
Na koniec mamy również propozycję opracowania Mobile Development Life Cycle, czyli procedur całościowego zarządzania bezpieczeństwem mobilnym w czasie – od momentu zakupu urządzeń, przez konfigurację oraz zarządzanie zmianami aż do ich bezpiecznej utylizacji.
W poprzednim punkcie wskazałem kilka zaleceń dotyczących budowania bezpiecznej infrastruktury mobilnej, pora teraz wspomnieć o informacjach dotyczących samych urządzeń (telefonów i tabletów).
Tutaj na początek polecam dokumenty hardeningowe z organizacji CIS – Google Android Benchmarks oraz Apple iOS Benchmarks.
Znajdziemy tu omówienie:
Te przeszło 50-stronicowe dokumenty są dość często aktualizowane (już jest dostępna wersja dla iOS7), a często stanowią też bazę dla innych dokumentacji hardeningowych, np. takich jak ta.
W procentowej liczbie malware na urządzeniach mobilnych przoduje Android – między innymi z racji na otwartości samej platformy oraz dużego pokrycia rynku. Niektórzy szacują, że w “rynku malware” Android ma 79% udziału (vs iOS – mniej niż 1%), inni piszą, że jest to wartość przekraczająca 90% (patrz też zrzut ekranowy poniżej). Jedni straszą (zlokalizowano już przeszło 1 000 000 przypadków Malware na Androida), drudzy uspokajają (nie ma się co bać androidowego malware – rzecze szef androidowego teamu bezpieczeństwa w Google).
Niemniej faktem jest, że malware na urządzenia mobilne istnieje, rozwija się i – podobnie jak w przypadku zwykłych PC – infekcji sprzyjają ryzykowne zachowania użytkowników. Jailbreaking / rooting / korzystanie z alternatywnych app stores (czasem, aby uzyskać dostęp do spiraconych appów) – to tylko kilka przykładów.
A propos spiraconych appów, czasem malware serwowany jest w “podrabianych” aplikacjach? Kto z Was słyszał o “Angry Zombie Birds”? Grafika wprawdzie nieco przaśna, ale fanów tego typu alternatywy było sporo. A że przy okazji telefon graczy mógł wysłać trochę SMS-ów premium, to już inna sprawa. ;-)
Wracając z kolei do rootingu / jailbreakingu, warto przyznać, że istnieją pewne androidowe aplikacje zwiększające bezpieczeństwo systemu, które wymagają zrootowanego urządzenia. Jednak mimo wszystko, sumarycznie cały proces raczej zmniejsza niż zwiększa bezpieczeństwo – niektórzy, przy okazji ochoczo uczestnicząc w wojnie Apple vs Google, nieco złośliwie komentują to np. tak: “jailbreaking essentially reduces ios security to the level of android“. Zresztą ww. prezentacja to niezłe podsumowanie bezpieczeństwa Androida vs iOS.
Twórcy Androida zauważyli niedawno rosnący problem z malware, udostępniając choćby ostatnio (od wersji 4.2 systemu) funkcjonalność Verify apps. Umożliwia ona skanowanie pod względem bezpieczeństwa aplikacje, które instalujemy na swoim urządzeniu (obsługuje oficjalny Google Play oraz inne androidowe źródła aplikacji). W przypadku wykrycia problemu bezpieczeństwa – aplikacja nie jest instalowana. W wersji 4.3 OS funkcjonalność została udostępniona jako jeden z serwisów Google Play i jednocześnie usunięta z core systemu – przez co mogą z niej skorzystać i starsze wersje Androida (od 2.3 w górę).
Zarówno wspomniana wyżej funkcjonalność Verify apps, jak i kilka innych zwiększających bezpieczeństwo Androida została niedawno zaprezentowana przez team Google’a na konferencji Virus Bulletin. W dość kompaktowej formie pokazano z jednej strony zagrożenia, z drugiej – metody ochrony stosowane w Androidzie (sandboxing, SELinux, ASLR, Fortify Source, szyfrowanie danych urządzenia, ostrzeżenia przed wysyłką SMS-ów premium, itp.), z trzeciej – zaprezentowano garść statystyk dotyczących malware wykrywanych na bieżąco przez mechanizmy Google Play.
Warto przy okazji zaznaczyć, że część z tych funkcjonalności działa w pełni dopiero w wersji systemu 4.4 – przykładem niech będzie SELinux, który we wcześniejszych wersjach systemu działał w trybie ‘permissive’, a dopiero ostatnio w ‘enforcing’. Szkoda też, że autorzy ww. prezentacji nie wspominają o takich problemach jak fragmentacja platformy Android (dużo różnych modeli sprzętu z najróżniejszymi konfiguracjami softwareowymi) – przecież bardzo ciężko jest dobrze zapanować nad aktualizacjami bezpieczeństwa dla tak różnych środowisk. Całość problemu ilustruje choćby ta grafika podana za serwisem OpenSignal:
Zainteresowanym listą potencjalnych problemów z bezpieczeństwem platform Android oraz iOS to polecam wspomnianą już wyżej prezentację: Android vs. Apple iOS Security Showdown.
Wspominałem wyżej prezentację załogi Googla wychwalającą bezpieczeństwo Androida, ale oczywiście ekipa Apple również wyciąga z rękawa swoje asy. Wystarczy zobaczyć dość rozbudowaną listę funkcjonalności bezpieczeństwa dostępnych w iOS (ARM Execute Never, ASLR, App sandboxing, Hardware Encryption, Per App VPN czy jakże istotny w kontekście bezpieczeństwa App Store Review Process – to tylko kilka przykładów). Oczywiście jak to bywa w przypadku materiałów producenta – trzeba być czujnym.
Jak się np. okazało, Full Disk Encryption – przynajmniej w iOS < 7 – nie jest takie Full… (w wersji 7. jest o wiele lepiej). Czasem też zawodzą niektóre nowinki, jak np. ostatni hit – czytnik linii papilarnych. Idealna nie jest też recenzja aplikacji przed udostępnieniem w App Store.
Niemniej jednak platforma Apple przynajmniej pod względem bezpieczeństwa wydaje się być bardziej dojrzała niż Android (fani iUrządzeń mają do dyspozycji choćby wsparcie sprzętowe do FDE, w zasadzie nie ma tu problemu fragmentacji, a ograniczone do jednego miejsca źródło aplikacji i idący za tym proces analizy aplikacji przed udostępnieniem stanowi jednak niezłe sito dla malware). Zazwyczaj też pewne funkcjonalności pojawiają się wcześniej niż ich odpowiedniki w Androidzie (przykładem nich będzie choćby szyfrowanie zawartości telefonu). Odporniejszy na ataki wydaje się również system operacyjny Apple (wraz ze standardowymi komponentami typu przeglądarka internetowa) – może o tym świadczyć porównanie cen exploitów Android vs iOS. Dla tego pierwszego błąd 0-day na czarnym rynku kosztuje w granicach $30 000 – $60 000, tymczasem dla Appla są to kwoty dochodzące do $250 000, choć chodzą słuchy i o okrągłej kwocie pół miliona dolarów.
To temat zasługujący na co najmniej osobny tekst…
Jeśli sami przygotowujemy aplikację mobilną, to warto pamiętać choćby o takich elementach jak:
Pełniejszą klasyfikację można znaleźć na przykład na stronach OWASP (Mobile Security Project, The Mobile App Top 10 Risks, czy choćby IOS Application Security Testing Cheat Sheet). Bardzo dużo konkretnych informacji można też znaleźć w literaturze papierowej (patrz niżej).
Jednym z lepszych źródeł wiedzy jest też tutaj … praca na żywych aplikacjach. Kilka ciekawych zasobów praktycznych (aplikacje .apk do legalnego atakowania – w formie ctf/hackme) można znaleźć tutaj.
Na pewno warto polecić kilka książek, dostępnych – jak to często bywa – tylko w wersji anglojęzycznej:
Przed zakupem warto jednak wcześniej zapoznać się przynajmniej ze spisem treści, tak aby nie mieć niemiłych niespodzianek (na przykład iOS Hacker’s Handbook bardziej przeznaczona jest dla osób chcących poszukiwać podatności w samym systemie operacyjnym, niż dla developerów czy pentesterów aplikacji mobilnych).
Z innych ciekawych źródeł na pewno mogę też polecić serwis (blog) http://www.enterpriseios.com/. Znajdziemy tam zarówno bieżące ciekawostki związane z wdrożeniem platformy iOS w firmie, jak i np. porównania systemów MDM. Godnym rekomendacji jest też blog Jonathana Zdziarskiego, który zajmuje się głównie platformą iOS.
Jak zwykle warto też przeszukać archiwum konferencji blackhat – w tym roku nasz temat porusza np. prezentacja Android: One Root to Own Them All czy kwestie dotyczące praktycznych ataków na systemy MDM.
Zobacz też: audyt bezpieczeństwa aplikacji mobilnych.
michal.sajdak<at>securitum.pl