Objavljeno:

Zaznavanje tihih SMS sporočil

Ko sem se pred dobrimi tremi meseci vrnil v Makedonijo, sem v svojem telefonu aktiviral lokalno SIM kartico. A še preden sem uspel svoj predplačniški račun napolniti in aktivirati paket mobilnega interneta, sem na svoj telefon dobil zanimivo obvestilo. Aplikacija, ki jo pomagam razvijati, mi je poslala obvestilo, da sem na telefon prejel tim. tihi SMS.

Silent SMS detector

Silent SMS detector.

V Makedoniji uporabljam predplačniško SIM kartico, vendar pa izključno za mobilni internet. Klasične telefonije praktično ne uporabljam, svoje makedonske telefonske številke nisem delil z nikomer, za vsakdanjo komunikacijo pa uporabljam Signal registriran na svojo slovensko telefonsko številko. Zato me je obvestilo o prejemu tihega SMS sporočila na mojo makedonsko številko malce presenetilo. Še posebej, ker sem tihi SMS prejel iz - madžarske telefonske številke.

Kaj so tiha SMS sporočila?

Tiho SMS sporočilo (angl. silent SMS) je poseben tip sporočila, ki ga mobilni telefon prejemnika sicer sprejme, a ga uporabniku ne prikaže. Tiha SMS sporočila so tako nevidna za prejemnika, kar pomeni, da jih je na prejemnikov telefon mogoče pošiljati brez njegove vednosti.

V resnici pa pri tem ne gre za kakšno posebno zlorabo neke varnostne ranljivosti, pač pa so tim. tiha SMS sporočila (uporablja se tudi izraz binarna SMS sporočila) del dveh mobilnih telekomunikacijskih standardov, 3GPP 23.040 (originalno GSM 03.40) in 3GPP 23.038 (originalno GSM 03.38).

Kaj je torej mogoče narediti s tihimi SMS sporočili? Napadalec, ki na neko telefonsko številko pošlje tiho SMS sporočilo, lahko ugotovi, ali je ta telefonska številka aktivna v omrežju. Ker pa sprejem tihega SMS sporočila mobilni telefon prisili v aktivno komunikacijo z mobilnim omrežjem, to pomeni, da ob prejemu tihega SMS sporočila mobilni telefon izmenja podatke z najbližjo (dostopno) bazno postajo, s čimer razkrije svojo lokacijo. Pošiljanje tihih SMS sporočil tako lahko razkrije tudi lokacijo mobilnega telefona, zato se tiha SMS sporočila uporabljajo tudi za prikrito sledenje uporabnikov mobilne telefonije. V preteklosti je tako nemška policija tiha SMS sporočila uporabljala za sledenje osumljencev kaznivih dejanj.

Kaj se je (najverjetneje) zgodilo?

Obstaja več vrst tihih SMS sporočil, in vseh brez specializirane opreme ni mogoče zaznati. Kljub temu pa je nekatera tiha (binarna) SMS sporočila mogoče zaznati. Aplikacija, ki jo pomagam razvijati (na telefonu sem imel nameščeno razvojno različico aplikacije), je na mojem telefonu zaznala sprejem enega izmed takih sporočil.

Zakaj bi nekdo na mojo makedonsko predplačniško telefonsko številko želel poslati tihi SMS? Ena možnost je, da bi nekdo želel preveriti kdaj bo moja tukajšnja telefonska številka spet povezana v mobilno omrežje. Povedano drugače - nekdo bi želel preveriti kdaj sem se vrnil nazaj iz Slovenije.

Druga možnost pa je, da nekdo - morda kakšna prevarantska kriminalna združba - naključno preverja katere mobilne številke so aktivne in potem to informacijo uporablja za izvajanje phishing napadov.

Podatki iz dekodiranega tihega SMS sporočila so pokazali, da je pošiljateljeva telefonska številka iz Madžarske. To mi je bilo zanimivo, saj te države nisem še nikoli obiskal. Vsebina sporočila je bila šestmestna (najverjetneje naključna) številka. Iskanje po spletu je nato pokazalo, da je leta 2021 nekdo iz te telefonske številke različnim uporabnikom pošiljal navadna SMS poročila z naključnimi šestmestnimi številkami. Najverjetneje zato, da je ugotavljal ali so ciljne telefonske številke aktivne.

Dekodirani podatki tihega SMS sporočila

Dekodirani podatki tihega SMS sporočila.

Glede na navedeno lahko sklepam, da je bil tihi SMS, ki sem ga prejel del kakšne prevarantske (phishing) kampanje, v okviru katere ena izmed kriminalnih združb skuša ugotoviti katere telefonske številke so aktivne in katere ne. Ker je bilo pošiljanje običajnih SMS sporočil zaznano, pa so zdaj verjetno preklopili na pošiljanje tihih SMS sporočil. Sploh glede na dejstvo, da je bilo prejeto tiho SMS sporočilo tipa Class-0 in ne Type-0, a o tem malo kasneje.

Aplikacija

Aplikacija, ki jo pomagam razvijati, se imenuje Silent SMS detector in je dostopna na mojem Github računu. Gre za nadaljevanje razvoja aplikacije Android Silent SMS Ping, ki je bila razvita leta 2016, omogočala pa je pošiljanje in zaznavo tihih SMS sporočil (sicer samo točno določenega tipa).

Aplikacija se nato dlje časa ni več razvijala, originalni avtor pa je Github skladišče aplikacije dokončno arhiviral leta 2020.

V začetku leta 2023 je bilo aplikacijo še vedno mogoče namestiti preko skladišča F-Droid, vendar pa je Virustotal analiza pokazala, da je namestitvena APK datoteka na F-Droid okužena.

V začetku 2023 smo se nato s kolegi odločili, da aplikacijo posodobimo. Najprej smo posodobili SDK (na verzijo 33) in Javo (na verzijo 11), posodobili dovoljenja aplikacije, izboljšali obvestila in pričeli z implementacijo novega dizajna.

Obvestilo Silent SMS detectorja

Obvestilo Silent SMS detectorja.

Glavni del sprememb programske kode je prispeval znanec iz IRC-a, Jure, ki ima že kar nekaj izkušenj z razvojem različnih aplikacij, na novo pa smo oblikovali tudi ikone aplikacije.

Vrste SMS sporočil

Obstaja več vrst SMS sporočil in aplikacija Silent SMS detector zna zaznavati samo določene vrste.

  • Class 0 SMS: Ta SMS sporočila se prikažejo neposredno na zaslonu mobilnega telefona, vendar se ne shranijo na telefon. Za ta SMS sporočila se uporablja tudi izraz Flash SMS. Določeni parametri takega tipa SMS sporočila povzročijo, da se sporočilo na telefonu ne prikaže (niti se ne shrani na telefon), pošiljatelj pa vseeno prejme potrdilo o prejemu. Class-0 sporočila tako ob uporabi ustreznih parametrov služijo kot tiha SMS sporočila. Aplikacija Silent SMS detector ta sporočila lahko zazna.

  • Class 1 SMS: Gre za običajno SMS sporočilo. To SMS sporočilo se shrani na mobilni telefon ali SIM kartico.

  • Class 2 SMS: To sporočilo je namenjeno prenosu podatkov na SIM kartici. Gre za pošiljanje tim. tehničnih podatkov s strani mobilnega operaterja. Potrdilo o prejemu pomeni, da so bili podatki uspešno prenešeni na SIM kartico.

  • Class 3 SMS: Gre za običajna SMS sporočila, ki pa so posredovana na zunanjo napravo.

  • Type 0 SMS: Gre za prava tiha SMS sporočila, ki na telefonu ne sprožijo nobenega dogodka, vendar pa pošiljatelju vrnejo potrdilo o prejemu. Ta SMS sporočila imajo ti. TP_PID polje nastavljeno na vrednost 0x40. Namen teh sporočil je izključno eden - sledenje uporabnikom.

Maja 2010 je Google v kodi Androida naredil spremembo, ki povzroči, da Type-0 SMS sporočila ostanejo popolnoma skrita pred uporabnikom. To pomeni, da se ne prikažejo, se ne shranijo na telefonu in uporabnika ne obvestijo o prejemu. Teoretično bi bilo torej mogoče ta sporočila zaznati s spremembo Android kode. Vendar pa so raziskave pokazale, da prejem Type-0 sporočil v Androidovih dnevniških zapisnikih (angl. log) sprožijo zapis (GsmInboundSmsHandler: Received short message type 0, dont display it or store it. Send ACK.). Žal je za to potrebno imeti odklenjeno Android napravo (angl. rooted device). Aplikacija Silent SMS detector teh sporočil ne zmore zaznati, bi pa ob ustrezni spremembi programske kode in odklenjenem (tim. “rootanem”) Androidnem telefonu to bilo mogoče.

Kaj torej aplikacija dela (in česa ne)?

Aplikacija omogoča pošiljanje določene vrste tihih SMS sporočil (tim. SMS ping), s katerimi lahko ugotovimo ali je prejemnikova SIM kartica oz. telefonska številka aktivna v omrežju ali ne.

Hkrati pa ta aplikacija lahko zazna sprejem takega tihega SMS sporočila in o tem obvesti uporabnika. O tem tihem SMS sporočilu prikaže tudi cel kup podatkov, ki jih je mogoče uporabiti za tim. analitiko groženj (angl. threat analytics).

Aplikacija teče na običajnih Androidnih mobilnih telefonih in ne zahteva odklenjene naprave (angl. rooted device).

Se je pa potrebno zavedati kaj obvestilo, da smo prejeli tihi SMS pomeni in česa ne pomeni. Prejem tihega SMS ne pomeni, da je vaša telefonska številka tarča kakšnega napada. Tiha SMS sporočila se pošiljajo iz različnih (tudi povsem tehničnih) razlogov, zato prejem tihega SMS sporočila ni nujno indikator, da vam skuša kdo slediti.

Ta sporočila se namreč uporabljajo za pošiljanje binarnih podatkov, kot na primer tonov zvonenja, slik, WAP Push sporočil ter za Over The Air (OTA) programiranje in za pošiljanje konfiguracijskih podatkov. Preko tihega SMS sporočila tako na primer lahko dobite nastavitve za gostovanje (angl. roaming), itd. Na večini kartic SIM so namreč shranjene nastavitve, ki določajo prednostna omrežja. Operaterski seznam omrežij PLMN (Public Land Mobile Network), tako imenovani OPLMN, namreč operater domačega omrežja pogosto posodablja kar preko radijske povezave (tim. OTA). Do tega običajno pride, ko z vključenim mobilnim telefonom vstopite v novo državo in imate vključeno gostovanje. V tem primeru bo operater na vaš mobilni telefon poslal binarni SMS, Silent SMS detector pa ga bo zaznal in vas o tem obvestil. Seveda pa to ne pomeni, da vašo SIM kartico nekdo skuša locirati ali da vam nekdo skuša slediti.

Kot smo pokazali, pa po drugi strani obstaja več vrst tihih SMS sporočil in naša aplikacija zaznava samo določen tip le-teh. Če torej obvestila aplikacije niste prejeli, to ne pomeni, da na vašo telefonsko številko nekdo ni poslal tihega SMS sporočila (npr. kakšnega drugega tipa) ali da ni skušal izvesti kakšne druge oblike sledenja. Odsotnost obvestila torej ne pomeni, da vas nekdo ne spremlja.

Morda niste vedeli, a tudi vaša SIM kartica lahko naokrog samostojno pošilja SMS sporočila brez vaše vednosti. Leta 2021 je namreč raziskovalec David Allen Burgess ugotovil, da SIM kartice v nekaterih primerih pošiljajo SMS sporočila, ne da bi operacijski sistem telefona to sploh zaznal. O tem ni javno dostopne dokumentacije, uporabniki teh sporočil ne vidijo, operaterji pa o tem ne govorijo.

Burgess je do odkritja prišel pri preiskavi primera prometne nesreče, kjer je tožilstvo trdilo, da je do nesreče prišlo zaradi nepremišljene vožnje, saj naj bi voznik tik pred nesrečo pošiljal SMS sporočila. A izkazalo se je, da je SMS sporočila brez vednosti lastnika pošiljala njegova SIM kartica, preko SMS sporočila pa je pošiljala serijsko IMEI številko trenutnega telefona in telefona v katerega je bila vstavljena pred tem, ter še nekatere druge tehnične podatke. To vse kaže na to, da se v ozadju mobilne telefonije dogaja marsikaj, česar običajni uporabniki brez specializiranih znanj in opreme ne zmorejo zaznati. Mimogrede, to tudi pomeni, da si SIM kartica lahko zapomni v kateri mobilni telefon je bila vstavljena, kar pomeni, da menjavanje telefonov ni ravno učinkovita taktika zaščite pred sledenjem.

Če se želite popolnoma izogniti sledenju je pravzaprav edina možnost, da mobilni telefon izključite oziroma na njem vklopite tim. letalski način. Seveda pa to močno poslabša uporabniško izkušnjo, niti ni preveč praktično, zato ni pričakovati, da bodo uporabniki, ki se želijo izogniti sledenju okrog hodili z ugasnjenimi mobilnimi telefoni. Smisel in namen mobilnega telefona je vendarle v tem, da je prižgan. :) Je pa res, da obstajajo tudi druge strategije in tehnične rešitve s katerimi lahko otežimo sledenje in nadzor nad svojim mobilnim telefonom, a o tem kdaj drugič.

Aplikacija Silent SMS detector je tako predvsem zanimiv prikaz tehnologije, saj z njo lahko dobite vsaj delen vpogled v to kaj se dogaja “v ozadju”. Silent SMS detector vam namreč prikaže (nekatera) SMS sporočila, ki bi vam sicer ostala skrita. To pa je kar precej kul, kajne?

Aplikacijo si lahko namestite iz mojega Github skladišča, kdor ima čas, voljo in znanje, pa lahko pomaga tudi pri nadaljnjem razvoju in testiranju. Kot smo pokazali, bi bilo z nekaj dodatnega truda mogoče zaznavati tudi Type-0 tiha SMS sporočila, verjetno pa bi se dalo implementirati še kakšno drugo zanimivo funkcijo.

Dva tedna po prejemu prvega tihega sporočila sem obiskal Bolgarijo in za en dan izključil svojo makedonsko SIM kartico. Ko sem se vrnil domov in ponovno vključil mobilni telefon, sem čez slabih 20 minut prejel nov tihi SMS in sicer iz iste (madžarske) telefonske številke kot prvič. Drugačna je bila le naključna koda v poslanem sporočilu. Sem pa potem nazaj na pošiljateljevo telefonsko številko poslal navaden SMS z vprašanjem kaj se dogaja in od takrat naprej tihih SMS sporočil ne dobivam več… :)

Kategorije: Kibernetska varnost, Odprta koda, Informacijska tehnologija
Ključne besede: mobilna telefonija, GSM