OnePlus-telefoner som kör OxygenOS läcker din telefons IMEI när din telefon söker efter en uppdatering. Telefonen använder en osäker HTTP POST-begäran.
De Ett plus ett var en av de första Android-smarttelefonerna som bevisade att konsumenter inte behövde betala ut $600+ för en flaggskeppsupplevelse. Med andra ord, även till ett lägre pris bör du Nöj dig aldrig för att köpa en sämre produkt.
Jag kan fortfarande minnas hypen kring specifikationsavslöjandet för OnePlus One - företaget utnyttjade den fanatism som Android-entusiaster visade när det kom till läckor. OnePlus bestämde sig för att långsamt avslöja telefonens specifikationer en i taget under några veckor innan den officiella lanseringen - och det fungerade.
Vid den tiden saliverade vi över telefonens användning av Snapdragon 801 med en 5,5" 1080p-skärm samt det mycket lockande samarbetet med den nystartade Cyanogen Inc. (av vilka Android-entusiaster var mycket upphetsad på grund av CyanogenMods popularitet). Och sedan släppte OnePlus den största bomben över oss alla – startpriset på 299 $. Endast en annan telefon hade verkligen förvånat mig för dess kostnadsprestanda - Nexus 5 - och
OnePlus One blåste upp den ur vattnet. Jag minns många Nexus-entusiaster som slits mellan att göra en uppgradering till OnePlus One eller vänta på släppet av nästa Nexus.Men sedan gjorde OnePlus en en rad beslut som, även om vissa var ekonomiskt försvarbara, dödade en del fart för varumärket bland Android-entusiaster. Först var det kontroversen kring inbjudningssystemet, sedan kom de kontroversiella annonserna och faller ut med cyanogen, sedan företaget fick lite hat för OnePlus 2 släpper som i mångas ögon misslyckades med att leva upp till dess "Flagship Killer"-moniker, och till sist där är det rödhåriga styvbarnet OnePlus X smartphone som bara har fått Android Marshmallow a några dagar sen.
Två steg framåt, ett steg tillbaka
Till OnePlus förtjänst kunde företaget återuppväcka hypen omger sina produkter med OnePlus 3. Den här gången såg OnePlus inte bara till att ta itu med många av de klagomål granskare och användare hade mot OnePlus 2, utan gick till och med utöver det i åtgärda klagomål om tidiga granskningar och släpper källkoden för anpassade ROM-utvecklare. Än en gång har OnePlus skapat en produkt som är tillräckligt övertygande för att få mig att ompröva att vänta på lanseringen av nästa Nexus-telefon och låta flera av vår personal köpa en (eller två) för dem själva. Men det finns ett problem som en del av vår personal är försiktiga med - programvaran. Vi är ganska splittrade när det gäller hur vi använder våra telefoner - några av oss lever på den blödande kanten och flashar anpassade ROM-skivor som sultanxdas inofficiella Cyanogenmod 13 för OnePlus 3, medan andra bara kör lagerfirmware på sin enhet. Bland vår personal råder oenighet om kvaliteten på de nyligen släppta OxygenOS 3.5 community build (som vi kommer att utforska i en framtida artikel), men det finns en fråga som vi alla är överens om: fullständig förvirring över det faktum att OnePlus använder HTTP för att överföra ditt IMEI medan du söker efter programuppdateringar.
Ja, du läste rätt. Ditt IMEI, numret som identifierar din telefon unikt, är skickat okrypterad till OnePlus servrar när din telefon söker efter en uppdatering (med eller utan användarinmatning). Det betyder att alla som lyssnar på nätverkstrafiken i ditt nätverk (eller utan att du vet om det när du surfar på vår forum medan du är ansluten till en offentlig hotspot) kan ta ditt IMEI om din telefon (eller du) bestämmer sig för att det är dags att söka efter en uppdatering.
XDA Portal Team-medlem och tidigare forummoderator, b1nny, upptäckte problemet av avlyssna hans enhets trafik använder sig av mitmproxy och skrev om det på OnePlus-forum tillbaka den 4 juli. Efter att ha grävt lite mer i vad som pågick när hans OnePlus 3 letade efter en uppdatering, upptäckte b1nny att OnePlus kräver inte ett giltigt IMEI för att erbjuda en uppdatering till användaren. För att bevisa detta använde b1nny a Chrome-appen som heter Postman att skicka en HTTP POST-förfrågan till OnePlus uppdateringsserver och redigerade hans IMEI med skräpdata. Servern returnerade fortfarande uppdateringspaketet som förväntat. b1nny gjorde andra upptäckter angående OTA-processen (som det faktum att uppdateringsservrarna delas med Oppo), men det mest oroande var det faktum att denna unika enhetsidentifierare överfördes HTTP.
Ingen fix ännu i sikte
Efter att ha upptäckt säkerhetsproblemet gjorde b1nny sin due diligence och försökte kontakta båda OnePlus forummoderatorer och kundtjänstrepresentanter som kanske kan vidarebefordra frågan upp i kedjan till relevanta team. En moderator hävdade att det utfärdade skulle skickas vidare; han kunde dock inte få någon bekräftelse på att frågan undersöktes. När problemet först uppmärksammades av Redditors på /r/Android-subreddit var många oroliga men var övertygade om att problemet snabbt skulle lösas. På XDA-portalen trodde vi också att den osäkra HTTP POST-metoden som användes för att pinga OTA-servern för en uppdatering så småningom skulle fixas. Den första upptäckten av problemet var på OxygenOS version 3.2.1 av operativsystemet (även om det kunde ha funnits i tidigare versioner som bra), men b1nny bekräftade med oss i går att problemet fortfarande kvarstår på den senaste stabila versionen av Oxygen OS: version 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
Men med den senaste versionen av OxygenOS 3.5-gemenskapsbygget var vi återigen nyfikna på att se om problemet kvarstod. Vi kontaktade OnePlus angående det här problemet och fick höra av en talesperson från företaget att problemet verkligen hade åtgärdats. Men vi hade en av våra portalmedlemmar att flasha den senaste community-byggnaden och använda mitmproxy för att fånga upp sin OnePlus 3:s nätverkstrafik, och till vår förvåning upptäckte vi att OxygenOS skickade fortfarande ett IMEI i HTTP POST-begäran till uppdateringsservern.
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"}
Detta, trots den uppenbara bekräftelsen på att problemet var löst, oroar oss på XDA djupt. Det är inte vettigt för OnePlus att använda HTTP för att skicka en förfrågan till sina servrar, om allt de vill är att använda vårt IMEI för datautvinningsändamål så skulle de förmodligen kunna göra det på ett mycket säkrare sätt metod.
IMEI-läckor och du
Det finns ingenting väsentligen farligt att ditt IMEI läcker över ett offentligt nätverk. Även om den identifierar din enhet unikt, finns det andra unika identifierare som kan användas på ett skadligt sätt. Applikationer kan begära åtkomst för att se din enhets IMEI ganska enkelt. Så vad är problemet? Beroende på var du bor kan ditt IMEI användas för att spåra dig av regeringen eller en hackare som uppenbarligen är tillräckligt intresserad av dig. Men det är egentligen inte bekymmer för den genomsnittliga användaren.
Det största potentiella problemet kan vara olaglig användning av ditt IMEI: inklusive men inte begränsat till att svartlista ditt IMEI eller klona IMEI för att användas på en svartmarknadstelefon. Om något av scenarierna inträffade kan det vara ett enormt besvär att gräva upp sig ur det här hålet. Ett annat potentiellt problem är angående applikationer som fortfarande använder ditt IMEI som identifierare. Whatsapp, till exempel, brukade använda en MD5-hahad, omvänd version av ditt IMEI som ditt kontos lösenord. Efter att ha tittat runt på nätet hävdar vissa skumma webbplatser att de kan hacka Whatsapp-konton med ett telefonnummer och IMEI, men jag kan inte verifiera dem.
Fortfarande, det är viktigt att skydda all information som unikt identifierar dig eller dina enheter. Om integritetsfrågor är viktiga för dig, bör denna praxis från OnePlus vara angelägen. Vi hoppas att den här artikeln tjänar till att informera dig om dessa potentiella säkerhetskonsekvenser bakom detta öva, och för att uppmärksamma OnePlus på denna situation (en gång till) så att den kan åtgärdas omgående.