» »

SIMke končno heknjene

SIMke končno heknjene

vir: Forbes
Forbes - Tam okoli začetka avgusta se v Las Vegasu vsako leto zbere nebroj varnostnih raziskovalcev (in policajev), seveda zaradi soslednih konferenc Black Hat in Defcon. Temu primerno se julija vidno poveča tudi število najavljenih visokoprofiliranih varnostnih pomanjkljivosti. Ena bolj zanimivih iz letošnje bere, sploh za bralce tega časopisa, bo najbrž najava nemškega kriptoanalitika Karstena Nohla, da je končno uspel vdreti v tisti kos plastike in silicija, ki ga imamo v žepu domala vsi: SIM kartice.

Nohl je dobro znano ime v svetu mobilne telefonije - leta 2009 je bil del ekipe, ki je zlomila mobilni šifrirni algoritem A5/1 - ki so ga nekateri naši operaterji kljub temu prešerno uporabljali še lansko leto, ko se v to poglobili Hudoklin, Kovačič in Rupnik. Posledice tokratnega napada so lahko precej hude - namestitev sovražnega programja v vašo SIMko, s tem pa kraja denarja skozi pošiljanje SMS-ov na plačljive storitve, zloraba mobilnih plačil, izdelava duplikata vaše SIMke, in tako dalje.

Najprej dobro - niso vse kartice ranljive, pravzaprav jih je le kaka osmina. Vdor namreč poteka v dveh delih. Najprej je potrebno dobiti kartičin 128-bitni simetrični šifrirni ključ (Ka). Telefonu se pošlje tihi SMS - take sorte kot tisti, s katerim pri operaterju magično odklenejo vaš telefon oz. tisti, s katerim policisti prožijo javljanje telefona centrali za potrebe pritajenega sledenja. V SMS-u je (provizorični) zahtevek za namestitev nove programske opreme, a brez veljavnega digitalnega podpisa. Za izdelavo slednjega je namreč potrebno imeti kartičin ključ, tega pa naj bi (poleg kartice) imel samo operater. Kartica bo po preverbi podpisa zahtevek seveda zavrnila, do sem vse prav, žal pa nekatere od njih - nekje četrtina - to zavrnitev tudi podpišejo, seveda s svojim ključem. Napadalec tako dobi primer kriptoteksta, narejenega s kartico (aka a bad idea). Potem, če gre za kartico, ki uporablja že zelo dotrajani šifrirni algoritem DES (enojnega), bo Nohl s pomočjo mavričnih tabel uspel v manj kot minuti ven dobiti ključ.

A imate vi tako kartico? Zelo odvisno od vašega operaterja. AT&T in večji nemški operaterji naj bi bili varni (uporabljajo 3DES), pravi Nohl, pri ostalih pa se stvar spreminja od seta do seta kartic. Od 100 SIMk, ki jih je uspel dobiti v roke, jih je uspešno zlomil nekje 25.

Ko se napadalec uspe priti do ključa, je že skoraj zmagal. Zdaj lahko kartici pošlje nov SMS z veljavno podpisanim zahtevkom za namestitev svojega programja. Programja ni pretirano zahtevno spisati - ker vse SIMke vključujejo podporo za standard JavaCard, ki je v bistvu nekoliko okrnjena Java. Napadalec tako namesti in požene novo aplikacijo, s čimer lahko počne že marsikaj. Za popolno kontrolo nad telefonom pa se mora še izviti iz omejenega okolja (chroot), v katerem tečejo SIMkine JavaCard aplikacije, pač z rabo standardnih tehnik (buffer overflow, idr.). Potem lahko napadalec pošteno zagode imetniku telefona. In kot rečeno, lahko vse to stori lepo na daljavo, čez mobilno omrežje.

Nohl je napako že vnaprej posredoval mobilnim operaterjem oz. njihovemu združenju CTIA. Na njih je namreč, da identificirajo potencialno ogrožene SIMke, ter jih sami popravijo s pomočjo omenjenih tihih SMS-ov, oz. z vpoklicem telefonov, če bo že nujno. Ali bodo to res storili, je drugo vprašanje. Nohl ocenjuje, da bodo prvi exploiti na voljo čez recimo pol leta.

Nohl je ob tem opozoril še na to, da se na naših SIMkah često nahajajo tudi third party programi, npr. od Vise ali PayPala, ki bodo postali aktualni z razmahom mobilnega plačevanja. Operaterji seveda zaračunajo za njihovo prisotnost v našem žepu. Ti programi zmorejo enostransko in nevidno komunicirati s svojo centralo. Kaj to pomeni za našo zasebnost, bo morda kmalu precej zanimivo vprašanje.

41 komentarjev

RejZoR ::

In kako lahko izveš če je tvoja SIM kartica ranljiva?
Angry Sheep Blog @ www.rejzor.com

Relanium ::

Nebi se branil duplikata moje sim kartice, seveda da je v moji lasti.

Ampak preostalo je pa problem ja.
Telefoni NISO za bančništvo in finance in jih tako tudi nikoli ne bom sprejel.
Raj mastercard v denarnici.

techfreak :) ::

Telefoni NISO za bančništvo in finance in jih tako tudi nikoli ne bom sprejel.

So pa lahko dopolnilo oz. dodaten način verifikacije spletnega/kartičnega nakupa.

AndrejO ::

Napadalec tako dobi primer kriptoteksta, narejenega s kartico (aka a bad idea).
Napadalec tako dobi znane (svoje) podatke šifrirane s simetričnim ključem. To je slaba ideja, ker omogoča ugibanje tega ključa z medoto izčrpnega iskanja (poskušaš, dokler ga ne najdeš). "Bad idea" je pa razložena tukaj.

Najprej dobro - niso vse kartice ranljive, pravzaprav jih je le kaka osmina.
Od 100 SIMk, ki jih je uspel dobiti v roke, jih je uspešno zlomil nekje 25.
Ti dve povedi se ne ujemata. Če je bila uspešnost na izbranem vzorcu 0.025 promila, od kje potem ocena, da jih je ranljivih 12.5%? V povzetku je nekaj narobe ali pa nekaj manjka.

MrStein ::

25 je četrtina od 100. ;)
Motiti se je človeško.
Motiti se pogosto je neumno.
Vztrajati pri zmoti je... oh, pozdravljen!

XIIT ::

MrStein je izjavil:

25 je četrtina od 100. ;)


1. poved 3. odstavka
"Najprej dobro - niso vse kartice ranljive, pravzaprav jih je le kaka osmina."

V nadaljevanju pa piše da jih je od 100 uspešno zlomil 25, torej četrtino, ne pa osmino :)
"Only physical beauty is the foundation for a true higher culture of
the mind and spirit as well. Only sun and steel will show you the path."
Beauty is absolutely terrifying to people because it highlights what is ugly.

AndrejO ::

MrStein je izjavil:

25 je četrtina od 100. ;)

Očitno sem neke vrste dislektik, ki ima težavo s slovenskim novorekom. 100 SIMk sem prebal kot 100k SIM oz. 100.000 SIM kartic.

Očitno že pozabljam kako se pravilno napiše, da pri FBIju in NSAju prisluškujejo vsem po vrsti.

25% pa še vedno ni 12,5%.

Zgodovina sprememb…

  • spremenil: AndrejO ()

MrStein ::

Ja, to pravim, to si "izračunal" 0.025 promila, jaz pa sem te popravil, da je ena četrtina.
In ja, to ni isto kot osmina, XIIT. Se strinjam.
Motiti se je človeško.
Motiti se pogosto je neumno.
Vztrajati pri zmoti je... oh, pozdravljen!

krneki0001 ::

Očitno se pozna pri proizvajalcih in jih je ena osmiana takih, ki nimajo dobro zaščitenih kartic (ne uporabljajo 3DES), da pa je on od 100 kartic 25 komadov zlomil, pa mislim, da ni iz istega konteksta. Je pač dobil 25 kartic, ki nimajo 3DES.
Vsaj tako sem jaz razumel vse skupaj.
Asrock X99 Extreme 4 | Intel E5-2683V4 ES | 64GB DDR4 2400MHz ECC |
Samsung 250GB M.2 | Asus 1070 TI | 850W Antec | LC Tank Buster

trizob ::

Zanima me, ali se da zaznati tihe SMS-e, oz. to uporabniku nevidno komunikacijo JavaCard aplikacij ter na katerih platformah (strojnih, programskih).

Mimogrede pa je bilo možno SIM kartice klonirati že v začetku prejšnjega desetletja.

poweroff ::

Ja, samo kloniranje SIM kartic na daljavo je sedaj postalo precej težje.

Glede tihi SMS-ov - na Osmocom platformi se jih da lepo zaznati, na Android pa ne vem, ampak po moje ja. Poteka pa ravnokar ena zanimiva debata s TextSecure developerji, da bi v TextSecure vključili funkcijo zaznavanja in prikazovanja tihi SMS-ov. :P
sudo poweroff

trizob ::

poweroff je izjavil:

Ja, samo kloniranje SIM kartic na daljavo je sedaj postalo precej težje.

Glede tihi SMS-ov - na Osmocom platformi se jih da lepo zaznati, na Android pa ne vem, ampak po moje ja. Poteka pa ravnokar ena zanimiva debata s TextSecure developerji, da bi v TextSecure vključili funkcijo zaznavanja in prikazovanja tihi SMS-ov. :P


To me je zanimalo, dobil sem delni odgovor. Če ne TS, bi pa kakšna druga aplikacija ravno tako prišla prav.

Kako je pa s komunikacijo JavaCard aplikacij? Ali te tehnično lahko samo prek tihih SMS sporočil komunicirajo ali še kako drugače?

krneki0001 ::

Za symbiana se je dalo sprogramirat, da je pregledoval SMS socket in registriral tihe SMS-e.
Pa ni bilo prov dost dela s tem. Ne vem kako je sedaj to na androidu, predvidevam, pa da ne prav dost drugače, da nebi mogel sam narest take aplikacije.

void SMSRead()
     {
     TBuf8<2> matchTag;
     _LIT8(KTag1,"##");
     matchTag.Copy(KTag);
     iReadServer.Connect();
     //Opens a socket by creating a new subsession to the socket server.
     TInt err = iReadSocket.Open(iReadServer,KSMSAddrFamily,                                                 
                   KSockDatagram,  KSMSDatagramProtocol);
     if(!err)
	{ 
	TSmsAddr smsAddr; 
	// App. listens for sms msgs with some special tag in it.
  	smsAddr.SetSmsAddrFamily(ESmsAddrMatchText); 
	smsAddr.SetTextMatch(KTag1);
	TInt bindErr = iReadSocket.Bind(smsAddr);
	if(!bindErr)
	  {
	  sbuf() = KSockSelectRead;
	  //Applies an asynchronous I/O control operation on a socket.
	  iReadSocket.Ioctl( KIOctlSelect,iStatus, &sbuf, KSOLSocket);
	  iRead=ETrue;
	  SetActive();
	  }
	}
      }


void RunL()
     {
     if(iRead)
	{
        iFileSession.Connect()
	TBuf<2> matchTag;
	matchTag.Copy(KTag);
	CSmsBuffer *buffer=CSmsBuffer::NewL();
        CleanupStack::PushL(buffer);
	//Stream that reads a CSmsMessage object across a socket.
	RSmsSocketReadStream readStream(socket1);
	//Allocates and creates a CSmsMessage
	//ESmsDeliver-SMS-DELIVER, sent from service center to Station.
        CSmsMessage message = CSmsMessage::NewL
                        TheFs1,CSmsPDU::ESmsDeliver,buffer);
        CleanupStack::PushL(message);
 
        //Internalises data from stream to CSmsMessage
	message->InternalizeL(readStream);
	readStream.Close();
	//Extracting the received message to a buffer
        TBuf<255> msgContents;
	message->Buffer().Extract(msgContents,0,message->Buffer().Length());
        CleanupStack::PopAndDestroy(2)
        //compare whether the incoming message starts with "##"
	if( (buf1.Left(2)).Compare(matchTag) == 0)
	  {
	  iReadSocket.Ioctl( KIoctlReadMessageSucceeded,iStatus, &sbuf,KSolSmsProv);
	  //Now msgContents contains the actual message.
          iRead=EFalse;		
	  SetActive();
	  }
        }
     }

Asrock X99 Extreme 4 | Intel E5-2683V4 ES | 64GB DDR4 2400MHz ECC |
Samsung 250GB M.2 | Asus 1070 TI | 850W Antec | LC Tank Buster

Zgodovina sprememb…

trizob ::

Našel sem orodje za pošiljanje tovrstnih SMS sporočil na Androidu: http://www.silentservices.de/HushSMS-An...

Zelo zgovoren je zapis na tej strani:
HushSMS relies mainly on a library google decided to remove since Eclair (Android 2.0). However, HTC was so kind to reintegrate tis library for it's Sense UI. Thus HTC devices should be fully supported (at least the ones I own work without problems). As for other devices only a limited functionality is given. See below.

trizob ::

Zanima me tudi, kakšno komunikacijo imajo tehnično na voljo (JavaCard) aplikacije na kartici.

poweroff ::

Pošiljanje silent SMS-ov ni neka znanost. To je pač nek poseben flag v sporočilu. Zanimivi so tudi flash SMS-i, torej SMS-i, ki se ti neposredno (takoj po prejemu) prikažejo na zaslonu.

Glede JavaCard pa moram še malo preveriti. Vprašanje, ki se mi zastavlja je, ali se da narediti bypass RUN_GSM algoritma... pa seveda exploiti ala buffer overflow so problem.
sudo poweroff

Spc ::

SIMke ?
kaj je to ?
 

trizob ::

Matthai, pošiljanje tihih SMS-ov ni neka znanost, ne. Rabiš pa ROM, ki nima odstranjene funkcije sendRawPdu iz SmsManager razreda.

Moral bi pogledati, če imajo to telefoni s Sense UI še vedno ter, če so morda dodali v CM ROM. Pristni Android telefoni te funkcije nimajo.

trizob ::

Tukaj pa je še aplikacija, s katero je moč poslati t. i. flash SMS/class 0 SMS brez zgoraj omenjene funkcije: https://github.com/virtualabs/ZeroSMS

Poročajo, da deluje tudi na Nexus 4 telefonih/ROM-ih.

Zgodovina sprememb…

  • spremenil: trizob ()

FireSnake ::

Spc je izjavil:

SIMke ?
kaj je to ?



Torej ni samo mene to zbodlo.

Prav rad bi imel aplikacijo, ki bi mi zaznala te SMSe.
Poglej in se nasmej: vicmaher.si

LitralSM ::

po kaksnem ceniku ti operater zaracuna tihi sms, ce sploh zaracuna

trizob ::

LitralSM je izjavil:

po kaksnem ceniku ti operater zaracuna tihi sms, ce sploh zaracuna


Zaračunati ti ga ne sme, če ga, pa ne vem.

Relanium ::

FireSnake je izjavil:

Spc je izjavil:

SIMke ?
kaj je to ?



Torej ni samo mene to zbodlo.

Vauuuu, eni mate pa res zanimivo življenje, vtikanje se v besedni zaklad pisca novice.... noro!

Vsaj večina nas ve, kaj je bilo mišljeno, niso novice nek čistopis.

poweroff ::

LitralSM je izjavil:

po kaksnem ceniku ti operater zaracuna tihi sms, ce sploh zaracuna

Za prejem ti ga ne računa, pošiljanje pa po običajnem ceniku.

trizob je izjavil:

Matthai, pošiljanje tihih SMS-ov ni neka znanost, ne. Rabiš pa ROM, ki nima odstranjene funkcije sendRawPdu iz SmsManager razreda.

Aha, pa je to morda zadeva, ki se jo da z aplikacijo nadomestiti, ali je to del sistema in torej rabiš ustrezen ROM? Verjetno bolj to drugo...

Midva z Jakatom sva sicer to pošiljala preko Linuxa (python aplikacija) s pomočjo GSM USB modema.
sudo poweroff

trizob ::

Matthai:
Za prejem ti ga ne računa, pošiljanje pa po običajnem ceniku.


Če zaračunajo povratni SMS od pinga, ki ga samodejno pošlje tvoj telefon, je to pravno hudo sporna zadeva.

Aha, pa je to morda zadeva, ki se jo da z aplikacijo nadomestiti, ali je to del sistema in torej rabiš ustrezen ROM? Verjetno bolj to drugo...


Da se, kar so dokazali z ZeroSMS aplikacijo. Sej sem prilimal povezavo že prej: https://github.com/virtualabs/ZeroSMS

poweroff ::

trizob je izjavil:


Če zaračunajo povratni SMS od pinga, ki ga samodejno pošlje tvoj telefon, je to pravno hudo sporna zadeva.

To po moje ne. Sicer pa se silent SMS-e uporablja ne toliko zaradi povratnice, pač pa da vidiš, kaj se dogaja na omrežju ob dostavi.
sudo poweroff

trizob ::

Precej logično.

Sicer pa je vsaj kakšna špekulacija, koliko se jih pri nas pošlje? Ali vsaj, če se jih pošilja?

V Nemčiji so jih samo v letu 2010 poslali (policisti, cariniki in tajna služba skoraj pol miljona! http://www.heise.de/newsticker/meldung/...

Glede Flas SMS sporočil, pa naj bi ta stala dražje od običajnih pri večini operaterjev.

PujsaPepa ::

Je stvar (instaliranje napadalčevega programa) aktualna samo na novejših telefonih (symbian, android, ios, blackberrry) ali tudi na kakšne čisto starem, pol-funkcionalnem ? hmmm, sploh obstaja še kak telefon, ki ne podpira jave :) ?

poweroff ::

Vseeno je.
sudo poweroff

CyberDuck ::

Ali je uporaba tihi sms ov sploh dovoljena pri operaterjih ? Da ti recimo ob uporabit tihih smsov ne izklopijo številke ipd. ?

poweroff ::

Meni je niso. :P
sudo poweroff

trizob ::

Že več let se to da pri nas brez sankcij, prav tako ni na noben način prepovedano (operater nima nobenega pravilnika, sms zaračuna).

Zgodovina sprememb…

  • spremenil: trizob ()

kitara8 ::

ej tole me pa zanima :) a obstaja kaka aplikacija al kak način da presežeš te silent sms-e pač da veš da te je nekdo pingov?

kitara8 ::

aja pa a je mogoče kje kašna test verzija hush sms-a free da malo sprobam... nimam kreditne če ne bi že plačal tista dva €

poweroff ::

Osmocom telefoni znajo zaznati sprejetje silent SMS-a.

Software je tule in lepo dela, je pa res, da se splača uporabiti prilagojen Osmocom core, ker ta, ki je zraven vsebuje neke napake:
https://opensource.srlabs.de/projects/c...

Veliko sreče pri nameščanju... >:D
sudo poweroff

trizob ::

Če je kdo vešč, se lahko loti aplikacije za Android. Tukaj je nekaj napotkov: https://opensource.srlabs.de/projects/c... 8-)

poweroff ::

OFMG:
http://www.mladina.si/146600/vsak-cetrt...

Okoli četrtina telefonov na svetu naj bi imela enako napako, skrito v "standardu za enkripcijo podatkov"

Vse podrobnosti bo razkril na konferenci hekerjev "Črni klobuk", ki bo potekala konec julija v Las Vegasu v ZDA.


Nadaljuje pa se z nabijanjem o lociranju ugasnjenih telefonov...

Neverjetni so tile "novinarji" Mladine...
sudo poweroff

trizob ::

Ne samo novinarji, tudi operaterji so neverjetni!

Citat iz Dela:

Nekoliko bolj konkretna so bila zagotovila Simobila in T-2. V slednjem so pojasnili, da zaradi svojega dokaj poznega vstopa na trg mobilne telefonije nikoli niso uporabljali ranljivih kartic. In še: "V mobilnem omrežju T-2 uporabljamo algoritem šifriranja AES, ki ga ni mogoče obiti z opisanimi mehanizmi."

BaToCarx ::

In kaj je t-2 narobe rekel? Linky

poweroff ::

V omrežju ne uporabljajo A5/x algoritmov, pač pa AES?
sudo poweroff

trizob ::

AES in 3DES sta standarda, ki sta nadomestila DES za šifriranje kartice. To štima.

Nihče pa ni govoril o tem, da se zaobide DES šifriranje, pač pa se ga zlomi s pomočjo ranljivosti in grobe sile (mavričnimi tabelami).

Zgodovina sprememb…

  • spremenil: trizob ()


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Nov mobilni standard RCS se po svetu uvaja luknjičasto

Oddelek: Novice / Omrežja / internet
104209 (2954) niirb
»

SIMke končno heknjene

Oddelek: Novice / Varnost
4110656 (7283) trizob
»

Šifrirni algoritem A5/1, ki se uporablja za šifriranje GSM pogovorov, je padel

Oddelek: Novice / Zasebnost
276930 (4844) poweroff
»

Razbiti USB ključki s strojno podporo šifriranju podatkov

Oddelek: Novice / Zasebnost
484209 (2785) poweroff
»

Državljan inženir - online serija o odprtokodni strojni opremi, elektroniki, umetnost

Oddelek: Novice / --Nerazporejeno--
255053 (3830) urban99

Več podobnih tem