11:22
11/3/2011

Zawieszanie telefonów SMS-em

Nico Golde oraz Collin Mulliner powtórzyli na kończącej się konferencji CanSecWest swoją prelekcję z 27C3 i zaprezentowali ataki typu “SMS Śmierci”. Za pomocą odpowiednio spreparowanych wiadomości SMS pokazali jak zawiesić, a w niektórych przypadkach także trwale uszkodzić, kilka telefonów komórkowych.

SMS of Death

Badacze na laptopie wyposażonym w OpenBSC stworzyli włąsną sieć GSM i użyli fuzzera, który generował i wysyłał SMS-y na telefony (nie smartphony) firm takich jak LG, Sony Ericsson oraz Nokia. Po odebraniu niektórych wiadomości telefony restartowały się lub zawieszały. Jeden z telefonów Sony Ericsson został całkowicie uszkodzony, a buffer overflow znaleziony w przetwarzaniu MMS-ów w telefonie LG pozwolił badaczom na jego całkowite zablokowanie.

SMS hack

Zaprezentowane ataki oczywiście nie wymagały żadnych działań ze strony właścicieli telefonów. W większości przypadków informacje o odebraniu SMS-a nawet do nich nie docierały (i nie zostawały zapisywane w historii) — co utrudnia dojście do przyczyny “zawieszenia”.

Badacze zwrócili uwagę, że tego typu ataki mogą być groźne dla sieci GSM. Jednoczesny restart 10 000 telefonów może według nich przeciążyć sieć. Dodatkowo podczas prezentacji powtórzono to, co wiadomo od dawna: ciężko jest zabezpieczać telefony, bo większość z nich nie ma opcji automatycznej aktualizacji, a opieka nad telefonem spada z reguły nie na producenta, a operatora GSM.

Tymczasem na właśnie kończącym się pwn2own poległy nowsze typy telefonów: iPhone’y i BlackBerry — nikt nie podjął się ataków na telefon Della Venue Pro z Windows 7 Mobile i Nexusa S z Androidem.

Przeczytaj także:



20 komentarzy

Dodaj komentarz
  1. Parę ładnych lat temu już były takie sms na siemensa które zawieszały go przy wejściu w daną wiadomość (czasy C35i z tego co pamiętam); teraz można działać na większą skalę.

  2. Jakoś mi się przypomniało. ;)
    http://blog.konieczny.be/2009/01/03/jak-zawiesic-nokie-symbiana-jednym-sms-em/

  3. Ja też pamiętam modyfikowane softy z tamtych czasów z opcją “virus” w menu wiadomości :)

  4. Bardzo ciekawy temat.

    Czy są gdzieś dostępne prezentacje, albo jeszcze lepiej, video z konferencji?

  5. Oj, coś czuję że mocno entuzjastyczny jest ten news. Pewnie w praktyce się okaże, że to prawda, ale tylko niektórych modeli, niektórych producentów i tylko ja takim-a-takim firmware. Tak jak pisał Zbyszek, w starych Siemensach był błąd przetwarzania wiadomości, chodziło SMSy z kodami sterującymi (%language% AFAIK).
    A współcześnie coś mi się za bardzo wierzyć nie chce, aby wykopyrtnąć telefon wiadomością, której użytkownik nawet nie odczytał. No i “uszkodzenie” telefonu… hmm… nie mam pojęcia co autor miał na myśli :-)

    Pewnie bajer tkwi gdzie indziej. Po prostu mając własną sieć GSM chłopaki wzięli na warsztat protokół komunikacji i tam znaleźli babola. A to że operator może swobodnie mieszać na karcie SIM to wiedzą wszyscy.

    • Przecież jasno dali znać, że atak polegał na fuzzingu — Panowie generowali SMS-y o różnej treści (think: binary) i wysyłali na telefony. Firmware na telefonach nie radził sobie z interpretowaniem tych wiadomości. Wiadomość SMS, podobnie jak E-mail, ma swój format.

    • Tak, ale coś mi się wierzyć nie chce co do “uszkadzania” telefonów. Może w jakimś modelu rozjedzie się baza SMS albo do jakiegoś menu nie da się wejść, ot, całe mecyje. W Siemensach wystarczyło przytrzymać czerwoną słuchawkę dłużej lub w ekstremalnych sytuacjach wyciągnąć baterię. Zagrożenie marginalne, chyba że ktoś odpali takie ustrojstwo na koncercie AC/DC i zrestartuje mały odsetek komórek.

    • zmechu2: skoro taki SMS pozwala atakującemu na wykonanie kodu, to atakujący może np. usunąć część filesystemu/zmodyfikować firmware. Efekt: telefon się nie włączy — i to badacze rozumieją pod “uszkodzeniem”, nie chodzi o wybuch ekranu, czy stopienie się klawiatury ;)

    • I tu jest właśnie pies pogrzebany. Bo albo błąd polega na parsowaniu treści/nagłówków/whatever i objawia się niemożnością odczytania wiadomości (lub np. wejścia do Odebranych), albo tak jak wspominasz następuje wykonanie kodu. Pierwszy to raczej ciekawostka niż realne zagrożenie, a co do drugiego… za mało jest informacji by stwierdzić czy rzeczywiście jest to poważny problem który wyjdzie poza warunki laboratoryjne. IMHO to raczej ciekawostka niż exploit :-)

  6. Ano były faktycznie lata temu – sławny “%English” wysłany przez żartownisiów uwalił mi z 5 razy SL45i :/

  7. Pamiętam, że było coś podobnego na Nokie – jakiś ciąg gwiazdek czy kropek.

  8. Swojego czasu zmieniałem softy w nokii 3310 i po zmianie można było wysłać smsa który zawieszał inne nokie :D

  9. wszystkie materiały z tej konferencji są do pobrania tu http://events.ccc.de/congress/2010/wiki/Documentation

  10. Smartfony są odporne, czy zwyczajnie im się nie chciało?
    Dobrze mi się wydaje, że jedyną opcją zabezpieczenia jest napisanie sobie filtrowania(łatwa część) i wsadzenia go jakimś sposobem jako pierwszej rzeczy wykonywanej po otrzymaniu smsa(trudna część)?

  11. Pamiętam jak kiedyś był gif z czaszką któru zawieszał telefony, głównie se:D

  12. Tak sobie przypomniałem jeszcze… Swego czasu trzymając SMSy na karcie pamięci w jakimś SE (modyfikowany soft – zapisywał esy na karcie), gdy bawiłem się w hexedit tych plików, większość kombinacji powodowało restart albo white-screen, raz zdarzyło się wyczyścić całą skrzynkę poprzez otwarcie takiego SMSa (?!) lub otworzyć jakąś opcję z menu telefonu a czasem po prostu dostawałem komunikat “wiadomość uszkodzona” – co do tego ostatniego dziwi mnie, dlaczego dla poprzednich kombinacji nie było tak ;)
    %English – słyszałem o tym – stare Nokie 3210/3310/3410 zawieszał SMS który w innych telefonach wyglądał jako dwa dziwne znaki (@FTN).
    Edycja firmware’u SMSem – to jest możliwe? Na smartfonach może tak, na telefonach tylko z Javą najczęściej sam telefon nie może się zflashować – np. na wspomnianych SE trzeba zaaplikować loadera zamiast main firmware – a on w SMSie się raczej nie zmieści ;)

  13. AVE…

    Jeśli błąd polega na przepełnianiu buforu, zaś telefon używa RAMu w mikrokontrolerze nim sterującym, to może przypadkiem nadpisać jakiś rejestr i zapisać to potem w EEPROMie. Jeśli zmieni się zawartość rejestru obsługującego zasilanie jakichś układów, to można je z łatwością uwalić. Zdarzyło mi się coś takiego, jak robiłem przetwornicę na PIC16F785. Błąd w kodzie sprawił, że na wyjściu uzyskałem zbyt wysokie napięcie…

    Jeśli zdarzy się, że telefon wykona losowy kod, przykładowo assemblerowy, to może przypadkiem zmienić zawartość pamięci programu, jako że standardowo nie ma ograniczeń co do dostępu do pamięci, co jest wykorzystywane przy pisaniu bootloaderów. Jeśli firmware jest kiepski, to nie zabezpiecza przed takimi błędami. Kolejną możliwością jest wstawienie przypadkiem jakiegoś losowego skoku do RAMu, gdzie kod tkwi w trakcie pracy – wtedy program się rozjeżdża i dzieją się cuda-wianki…

    Jeszcze jedno: nadpisanie kodu w EEPROMie gdzieś na początku skutecznie uczyni telefon całkowicie niesprawnym – w takich przypadkach trza albo wgrać program przez złącze programowania na płytce telefonu, albo (jeśli czegoś takiego nie ma) wylutować mikrokontroler i zaprogramować go zewnętrznie. Problem w tym, że zwykle producenci udostępniają program główny (firmware), ale nie dają kodu bootloadera…

  14. Żeby zawiesić moją nokie wcale nie potrzeba spreparowanego smsa, często robią to zwykłe wiadomości ; )

  15. jakie dokładnie SE mają z tym problem?
    W800i chyba, ale jakie jeszcze..?

  16. […] nie było, że tylko Windows Phone jest podatny na tego typu ataki, przypominamy o SMS-ach śmierci na szereg innych telefonów różnych […]

Twój komentarz

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

RSS dla komentarzy: