19:43
19/8/2013

Popularne “dongle” USB, służące do podpięcia komputera do mobilnego internetu są podatne na ataki i obniżają bezpieczeństwo komputerów, do których są podpinane. Rahul Sasi poddał analizie modemy sprzedawane przez kilku operatorów i we wszystkich znalazł poważne błędy.

Jak działają modemy 3G na USB?

Szacuje się, że na świecie w użyciu jest ponad 80 milionów modemów. Producentem większości z nich jest firma Huawei. Modemy umożliwiają podłączenie komputera do sieci GSM/CDMA. Domyślnie, producenci i sprzedawcy (czyli sieci GMS) wraz z modemami przekazują użytkownikom sterowniki z oprogramowaniem do obsługi modemu (tzw. dialery). Architektura komunikacji pomiędzy komputerem a modemem i siecią wygląda tak:

Architektura modemu 3G na USB

Architektura modemu 3G na USB

Dialer umożliwia wydawanie modemowi komend AT, przy pomocy których modem “wdzwania się” do sieci GSM. Dzięki podpięciu do sieci GSM, modem może odbierać i wysyłać SMS-y. I tu zaczyna się zabawa…

Fuzzowanie modemów 3G

Rahul postanowił wysłać szereg niestandardowych wiadomości SMS, żeby zweryfikować, jak poradzi sobie z nimi parser SMS-ów wbudowany w oprogramowanie modemu. Każdy przychodzący SMS jest bowiem automatycznie odbierany, interpretowany i umieszczany zazwyczaj w bazie sqlite.

Jedną z podatności, jaką udało mu się wywołać był crash modemu po odebraniu odpowiednio spreparowanej wiadomości SMS.

Wstrzyknięcie shellcode’u przez SMS-a

Chociaż przy pomocy odpowiednio zmodyfikowanych wiadomości SMS nie udało się wstrzyknąć meterpretera, to Rahul napisał skutecznego exploita (mieszczącego się w jednej wiadomości SMS), który zapisuje dane do pliku c://hack.txt. Oto jego demonstracja:

Rahul zastrzega jednak, że nie udostępni jednak swojego exploita przez najbliższe 3 miesiące. Powodem jest brak funkcji automatycznej aktualizacji oprogramowania na modemach umożliwiającej załatanie modemów w krótkim czasie.

Reakcja Huawei

Ciekawa jest reakcja Huawei na zgłoszone przez Rahula błędy w modemach USB. Najpierw firma nie odpowiedziała, żeby po kilku dniach wysłać Rahulowi z automatu …życzenia świąteczne z okazji chińskiego Nowego Roku. Po kilku następnych dniach, dział bezpieczeństwa Huawei skontaktował się z Rahulem na jego inny adres e-mail, podpytując, czy prezentacja, którą będzie wygłaszał na nadchodzącej konferencji dotyczy może modemów Huawei…

Koniec końców Huawei poprawił błędy, ale ponieważ modemy nie mają funkcji automatycznej aktualizacji firmware’u, ich użytkownicy muszą sami znaleźć, pobrać i zaaplikować łatkę. Warto tu wspomnieć, że większość operatorów GSM, którzy “brandują” modemy pod siebie, w ogóle nie informuje swoich klientów o jakichkolwiek poprawkach bezpieczeństwa — są więc spore szanse, że praktycznie nikt nie wgrał patchy na błędy znalezione przez Rahula

Rahul badał modemy dedykowane na rynek indyjski — wiele jednak wskazuje na to, że problemy z parsowaniem SMS-ów dotyczą także innych modelów…

Warto przy tym zauważyć, że ponieważ kanał komunikacji to SMS (sieć GSM), systemowy firewall nie ochroni nas przed tym atakiem… Atakujący co prawda musi przewidzieć numer ofiary — albo pójść na łatwiznę i masowo rozesłać exploita na wszystkie numery danego operatora…

PS. Rahul w swoich badaniach skorzystał ze sniffingu USB (na Mac OS X istnieje fajny sniffer; na Windows można skorzystać z SnoopyPro, a na Linuksie z Wiresharka).

Przeczytaj także:

34 komentarzy

Dodaj komentarz
  1. Czyli w grę wchodzi masowa aktualizacja firmware modemów. Problem w tym, że operatorzy mogą wprowadzić konieczne zmiany z dużym opóźnieniem, więc wielu klientów czeka debranding, czyli wgranie oprogramowania ze strony Huawei. Nie obędzie się bez ofiar w postaci uwalonych modemów i co za tym idzie ich niezamierzonej wymiany na nowszy model.

    PS
    ZTE także produkuje sporo modemów USB, ale Huawei dominuje na tym rynku.

  2. hehe ale czego tu sie bac, po prostu podlanczajac modem instaluje sie jedynie jego sterowniki nic wiecej, by odebrac sms jest potrzebna ta fikusna aplikacja ktora do pracy modemu jest jak najbardziej zbedna

    • Czy ja wiem fikuśna… Ja np. w Play Online muszę tej aplikacji użyć aby się połączyć.

    • @Grzesiek, wydaje mi się, że bez bólu da się ustawić Windowsa tak żeby łaczył się bez tej aplikacji

    • Oczywiście, że się da połączyć bez korzystania z aplikacji. Ja instaluję same sterowniki, podłączam modem i dodaję nowe połączenie Dial-Up. Wszystko działa jak powinno, a nie mam wkurzającej aplikacji operatora. Na routerach 3G przecież działają modemy niezależnie od sieci.
      Pamiętaj, że PIN trzeba zdjąć, żeby móc się łączyć od razu. W przeciwnym wypadku musisz włączyć aplikację w Twoim wypadku Play’a, połączyć się, rozłączyć i wtedy Dial-Up od Windowsa, a to jest kompletnie bez sensu.

    • @Marcin, wprowadzenie PIN nie wymaga stosowania aplikacji operatora. Całość obsługi modemu i jego konfiguracji wykonuje się komendami AT. Nawet obsługę listy kontaktów SIM i dostęp do bazy SMS/MMS.
      Nawet w Windowsie można we właściwościach modemu ustawić “Extra initialization commands”.
      Komenda dla wprowadzenia PIN 1234 to AT+CPIN=”1234″.
      Dialer Windows nie obsłuży odczytu statusów zwracanych przez komendy, ale to nie jest potrzebne przy wydzwanianiu połączenia.

    • Nie musisz, możesz ręcznie skonfigurować połączenie.

  3. Jw.
    W zyciu nie korzystalem z syfiastych I zamulonych dialerow opow. Tylko I wylacznie top_netinfo

  4. A podpowiedzcie mi jak to wyglada pod Linuxem? Uzywalem pppd zeby toto wydzwonic. Sterownik oczywiscie nie byl “donglowy”, aplikacja wydzwaniajaca typowo linuchowa a manager sieci… heh no coz ;)… Chyba wydzwonienie tego barachla pod Linuxem jest bezpieczne co? Generalnie ciesze sie ze zmienilem providera i sposob podpiecia do sieci…

    Pozdrawiam.

    Andrzej

    • Mnie też się wydaje, że to wada dotycząca tylko oprogramowania userspace (a może i driverów?) Windows. Samo słowo “firmware” brzmi tu dosyć dziwnie, bo przecież modem nie ma dostępu do komputera – jest urządzeniem typu slave, działającym w sieci pakietowej bez żadnego DMA, i może tylko wysyłać pakiety danych po USB (w przeciwieństwie do np. IEEE1394 FireWire). Jak komputer taki pakiet zinterpretuje, to już sprawa OS’a.
      A bezpieczeństwo dużych, monolitycznych systemów o niskiej przejrzystości (vide: Windows i “drivery”, z których każdy zajmuje 300MB i w rzeczywistości jest daemonem z 30 punktami wejścia i 50 dziurami) nigdy nie było zbyt dobre.

    • Nie widzę takiej możliwości. Pod Linuxem używa się surowego sterownika do portu szeregowego /dev/ttyUSBx
      To aplikacja (np. dialer) mająca prawa czytania i pisania do takiego urządzenia decyduje co wysłać, pobrać, jak przetworzyć i ew. co ostatecznie zapisać w lokalnym systemie plików. Odczyt bazy SMS/MMS przypomina trochę dialog z serwerem pocztowym POP. Jeśli uprzesz się, żeby skrypty obsługujące przetwarzanie odebranych wiadomości interpretowały je jako shellcode, to z uprawnieniami użytkownika je uruchamiającego wszytko co się w takim SMSie znajdzie może zostać wykonane lub gdzieś zapisane.

    • Czyli dobrze myslalem.

      Dziekuje za odpowiedz.

      Pozdrawiam.

      Andrzej

  5. elmo mylisz się. Do działania modemu potrzebujesz sterowników który ów błąd zawiera

    • Ciekawe jak to wygląda w modemach Huawei z HiLink, czyli niewymagających sterowników a tym bardziej aplikacji klienckiej (ustawienia zmienia się w oknie przeglądarki). Taki modem łączy się z internetem niemal od razu po włożeniu do gniazda USB. Podobno modemy z HiLink mają kłopot ze współpracą z ruterami, ale na komputerach to dobrodziejstwo.

  6. Skoro da się pisać do c://hack.txt to ciekawe czy da się pisać przykładowo do folderu Startup plik hack.exe w częściach ;p

  7. Czyli trzeba będzie wgrać Mobile Partnera – mój aktualny to 23.009.05.00.69. Modem mam ok 2 mcy, ale pewnie poleżał w magazynie?!

    • Modem masz od niedawna, ale zapewne nie jest to najnowszy model dopiero wprowadzony na rynek. W związku z tym już w chwili zakupu nowy sprzęt (ale nie najnowszy model mogący leżeć w sklepie nawet dłuższy czas od momentu produkcji) ma zainstalowany nie najnowszy firmware. To samo jest przecież z ruterami, w których tak naprawdę należy zacząć od poszukania na stronie producenta nowego firmware i jeśli nasz jest starszy zaktualizować go. Nowy komputer prosto ze sklepu także może mieć dość stare sterowniki, bo wyprodukowano go jakiś czas temu. Wiara w automatyczne zaktualizowanie lub sprawdzenie aktualizacji z poziomu aplikacji bywa złudna (sprawdzone na przykładzie rutera Netgear i Asus), choć w modemach często działa to lepiej, niż w ruterach. Pozostaje więc sprawdzanie co jakiś czas strony pomocy technicznej produktu.

  8. Z tym PPPoE to trochę nie za bardzo. Modemy mogą pracować w dwóch trybach – RAS i NDIS (starsze tylko w tym pierwszym). Tryb pierwszy polega na inicjacji połączenia telefonicznego z numerem *99# za pośrednictwem protokołu PPP. Drugi natomiast udostępnia możliwość łączenia się z siecią komórkową w taki sam sposób, jak z sieciami Wi-Fi.

  9. a jeśli nie używam dostarczanego przez operatora, tylko korzystam z modemu pod linuxem? to rozumiem, że o tyle jestem bezpieczny, że w najgorszym przypadku shellcode nie zadziala jak należy, a w najlepszym całkiem?

  10. Man pytanie, czy jeśli do łączenia się z internetem za pomocą modemu huawei używam routera tp-link, to też jestem podatny na atak? Wydaje mi się że nie, ponieważ on chyba nie obsługuje smsów, przynajmniej nie moge ich pisać, ani odbierać.

    • Czy ktoś jeszcze tutaj do łączenia się z internetem za pomocą modemu używa routera?

    • Ja używam… Mam modem podłączony do routera 3G.

    • Coś w tym złego? Czy po prostu się pytasz?

  11. a kto bedzie zgadywal nr sim w modemie? naromiast rozsylanie po calej sieci to żmudna praca – szczegolnke sprawdzanie trafien. poza tym wiekszosc ludzi ma teraz hotspota w komorce i malo kto wpina usb modem.

    • Nie każda komórka posiada lte , a przecież ta technologia internetu się u nas właśnie rozwija , masa niezabezpieczonych huawei

  12. @niebezpiecznik: Moglibyście jakoś jaśniej, na co jest ten exploit? Na firmware modemu, wykonywany w obrębie RTOS’a działającego na mikroprocesorze/MCU modemu? Czy na aplikację hosta? Z tekstu to bezpośrednio nie wynika.
    Jeśli exploit jest faktycznie na firmware, i jakoś pozwala to na dostęp do systemu plików host OS’a, to znaczy, że cały stack jest do bani…

  13. Wireshark ma opcję łapania ruchu USB:
    http://wiki.wireshark.org/CaptureSetup/USB

  14. Generalnie nie rozumiem powodu dla potencjalnej aktualizacji firmware modemu przy takiej podatności. Jak mogłoby fizyczne urządzenie uzyskać dostęp do lokalnego systemu plików?
    W Windows problem może być tylko w sterowniku modemu (mało realne) lub w dialerze / aplikacji do jego obsługi. Może więc chodzi o sterownik i aplikację operatora dla Windows, które umieszczają na wirtualnym CD, w ROMie modemu?

    Modem po zainicjowaniu łączności z siecią operatora (wprowadzenie PIN i ew. danych APN) sam nie grzebie w OS i zachowuje się całkowicie autonomicznie. O wszystko, co jest przez niego gromadzone, aplikacja musi sama zapytać.

  15. @wowi: przecież jest wyraźnie napisane w artykule, że problemem jest błąd w oprogramowaniu, które prócz połączenia z internetem, zajmuje się także SMSami, które automatycznie odczytuje, jak przyjdą, a następnie przetwarza (i tu chyba jest ten znaleziony błąd).
    Ta aplikacja działa pod Windows, więc użytkownicy Linuksów czy routerów nie są zagrożeni.

  16. Mam kilka pytań – opisany błąd znajduje się w Firmware czy w Dashdoardzie (sterowniki+aplikacja dialera np. Mobile Partner lub wersja operatorska) modemu? Których modeli dotyczy i gdzie szukać stosownej aktualizacji?

  17. Na Linuxie w networkmanagerze jakos nie potrzebuje zadnych dziwnych aplikacji z dziurami.
    Smsy są olewane i funkcjonuje po prostu internet bez sms. Nawet gdyby wyslano takiego smsa to nic sie nie stanie, bo nie zostanii przetworzony.
    Jak ktoś powiedział – zawsze da sie ominać te durne aplikacje i ‘puscic’ internet Windowsem. To powinno wystarczyć.

  18. Problem na szczęście nie dotyczy użytkowników darmowego
    internetu od AERO2 bo tam są karty SIM tylko do transmisji danych,
    bez przypisanego numeru MSISDN.

  19. Dlaczego przez pewien czas 0:46-0:59 Pan operuje w tle na wierszu poleceń?

  20. @Arek: Dlatego operuje na wierszu poleceń bo ten pan chciał stać sie popularny a zrobił z siebie jedynie istotę zrobioną z kulek lepioną tradycyjnie w zimie. Tak zazwyczaj wyglądają wszystkie rzeczy typu wiem ale nie powiem.

Twój komentarz

Zamieszczając komentarz akceptujesz regulamin dodawania komentarzy. Przez moderację nie przejdą: wycieczki osobiste, komentarze nie na temat, wulgaryzmy.