Broadpwn: tak dziś się robi radiowe robaki na miliard smartfonów

Broadpwn: tak dziś się robi radiowe robaki na miliard smartfonów02.08.2017 21:06

Ujawniona w kwietniu technika ataku na procesory pasmapodstawowego Broadcoma zmusiłazarówno Apple jak i Google do wprowadzenia szybkich poprawek wmobilnych systemach: ta luka zagrażała setkom milionów urządzeń. Teraz najwyraźniej mamy powtórkę z tejhistorii. Zademonstrowany podczas ostatniej konferencji Black Hatatak pozwala na zdalne nadpisanie firmware czipów Wi-Fi z rodzinyBCM43xx, a następnie zdalne uruchomienie kodu, zarówno naAndroidzie jak i iOS-ie.

Odkrywca luki, Nitay Artenstein, może być z siebie dumny. Coraztrudniej stworzyć zdalne exploity, które nie wymagają żadnejinterakcji ze strony użytkownika – a takie interakcje,przeprowadzane głównie przez przeglądarki (kliknij bo inaczej twójtelefon będzie zawirusowany!) działają jedynie na najbardziejnaiwne osoby. Ostatnim takim skutecznym, samodzielnie siępropagującym w Sieci zagrożeniem był robak Conficker z 2008 roku.Zbudowany przez Artensteina exploit Broadpwn zapisze się w historiijako pierwszy po Confickerze samopropagujący się robak sieciowy,który wykorzystując sieć Wi-Fi zaraża urządzenia mobilne.

Broadcom jest największym na świecie dostawcą czipów radiowychWi-Fi, wykorzystywanym w najpopularniejszych markach smartfonów, wtym iPhone’ach i Samsungach Galaxy. Smartfonowe czipy radiowe tozaś o wiele ciekawsze ofiary, niż te, które wykorzystuje się wkomputerach osobistych. Obsługują one nie tylko warstwę fizyczną(PHY), ale ze względu na optymalizację zużycia energii wurządzeniach mobilnych, także warstwę kontroli dostępu do nośnika(MAC) i podwarstwę zarządzania uwierzytelnianiem (MLME) – jest totzw. FullMAC. Oznacza to, że sterownik w kernelu otrzymuje „natacy” pakiety danych do wysłania, nie musi z nimi już sam nicrobić.

Od zabezpieczeń głowa nie boli

Podczas testów przeprowadzonych na czipach Wi-Fi Broadcoma udałosię ustalić, że są one wolne od jednej z największych bolączekwspółczesnych napastników: zabezpieczeń DEP i ASLR. Nie tylkodysponujemy przewidywalną przestrzenią adresową, możemy takżeczytać, pisać i uruchamiać kod z dowolnego miejsca w pamięci –tak jak to było za starych dobrych czasów Windowsa 95 czy 98.

A co siedzi w takim czipie? Sporo ciekawostek. Co prawda firmwareWi-Fi jest proste, w badanych czipach udało się zidentyfikowaćokoło 9 tys. funkcji, o rząd wielkości mniej, niż w procesorachpasma podstawowego, więc i potencjał do exploitowania jestmniejszy. Z drugiej jednak strony łatwo się zabrać za jegobadanie. Firmware jest niezaszyfrowane, ładowane do pamięcioperacyjnej czipu za każdy razem gdy jest on resetowany, nie ma teżżadnych testów poprawności – więc można łatwo modyfikowaćkod i patrzeć, co z tego będzie.

Okazuje się, że w środku czipów Wi-Fi Broadcoma działamikrokontroler ARM Cortex-R4, obsługujący warstwy MAC i MLME przedprzekazaniem otrzymanych pakietów do jądra, ale to nie wszystko.Tkwi tam jeszcze własnościowy układ Broadcoma, obsługującywarstwę fizyczną, oraz specjalny interfejs do procesora głównegosmartfonu.

Na tym ARM-owym mikrokontrolerze działa jakiś bliżej nieznany,zamknięty system czasu rzeczywistego HNDRTE. To że jest zamknięty,wcale nie znaczy, że nie ma nigdzie jego kodu źródłowego.Artenstein z kolegami odkrył, że jego kod źródłowy wyciekł wrazze źródłami firmware zapomnianego dziś routera Zyxel VMG-1312. Coprawda była to starsza wersja, nie obejmująca najnowszychprotokołów 802.11, ale i tak okazała się ogromnie pomocna wanalizie funkcji obsługujących pakiety.

Przepełnij mi bufor: ta funkcja sama się prosiła

Znalezienie ciekawych błędów było już proste. Pomogłamodularność kodu, przystosowanego do obsługi różnych protokołów802.11. Ostatecznie uwagę zwróciła funkcja wlc_bss_parse_wme_ie,będąca częścią Wireless Multimedia Extension – rozszerzeniamającego pozwolić na priorytetyzację ruchu sieciowego dlamultimediów. To właśnie tam znaleziono klasyczny wręcz błąd: program wywołuje kopiowanie fragmentu pamięci, bez sprawdzenia, czy bufor jest dość duży, by pomieścić kopiowaną zawartość. Tak – to zwyczajne przepełnienie bufora. Co więcej, kopiowane dane zawsze trafiają w to samo miejsce, w tej samej strukturze danych.

Napisanie exploita nie było jakoś specjalnie trudne. Napastnik może czynić sensowne założenia co do przestrzeni adresowej atakowanego programu, samo zaś zawieszenie czipu Wi-Fi nie jest dla użytkownika zbytnio zauważalne – ot po prostu straci połączenie sieciowe, zauważy, że zniknęła ikonka z paska powiadomień. Zbudowany więc został słownik adresów dla poszczególnych wersji firmware Broadcoma, a następnie siłowo atakowano Wi-Fi spreparowanymi pakietami, aż ustalono poprawne zestawy adresów (ulepszona wersja exploitu nawet tego nie potrzebuje). Później już „tylko” pozostało poszukać metody na uruchomienie wgranego tak kodu. Też nie było to trudne – pomogła funkcja obsługująca tablicę adresów, spod których ten dziwny system operacyjny HNDRTE uruchamiał łatki aktualizacji. A gdzie umieścić shellcode? Miejsce znalazło się w specjalnym buforze systemu, używanym do zapisu pakietów z warstwy PHY przed ich przetworzeniem.

Atak wygląda więc trywialnie – złośliwy kod rozgłaszany jest po Wi-Fi na wszystkich kanałach. Gdy czip radiowy smartfonu ofiary skanuje eter pod kątem nowych punktów dostępowych, jego bufor zostaje załadowany bojowym ładunkiem exploita. Kolejne pakiety przenoszą zaś kod, który szuka w buforze specjalnej liczby – początku ładunku – i skacze do niego.

Jak od uruchomienia kodu na czipie radiowym przejść do uruchomienia kodu na procesorze aplikacyjnym? Przygotowany atak wykorzystał chyba najprostszą metodę, choć możliwe jest wykorzystanie innych metod, np. ataku po PCIe czy exploitowania sterownika w kernelu. W tym wypadku czeka się, aż użytkownik wejdzie na niezaszyfrowaną stronę (HTTP), a następnie przekierowuje go na złośliwy adres, wpisując w pakiet sieciowy polecenie JavaScriptu.

Radiowy robak

Sama natura odkrytego błędu, który można wykorzystać bez jakiegokolwiek uwierzytelniania, jak i stabilność jego działania, pozwoliły na jego podstawie stworzyć samoreplikującego się radiowego robaka. Zakażony smartfon może stać się mobilnym centrum zarazy, rozsiewającym Broadpwn.

Wystarczyło zmienić kod tak, by odpytującym o nowe punkty dostępowe urządzenia wysyłać odpowiedzi podszywające się pod te punkty dostępowe, a następnie przeprowadzić sekwencję wymiany pakietów uwierzytelniających, zawierających kod aktywujący odkryty błąd. Nawet jeśli czip się zawiesi, użytkownik tego nie zauważy, można więc siłowo dopasować się do jego wersji firmware i odkryć właściwe lokacje w pamięci.

Z przeprowadzonych testów wynikać ma, że w ciągu godziny sniffowania pakietów ruchu sieciowego w zatłoczonej przestrzeni miejskiej, 70% z nich pochodziło z czipów Wi-Fi produkcji Broadcoma. Można sobie tylko wyobrazić konsekwencje wypuszczenia takiego robaka na wolność.

Co robić i jak żyć?

Ujawnienie tych informacji przychodzi oczywiście już po wydaniu przez Broadcoma łatek. Podatność oznaczona jako CVE-2017-9417 została w Androidzie załatana w biuletynie bezpieczeństwa z 5 lipca, Apple włączyło poprawkę do iOS-a 10.3.3 wydanego 19 lipca.

Teraz tylko ręka w górę ci użytkownicy Androida, którzy mają zainstalowane biuletyny bezpieczeństwa z 5 lipca.

Ze szczegółami działania Broadpwn zapoznacie się we wpisie blogowym Nitaya Artensteina.

Szanowna Użytkowniczko! Szanowny Użytkowniku!
×
Aby dalej móc dostarczać coraz lepsze materiały redakcyjne i udostępniać coraz lepsze usługi, potrzebujemy zgody na dopasowanie treści marketingowych do Twojego zachowania. Twoje dane są u nas bezpieczne, a zgodę możesz wycofać w każdej chwili na podstronie polityka prywatności.

Kliknij "PRZECHODZĘ DO SERWISU" lub na symbol "X" w górnym rogu tej planszy, jeżeli zgadzasz się na przetwarzanie przez Wirtualną Polskę i naszych Zaufanych Partnerów Twoich danych osobowych, zbieranych w ramach korzystania przez Ciebie z usług, portali i serwisów internetowych Wirtualnej Polski (w tym danych zapisywanych w plikach cookies) w celach marketingowych realizowanych na zlecenie naszych Zaufanych Partnerów. Jeśli nie zgadzasz się na przetwarzanie Twoich danych osobowych skorzystaj z ustawień w polityce prywatności. Zgoda jest dobrowolna i możesz ją w dowolnym momencie wycofać zmieniając ustawienia w polityce prywatności (w której znajdziesz odpowiedzi na wszystkie pytania związane z przetwarzaniem Twoich danych osobowych).

Od 25 maja 2018 roku obowiązuje Rozporządzenie Parlamentu Europejskiego i Rady (UE) 2016/679 (określane jako "RODO"). W związku z tym chcielibyśmy poinformować o przetwarzaniu Twoich danych oraz zasadach, na jakich odbywa się to po dniu 25 maja 2018 roku.

Kto będzie administratorem Twoich danych?

Administratorami Twoich danych będzie Wirtualna Polska Media Spółka Akcyjna z siedzibą w Warszawie, oraz pozostałe spółki z grupy Wirtualna Polska, jak również nasi Zaufani Partnerzy, z którymi stale współpracujemy. Szczegółowe informacje dotyczące administratorów znajdują się w polityce prywatności.

O jakich danych mówimy?

Chodzi o dane osobowe, które są zbierane w ramach korzystania przez Ciebie z naszych usług, portali i serwisów internetowych udostępnianych przez Wirtualną Polskę, w tym zapisywanych w plikach cookies, które są instalowane na naszych stronach przez Wirtualną Polskę oraz naszych Zaufanych Partnerów.

Dlaczego chcemy przetwarzać Twoje dane?

Przetwarzamy je dostarczać coraz lepsze materiały redakcyjne, dopasować ich tematykę do Twoich zainteresowań, tworzyć portale i serwisy internetowe, z których będziesz korzystać z przyjemnością, zapewniać większe bezpieczeństwo usług, udoskonalać nasze usługi i maksymalnie dopasować je do Twoich zainteresowań, pokazywać reklamy dopasowane do Twoich potrzeb. Szczegółowe informacje dotyczące celów przetwarzania Twoich danych znajdują się w polityce prywatności.

Komu możemy przekazać dane?

Twoje dane możemy przekazywać podmiotom przetwarzającym je na nasze zlecenie oraz podmiotom uprawnionym do uzyskania danych na podstawie obowiązującego prawa – oczywiście tylko, gdy wystąpią z żądaniem w oparciu o stosowną podstawę prawną.

Jakie masz prawa w stosunku do Twoich danych?

Masz prawo żądania dostępu, sprostowania, usunięcia lub ograniczenia przetwarzania danych. Możesz wycofać zgodę na przetwarzanie, zgłosić sprzeciw oraz skorzystać z innych praw wymienionych szczegółowo w polityce prywatności.

Jakie są podstawy prawne przetwarzania Twoich danych?

Podstawą prawną przetwarzania Twoich danych w celu świadczenia usług jest niezbędność do wykonania umów o ich świadczenie (tymi umowami są zazwyczaj regulaminy). Podstawą prawną przetwarzania danych w celu pomiarów statystycznych i marketingu własnego administratorów jest tzw. uzasadniony interes administratora. Przetwarzanie Twoich danych w celach marketingowych realizowanych przez Wirtualną Polskę na zlecenie Zaufanych Partnerów i bezpośrednio przez Zaufanych Partnerów będzie odbywać się na podstawie Twojej dobrowolnej zgody.