21:09
21/12/2011

Bogdan Alecu odnalazł błąd logiczny w sposobie działania sieci GSM. Przy pomocy tego błędu możemy wysłać wybranej osobie SMS-a, który sprawi, że jej telefon sam z siebie zacznie wysyłać inne SMS-y. Automatycznie generowane SMS-y można “przekierować” na numery premium, co znacząco wpłynie na rachunek ofiary za telefon…

SMS-owy atak na aplikacje z SIM Toolkit

Dziura znajduje się w sposobie w jaki telefony przetwarzają specjalne SMS-y kierowane do aplikacji znajdujących się w tzw. SIM Toolkit. Karty SIM polskich operatorów także zawierają preinstalowane aplikacje tego typu:

SMS Toolkit Plus GSM

Aplikacje z SMS Toolkit w sieci Plus GSM na iPhone

Aplikacje z SIM Toolkitu potrafią wykonywać szereg różnych akcji, w tym sprawdzać wysokość środków na koncie abonenckim, brać udział w loteriach, sprawdzać horoskopy, etc.

Aby przekazać informację do aplikacji z SIM Toolkitu, należy wysłać odpowiednio spreparowanego SMS-a. Większość telefonów nie informuje użytkownika o fakcie otrzymania SMS-a tego typu. Instrukcje zawarte w SMS-ie nie są jednak ślepo wykonywane przez aplikacje z SIM Toolkitu — wszystko zależy od tego, czy w nagłówku SMS-a zawarto poprawny podpis elektroniczny. Kryptografia wykorzystywana do tego celu jest silna, i wbrew pozorom, Alecu nie znalazł sposobu na jej obejście lub złamanie — poszedł inną drogą…

Na czym polega atak?

Atak wykorzystuje następującą prawidłowość: jeśli do aplikacji z SIM Toolkitu wyśle się SMS-a, który zawiera błędny podpis, aplikacja generuje automatyczną odpowiedź do nadawcy z opisem błędu (tzw. SMS-a serwisowego).

Wysyłka SMS-a z automatyczną odpowiedzią przez nasz telefon także nie jest widoczna, a wg testów Alecu, tylko telefony Nokii mają opcje, która pozwala użytkownikowi na podjęcie decyzji, czy aplikacje z SIM Toolkitu mogą wysyłać odpowiedzi automatycznie (“Confirm SIM Service ActionsConfirm SIM Service Actions” — uwaga, domyślnie jest ona z reguły wyłączana przez operatorów!).

Na telefonach HTC, Samsunga i LG z Androidem nie udało się znaleźć opcji do zablokowania odpowiedzi tego typu. Podobnie na Blackberry. Z kolei Windows Mobile 6.x oraz iPhone informuje użytkownika, że wiadomość serwisowa jest wysyłana, ale nie pozwala na przerwanie wysyłki.

Na czym polega atak? Oczywiście na przesłaniu SMS-a z podrobionym numerem nadawcy. SMS jest kierowany do aplikacji z SIM Toolkit i oczywiście nie przechodzi weryfikacji podpisu elektronicznego. Aplikacja odsyła więc nadawcy wiadomość serwisową — na jaki numer? Na ten, który “podrobił” nadawca, a który w rzeczywistości może należeć do usługi SMS Premium, która obciąży rachunek ofiary odpowiednią opłatą.

Atakujący nie ma możliwości sterowania treścią serwisowego SMS-a od aplikacji z SIM Toolkitu — ale część z numerów premium nie wymaga konkretnej treści (np. słowa TAK) w zgłoszeniu subskrybcji.

Ciekawym wariantem ataku jest podrobienie przez atakującego numeru należącego do centrum SMS operatora ofiary. Wtedy wiadomość serwisowa jest interpretowana przez sieć jako błąd w dostarczeniu wiadomości i kolejkowana do ponownej wysyłki. Powstaje więc pętla (operatorzy starają się dostarczyć wiadomości przez ok. 24h) i mamy atak typu DoS na telefon.

Jak ustrzec się ataków tego typu?

Jak informuje Register, Alecu przedstawił swoje odkrycie na konferencji DefCamp, bazując na operatorach z Rumunii, Bułgari, Austrii , Niemiec i Francji — ale ponieważ atak nie wykorzystuje podatności u konkretnego operatora, ale bład logiczny w działaniu pewnych standardów sieci GSM, najprawdopodobniej podatni są wszyscy operatorzy, którzy sprzedają karty SIM z aplikacjami SIM Toolkit.

Na szczęście atakowi można łatwo zapobiec — albo poprzez filtrowanie ruchu SMS na poziomie operatorskim, albo — i to trudniejsze rozwiązanie — poprzez modyfikacje w firmware’ach telefonów tak, aby automatyczna wysyłka serwisowych SMS-ów przez aplikacje z SIM Toolkitu nie była możliwa. Można też korzystać z kart SIM które nie mają włączonej opcji “SIM point-to-point”.

Na razie pozostaje przełączyć się na starą, dobrą Nokię ;)

Przeczytaj także:


Dowiedz się, jak zabezpieczyć swoje dane i pieniądze przed cyberprzestępcami. Wpadnij na nasz kultowy ~3 godzinny wykład pt. "Jak nie dać się zhackować?" i poznaj kilkadziesiąt praktycznych i przede wszystkim prostych do zastosowania porad, które skutecznie podniosą Twoje bezpieczeństwo i pomogą ochronić przed atakami Twoich najbliższych. Uczestnicy tego wykładu oceniają go na: 9,34/10!

Na ten wykład powinien przyjść każdy, kto korzysta z internetu na smartfonie lub komputerze, prywatnie albo służbowo. Wykład prowadzimy prostym językiem, wiec zrozumie go każdy, także osoby spoza branży IT. Dlatego na wykład możesz spokojnie przyjść ze swoimi rodzicami lub mniej technicznymih znajomych. W najbliższych tygodniach będziemy w poniższych miastach:

Zobacz pełen opis wykładu klikając tutaj lub kup bilet na wykład klikając tu.

65 komentarzy

Dodaj komentarz
  1. No tak – ciekawe jak szybko to filtrowanie zostanie wprowadzone w naszym kraju. I który z operatorów to zrobi jako pierwszy. A przy okazji, nie wie ktoś, czy można -wyłączyć- całe SIM toolkit?

    • “Na telefonach HTC, Samsunga i LG z Androidem nie udało się znaleźć opcji do zablokowania odpowiedzi tego typu. Podobnie na Blackberry. Z kolei Windows Mobile 6.x oraz iPhone informuje użytkownika, że wiadomość serwisowa jest wysyłana, ale nie pozwala na przerwanie wysyłki.”

    • Nie chodzi o wyłączenie samych smsów zwrotnej ale całej usługi wraz z jej funkcjonalnością.

    • Wydaje mi się że można odinstalować tą aplikację (jeżeli tylko ona jest za to odpowiedzialna) na telefonach z androidem, ale ze złamanym systemem

  2. Chodzi o SMSy klasy 0?

    • Chyba nie (klasa 0 to te “pop-upy”?)
      chodzi o smsy, z których korzystają te dodatkowe opcje SIM Extra, które fundują nam operatorzy w kartach SIM (jakieś horoskopy, lokalizacyjne i przydatne informacje, jeśli nie mamy neta).

  3. Dobrze ze jestem fanbojem Nokii.

  4. HTC – Cyanogenmod 6.1 (i dalsze chyba też, nie wiem jak w innych ROMach): wystarczy odinstalować Stk.apk (można sobie przedtem zrobić backup). Proces odpowiedzialny za SIM Toolkit to com.android.stk, jak będę miał chwilę to usiądę jutro i zobaczę przez adb czy nie można w jakiś łatwy sposób zablokować automatycznej odpowiedzi :)

    • Ciekaw jestem czy nie wystarczy czasem ‘zamrożenie’ tej aplikacji, np. przez Titanium Backup. Nie wiem tylko czy taką opcję posiada wersja darmowa – przy okazji sprawdzę.

    • MIUI 1.12/CM7 jest plik /system/app/Stk.apk . Zmieniłem mu nazwę póki co. Tylko przydałaby się teraz aplikacja/strona do przetestowania, czy rzeczywiście taki sms zostanie zignorowany/potraktowany jak zwykły przez telefon.

    • Shamar, XXX: I’m pretty sure you’re removing the option to access the SIM Toolkit from your phone menu, but you’re not actually removing the behavior of STK. It’s like removing “HKEY_CLASSES_ROOT\SimToolkit.UI” from Windows Mobile registry – you will not be able to access the application, the phone will not show anymore that a message is being sent, BUT the SIM card still instructs the phone to send a message.

    • I’m curious if an app that is blocking SMS messages would do the trick? Need to check…

    • Shamar: already did that (on WM & Android)- no luck! The application monitors the messages that go to “inbox”, not the ones that are addressed directly to the SIM card.

    • Sigh… Right, I wonder what MSG_TYPE are those messages… I’m not the pro in this but I think once we know that writing a piece of code that would intercept them shouldn’t be a big deal. Intercepting outgoing messages would be very tricky at least in android so blocking incoming sms is the best solution I think.

    • Shamar, it’s a class 2 (U)SIM specific message – DCS set to F6 – as it’s also shown in the presentation. Just look at the Wireshark captures from my presentation. This can’t be solved by just installing a software as you have to go deeper, into the ROM. Why? Because the standard says that when the phone receives such a message (with the correct DCS, PID values) then it will transparently pass it to the SIM without notifying the user. And remember: it has to be something that will satisfy all of the users: those that want to use the mbanking, those that do not want to jailbrake/root/cook ROM and so on.

    • So the message with DCS=F6 and proper pid doesn’t trigger the broadcast intent and somehow bypasses android.telephony.SmsManager
      , did I understand you right?

    • I can’t say for sure as I don’t have an Android phone. What you could try is to access an application from your SIM card that requires a text message to be sent to the operator and watch the logs to see what exactly is accessed.

  5. Ciekawe, czy w grę wchodzi upgrade firmware kart SIM, tak by SIM Toolkit nie wysyłał sms-ów z opisem błędu. Swoją drogą SIM Toolkit praktycznie przemija, bo wypierają go aplikacje na smartfony (głównie z iOS i Androidem). Sam od bardzo dawna nie skorzystałem z SIM Toolkit na karcie Play. Aplikacja na simie to w dzisiejszych czasach swoisty bufor pozwalający na dostep do serwisów operatora na starych prostych telefonach lub na smartfonie w razie awarii aplikacji.

    Co ciekawe jakiś czas temu pokazano kartę SIM obsługującą Facebooka przez SIM Toolkit. Ale to sposób na dostęp do FB z nie-smartfonów na ubogich rynkach.

  6. Pamiętam że GaduAir to zapoczątkował, potem kolejni operatorzy to wprowadzali – że jak włożymy kartę sim do nowego telefonu to automatycznie zostaje wysyłany SMS a po chwili dostajemy konfiguracje. To jest właśnie to o czym mowa we wpisie ;) SimToolKit w Polsce z moich wiadomości na pewno ma: Plus(PlusMega), Orange(Usługi Orange – od niedawna chyba), T-Mobile(niewiem, ale Era dawniej miało SimExtra, pamiętam że mając TakTaka zjadało kasę do -5PLNów :D ). Heyah chyba też coś miało, nie wiem jak z Playem.

    • W Play też są aplikacje na SIMie, kilkanaście nawet.

    • Orange ma te karty z jakieś 7 lat. Kiedyś nazywały się SIMteligent.

    • Play na pierwszych swoich kartach już miał coś takiego, że jak wsadzisz kartę do nowego telefonu to automatycznie wysyła smsa do operatora a ten odsyła wiadomości z konfiguracją internetu i mms. GaduAIR wtedy nawet nie istniało

    • A nie przypadkiem Play zapoczątkował automatyczną konfigurację telefonu? Poza tym SIM Toolkit służy także do bardziej trywialnych rzeczy typu odsyłanie do serwisów WAP operatora (np. wiadomości, gry, dzwonki). W Orange i w Plusie służy także do sprawdzania maila w skrzynce od operatora. W Play z poziomu STK można włączyć tani roaming. STK jest bardzo prymitywny i bardziej zaawansowanych opcji nie oferuje, bo z założenia ma byc kompatybilny nawet z najprostrzymi telefonami (przynajmniej tymi z tego stulecia).

      Co ciekawe aplikacje STK bywały jednak bardziej zaawansoiwane. Przed laty Raiffeisen Bank jako pierwszy wprowadził aplikację STK do obsługi konta (tylko na kartach abonamentowych w Plusie przez lata uważanym za operatora dla klienta typowo biznesowego). Dość dawno temu także mBank to ćwiczył z ówczesną Erą (tym razem także w prepaidowym tak-taku). Pamiętam, że można było doładowywać sobie komórkę z ekonta za pośrednictwem STK (niezbędna była lista haseł jednorazowych). Jednak jak już wcześniej wspomniałem aplikacje mobilne wyparły STK.

    • [Era dawniej miało SimExtra, pamiętam że mając TakTaka zjadało kasę do -5PLNów :D )]

      Na -6.10PLN kończyło się jedynie wyświetlanie dokładnej kwoty (“Stan konta poniżej -6.10PLN.”)…

      … wiem bo, kuźwa, wiem…

    • Inteligo jeszcze przed Austriakami korzystało z SIMextra -> nieczynne już dziś Płacę SMSem
      były to karty z aplikacją od Plusa, a od Ery ściągało się aplikację na kartę SIM w sposób zdalny

  7. Dlatego od lat jestem wiernym userem Nokii 6151 – aparacik ma, w gierki da się pograć i dopóki się nie rozleci wymieniać nie zamierzam.

  8. AVE…

    HTC + Win6.1 + Plus -> jest SIMToolkit, nie da się go wyłączyć, ani ograniczyć mu dostępu do wysyłania esemesów. Chyba że z poziomu edycji kluczy rejestru…

  9. Thank you for the subject coverage and I must say it’s one of the best posts I’ve read since you’re providing also some screenshots and side comments. Congrats!

    • Thanks Bogdan and keep up good work! We’ll try to get some insights on that matter from polish carriers and get back to you with the results. Cheers!

  10. “Na razie pozostaje przełączyć się na starą, dobrą Nokię ;)

    ale chyba nie starą w znaczeniu dosłownym, bo mam “nową” i właśnie sobie wyłączyłem to dziadostwo, dzięki za info :)

  11. Na Nokii 5530 i, jak podejrzewam, pochodnych z S60v5: Ustawienia > Telefon > Zarządzanie tel. > Zabezpieczenia > Telefon i karta SIM > Potwierdź usługi SIM.

    • U mnie w e51 jest podobnie:
      Menu->ustawienia->ogólne->zabezpieczenia->telefon i karta sim->potwierdź usługi sim

    • dzięki, na E52 jest tak samo

    • i na E72 też

  12. we wszystkich nokiach jakie miałem od 3210 do E51 była opcja ręcznego potwierdzania wysłyłki smsa w usługach sim

    • Krótko mówiąc nawet stare Nokie obsługiwały STK (te najstarsze z XX wieku oczywiście nie, nie pamiętam jak to było w N3210), ale z możliwością wyłączenia

  13. Powiem, nie zdradzając niestety zbyt wiele szczegóów, że chyba tym przed laty chwaliła się moja znajoma pracująca w telekomunikacji . Twierdziła, że kazano jej napisać program, który po którejś odpowiedzi użytkownika wysłanej na płatny numer, sprawi, że ten zapłaci w jakiś sposób parokrotnie. (Ten błąd uaktywniano dopiero po paru smsach, żeby nikt nie nabrał podejrzeń, że po wysłaniu 1 smsa zapłacił jakąś chorą sumę. A gdy ktoś wysyłał takie smsy na sportowo, to tego nie zauważał.)

  14. Mnie to raczej nie dotyczy, kartę SIM mam z 1998 roku i na niej nie mam w ogóle usług SIM.

    • To jak ci chodzi w sieci 3G? Poza tym chyba już wtedy były aplikacje STK, choć może nie w Polsce.

    • No włacha, w sieciach 3G nie używamy SIM ale USIM a te chyba wszystkie mają Application Toolkit.

    • Paweł, mam sima z 1999 r i 3g w iph4 chodzi bez problemu. Oczywiście trzeba było go nieco przyciąć, żeby się zmieścił.

  15. Ja ostatnio musiałem powrócić do Nokii 3510 no więc los mi sprzyja ;)

    • Używam tej Nokii 3510i odkąd ją tylko zakupiłem wiele lat temu. W menu, jak byka, widzę coś takiego, jak Plus Mega. Opierając się na wytycznych Maxika dotarłem do ustawień, w których nawet w tej starej Nokii mogę se zmienić ustawienia potwierdzania usług SIM, a co za tym idzie nawet ta stara Nokia te usługi obsługuje. Sprawdź to lepiej, zanim zaczniesz spać spokojnie ;)

  16. “Można też korzystać z kart SIM które nie mają włączonej opcji SIM point-to-point” – drogi Niebezpieczniku, czy ja jako abonent tej wielkiej bezdusznej maszyny do wyciągania ostatnich pieniędzy (zwanej operatorem sieci komórkowej) mam jakikolwiek wybór??? To czy karta będzie ona miała z SIM Application Toolkit czy nie zależy wyłącznie od widzi-mi-się operatora. Problem w tym, że teraz chyba wszystkie nowe karty są z SAT i nikt się klienta nie pyta o zdanie. Z kolei nowe karty SIM nie za bardzo dają się klonować więc tworzenie własnej nie wchodzi w grę.

    • Nawet stare karty mają SAT. Już od czasu kart Plus Mega oferowanych jeszcze pod koniec XX w. a już na pewno na początku XXI w. Nazwa Mega pochodziła właśnie od aplikacji STK (menu Plus Mega, tak się to wtedy nazywało). Oczywiście karty 3G to karty USIM, jednak większość ludzi używa określenia SIM choć w istocie coraz częściej chodzi o USIM.

  17. Pytanie – czy jeżeli po prostu zablokuję możliwość odbierania sms-ów spoza listy to taki spreparowany sms przejdzie czy nie?

    • Jak mas ztylko taki program to tak

  18. Dobra…
    Kilkulatnia Nokia z kartą SIM Orange’a… Karta jest tak stara, że ma jeszcze na sobie napis ‘Idea’. Nie ma na niej chyba żadnych konfiguracji i aplikacji, chyba korzystałam z niej jeszcze na ‘czarno-białym’ telefonie.
    iPhone z Playem… gorzej, bo Play dorzuca trochę aplikacji itd. Ale skoro iPhone informuje, to dobrze – jeśli się zdarzy, to wyjąć kartę, pokombinować (ew. zamienić z kartą w Nokii, gdzie już blokuję te wiadomości*) i już.
    Chyba jestem chwilowo bezpieczna~.

    *Patrząc na post Maxika poszukałam u siebie.
    Nokia 6220classic: Ustawienia -> Ust. telefonu -> Ogólne -> Zabezpieczenia -> Telefon i karta SIM -> Potwierdź usługi SIM

  19. A czy aplikacji SIM nie dało się tak zrobić, aby ta wszelkie wiadomości diagnostyczne wysyłała tylko pod określone numery serwisowe, bynajmniej nie-premium? Co za problem aby wszelkie SMS-y przychodzące z innych numerów aplikacja ignorowała lub odsyłała odpowiedź ale zawsze pod predefiniowany numer należący do operatora???

  20. A wie ktos jak można to na adroidzie wyłączyc?? Ogólnie to nie chce mis ie w to wierzyć troche czuc tutaj sieanie apniki

    • Nie da się ponoć tego w prosty sposób wyłączyć. Można zablokować aplikację Sim Toolkit, ale wiadomości i tak będą w sposób transparentny dla użytkownika docierały do karty SIM.
      Jedyna opcja to zmiany w ROMie, a i tu na razie nie ma pewności czy to pomoże.

  21. […] all the media coverage of the subject (quite impressive) a lot of talks started, specially on Niebezpiecznik site from Poland, about how to protect from such attacks. Here are some good […]

  22. Wie ktoś z was jak wysłać takiego smsa ?

  23. W HTC HD2 pod winmo wystarczy ściągnąć BSB Tweaks i ustawić “STK service” na “off”.

  24. Ja mam Nokię 6300 i nie widzę opcji potwierdzania tych SMSów :(

  25. Akurat chyba najlepiej mieć na kartę telefon.Puste konto nic Ci się nie stanie.

  26. Wesołych Świąt!

  27. hahahah. Robienie z igly widly – tego typu “podatnosci” sa znane od lat a tutaj zaraz panika :). Aby wyslac tego typu SMS potrzebny jest dostep do sygnalizacji SS7 po stronie operatora lub dostep miedzynarodowy (routing SS7). Majac dostep do tego typu infrastruktury otwieraja sie mozliwosci robienia znacznie lepszych przekretow niz nabijanie pojedynczym ludziom kasy z premium SMS. Filtrowanie ruchu po stronie operatora to mrzonka – zbyt duze koszty. Z terytorium obcego kraju mozna zrobic atak DoS na infrastrukture (np. DDoS na HLR) i kazdy ma to w dupie.

  28. Wydaje mi się że to raczej sianie paniki bo ktoś wypatrzył jakąś lukę, a jeśli to wszystko tak działa to operatorzy będą musieli coś wymyślić.

  29. Lepszą luką IMO jest to, że mogę wysłać smsa rejestrującego w dowolnej usłudze przez odpowiednio spreparowaną bramkę sms, jako dowolny numer ;-)

  30. Jeśli ktoś chce na szybko zabezpieczyć androida to trzeba by napisać kilkulinijkową aplikację. Jedna klasa implementująca broadcastreceiver i po nagłówku niech sprawdza kazdy sms i killbroadcast na smsach serwisowych, priorytet 100 i nic nie powinno przejść.

  31. Czyżby Onet czytał Niebezpiecznika..? Bo 3 dni różnicy pomiędzy artykułami są.

    http://technowinki.onet.pl/inne/wiadomosci/sms-ktory-moze-kosztowac-fortune,1,4981484,artykul.html

  32. Can I SEND THIS SPECIAL SMS as a normal user with normal prepaid sim card, or do I need extra privilleges not available to a simple user?

  33. Takie pytanie o zezwolenie wysyłki takowego smsa mi wyskakuje tylko w Noki N93.
    W żadnym starszym ani nowszym modelu takowego pytania nie miałem a co najwyżej informacji o wysyłce ;)

  34. Sony Ericsson Xperia Arc S (android), stock SE rom, chyba 2.3.4, ma opcje wylaczenia push sms od operatora. Czy to dziala nie wiem, bo nie mam jak sprawdzic.

Twój komentarz

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

RSS dla komentarzy: