OnePlus telefoni koji pokreću OxygenOS otkrivaju IMEI vašeg telefona kad god vaš telefon traži ažuriranje. Telefon koristi nesiguran HTTP POST zahtjev.
The OnePlus One bio je jedan od prvih Android pametnih telefona koji je dokazao da potrošači ne moraju izdvojiti više od 600 USD za vrhunsko iskustvo. Drugim riječima, čak i po nižoj cijeni trebali biste nikad se smiriti za kupnju lošijeg proizvoda.
Još uvijek se sjećam pompe oko otkrivanja specifikacija za OnePlus One - tvrtka je iskoristila fanatizam koji su iskazali entuzijasti Androida kada je došlo do curenja informacija. OnePlus je odlučio polako otkrivati specifikacije telefona jednu po jednu nekoliko tjedana prije službenog predstavljanja - i uspjelo je.
U to smo vrijeme slinili na telefon koji koristi Snapdragon 801 s 5,5" 1080p zaslonom, kao i na vrlo primamljivo partnerstvo s novonastalom tvrtkom Cyanogen Inc. (od kojih su bili entuzijasti za Android vrlo uzbuđen zbog popularnosti CyanogenModa). A onda nam je OnePlus svima bacio najveću bombu – početna cijena od 299$. Samo me još jedan telefon uistinu oduševio svojom isplativosti - Nexus 5 - i
OnePlus One ga je otpuhao iz vode. Sjećam se da su mnogi Nexus entuzijasti bili rastrzani između nadogradnje na OnePlus One ili čekanja na izlazak sljedećeg Nexusa.Ali onda je OnePlus napravio niz odluka koji su, iako su neki bili ekonomski opravdani, ubili određeni zamah za marku među Android entuzijastima. Prvo je to bila kontroverza oko sustava poziva, zatim su došle kontroverzne reklame i ispadanje s cijanogenom, zatim tvrtka je dobila nešto mržnje za OnePlus 2 izdanje koje u očima mnogih ljudi nije uspio živjeti svom nadimku "Flagship Killer", i konačno tu je crvenokosi posinak OnePlus X pametni telefon koji je tek sada dobio Android Marshmallow a prije nekoliko dana.
Dva koraka naprijed, jedan nazad
Svaka čast OnePlusu, tvrtka je to uspjela ponovno pokrenuti hype okružujući svoje proizvode s OnePlus 3. Ovaj put, OnePlus ne samo da se pobrinuo za rješavanje mnogih pritužbi koje su recenzenti i korisnici imali na OnePlus 2, nego je čak otišao i više od toga u rješavanje pritužbi ranog pregleda i izdavanje izvornog koda za prilagođene programere ROM-a. Još jednom, OnePlus je stvorio proizvod koji je dovoljno uvjerljiv da razmislim o čekanju na izlazak sljedećeg Nexus telefona i da nekoliko članova našeg osoblja kupi jedan (ili dva) za njih. Ali postoji jedan problem oko kojeg su neki naši zaposlenici oprezni - softver. Prilično smo podijeljeni oko toga kako koristimo svoje telefone - neki od nas žive na rubu krvarenja i flešuju prilagođene ROM-ove poput sultanxda neslužbeni Cyanogenmod 13 za OnePlus 3, dok drugi pokreću samo dionički firmware na svojim uređajima. Među našim osobljem postoji određeno neslaganje oko kvalitete nedavno izdanog Izgradnja zajednice OxygenOS 3.5 (što ćemo istražiti u budućem članku), ali postoji jedno pitanje oko kojeg se svi slažemo: krajnje zbunjenost činjenicom da OnePlus koristi HTTP za prijenos vašeg IMEI-ja dok provjerava ažuriranja softvera.
Da, dobro ste pročitali. Vaš IMEI, broj koji jedinstveno identificira vaš telefon, Poslano je nešifrirano poslužiteljima OnePlusa kada vaš telefon traži ažuriranje (sa ili bez korisničkog unosa). To znači da svatko tko prisluškuje mrežni promet u vašoj mreži (ili bez vašeg znanja, dok pregledavate naše forumima dok ste povezani na javnu žarišnu točku) mogu dohvatiti vaš IMEI ako vaš telefon (ili vi) odlučite da je vrijeme da provjerite Ažuriraj.
Član tima XDA portala i bivši moderator foruma, b1nny, otkrio je problem autor presretanje prometa njegovog uređaja korištenjem mitmproxy i o tome objavio na forumima OnePlus još 4. srpnja. Nakon što je dodatno istražio što se događalo dok je njegov OnePlus 3 tražio ažuriranje, b1nny je otkrio da OnePlus ne zahtijeva važeći IMEI ponuditi ažuriranje korisniku. Da bi to dokazao, b1nny je upotrijebio a Aplikacija Chrome pod nazivom Postman za slanje HTTP POST zahtjeva OnePlusovom poslužitelju za ažuriranje i uredio svoj IMEI s podacima o smeću. Poslužitelj ipak je vratio paket ažuriranja prema očekivanjima. b1nny je došao do drugih otkrića u vezi s OTA procesom (kao što je činjenica da se poslužitelji ažuriranja dijele s Oppo), ali najviše je zabrinjavala činjenica da se ovaj jedinstveni identifikator uređaja prenosio HTTP.
Popravak još nije na vidiku
Nakon što je otkrio sigurnosni problem, b1nny je obavio dužnu pažnju i pokušao kontaktirati obojicu Moderatori OnePlus foruma i predstavnici korisničke službe koji bi mogli proslijediti problem uz lanac relevantnim timovima. Moderator je tvrdio da će izdanje biti proslijeđeno; međutim, nije uspio dobiti nikakvu potvrdu da se to pitanje razmatra. Kada je Redditorima na /r/Android subredditu prvi put skrenuta pozornost na problem, mnogi su bili zabrinuti, ali su bili uvjereni da će problem biti brzo riješen. Na XDA portalu smo također vjerovali da će nesigurna HTTP POST metoda koja se koristi za pinganje OTA poslužitelja za ažuriranje biti na kraju popravljena. Početno otkriće problema bilo je na OxygenOS verziji 3.2.1 OS-a (iako je mogao postojati u prethodnim verzijama kao dobro), ali b1nny nam je jučer potvrdio da problem i dalje postoji na posljednjoj stabilnoj verziji OS-a Oxygen: verzija 3.2.4.
POST:User-agent: UA/ONEPLUS A3003/XXX/OnePlus3Oxygen_16.A.13_GLO_013_1608061823/V1.0.0_20150407
Content-Type: text/plain; charset=UTF-8
Host: i.ota.coloros.com
Connection: Keep-Alive
Accept-Encoding: gzip
Content-Length: 188
Raw
{"version":"1","mobile":"ONEPLUS A3003","ota_version":"OnePlus3Oxygen_16.A.13_GLO_013_1608061823","imei":"XXX","mode":"0","type":"1","language":"en","beta":"0","isOnePlus":"1"}
ANSWER:
Server: nginx
Date: Wed, 24 Aug 2016 18:20:24 GMT
Content-Type: application/json; charset=UTF-8
Connection: keep-alive
X-Server-ID: hz0231
No content
Međutim, s nedavnim izdanjem međugradnje zajednice OxygenOS 3.5 ponovno smo bili znatiželjni vidjeti je li problem i dalje prisutan. Obratili smo se OnePlusu u vezi s ovim problemom i glasnogovornik tvrtke nam je rekao da je problem doista zakrpan. Međutim, natjerali smo jednog od članova našeg portala da flashira najnoviju verziju zajednice i koristi mitmproxy za presretanje mrežnog prometa svog OnePlus 3, i na naše iznenađenje otkrili smo da OxygenOS je još uvijek slao IMEI u HTTP POST zahtjevu poslužitelju za ažuriranje.
POST http://i.ota.coloros.com/post/Query_Update HTTP/1.1.User-Agent: com.oneplus.opbackup/1.3.0
Cache-Control: no-cache
Content-Type: application/json; charset=utf-8
Host: i.ota.coloros.com
Connection: Keep-Alive
Accept-Encoding: gzip
Content-Length: 188
Raw
{"version":"1","mobile":"ONEPLUS A3000","ota_version":"OnePlus3Oxygen_16.X.01_GLO_001_1608221857","imei":"XXX","mode":"0","type":"0","language":"en","beta":"0","isOnePlus":"1"}
To nas u XDA duboko zabrinjava, unatoč očitoj potvrdi da je problem riješen. Nema smisla da OnePlus koristi HTTP za slanje zahtjeva svojim poslužiteljima, ako uopće žele koristiti naš IMEI za potrebe rudarenja podataka, onda bi to vjerojatno mogli učiniti na puno sigurniji način metoda.
Curenje IMEI-ja i vi
Nema ništa bitno opasno zbog curenja vašeg IMEI-ja preko javne mreže. Iako jedinstveno identificira vaš uređaj, postoje i drugi jedinstveni identifikatori koji se mogu koristiti zlonamjerno. Aplikacije mogu zahtijevati pristup kako biste vrlo jednostavno vidjeli IMEI svog uređaja. Dakle, u čemu je problem? Ovisno o tome gdje živite, vaš IMEI bi mogla koristiti vlada ili haker koji je očito dovoljno zainteresiran za vas da vas prati. Ali to zapravo i nije briga za prosječnog korisnika.
Najveći potencijalni problem mogla bi biti nezakonita upotreba vašeg IMEI-ja: uključujući ali ne ograničavajući se na stavljanje vašeg IMEI-ja na crnu listu ili kloniranje IMEI-ja za korištenje na telefonu na crnom tržištu. Ako se dogodi bilo koji od scenarija, moglo bi biti velika neugodnost iskopati se iz ove rupe. Drugi potencijalni problem odnosi se na aplikacije koje i dalje koriste vaš IMEI kao identifikator. Whatsapp je, primjerice, koristio MD5-raspršena, obrnuta verzija vašeg IMEI-ja kao lozinke vašeg računa. Nakon pregledavanja interneta, neke sumnjive web stranice tvrde da mogu hakirati Whatsapp račune koristeći telefonski broj i IMEI, ali ne mogu ih potvrditi.
Još, važno je zaštititi sve informacije koje jedinstveno identificiraju vas ili vaše uređaje. Ako su vam pitanja privatnosti važna, onda bi ova praksa OnePlusa trebala zabrinjavati. Nadamo se da će vas ovaj članak informirati o mogućim sigurnosnim implikacijama iza ovoga praksu i skrenuti pažnju OnePlusu na ovu situaciju (još jednom) kako bi se mogla popraviti promptno.