Os telefones OnePlus que executam o OxygenOS vazam o IMEI do seu telefone sempre que ele verifica se há uma atualização. O telefone usa uma solicitação HTTP POST insegura.
O Um mais um foi um dos primeiros smartphones Android que provou que os consumidores não precisavam desembolsar mais de US$ 600 por uma experiência emblemática. Em outras palavras, mesmo com um preço mais baixo, você deve nunca se acomode por adquirir um produto inferior.
Ainda me lembro do entusiasmo em torno da revelação das especificações do OnePlus One – a empresa capitalizou o fanatismo demonstrado pelos entusiastas do Android quando se tratava de vazamentos. A OnePlus decidiu revelar lentamente as especificações do telefone, uma por uma, algumas semanas antes do lançamento oficial – e funcionou.
Na época, salivamos com o uso do Snapdragon 801 com tela 1080p de 5,5 ", bem como com a parceria muito atraente com a startup Cyanogen Inc. (dos quais os entusiastas do Android eram muito entusiasmado devido à popularidade do CyanogenMod). E então o OnePlus lançou a maior bomba sobre todos nós – o preço inicial de US$ 299. Apenas um outro telefone realmente me surpreendeu pelo seu custo-desempenho - o Nexus 5 - e o
OnePlus One explodiu fora da água. Lembro-me de muitos entusiastas do Nexus divididos entre fazer uma atualização para o OnePlus One ou esperar pelo lançamento do próximo Nexus.Mas então OnePlus fez um série de decisões isso, embora alguns fossem economicamente justificáveis, mataram o ímpeto da marca entre os entusiastas do Android. Primeiro foi a polêmica em torno do sistema de convites, depois vieram os anúncios polêmicos e brigando com Cyanogen, então a empresa recebeu algum ódio pelo OnePlus 2 liberação que aos olhos de muitas pessoas não conseguiu viver ao seu apelido de "Flagship Killer", e finalmente lá está o enteado ruivo OnePlus X smartphone que acaba de receber Android Marshmallow a alguns dias atrás.
Dois passos para frente, um passo para trás
Para crédito da OnePlus, a empresa conseguiu reacender o hype envolvendo seus produtos com o OnePlus 3. Desta vez, o OnePlus não apenas resolveu muitas das queixas que os revisores e usuários tinham contra o OnePlus 2, mas também foi além em abordando reclamações de revisão antecipada e liberando código fonte para desenvolvedores de ROM personalizados. Mais uma vez, a OnePlus criou um produto atraente o suficiente para que eu reconsiderasse a espera pelo lançamento do próximo telefone Nexus e vários membros de nossa equipe comprassem um (ou dois) para eles mesmos. Mas há um problema com o qual alguns de nossos funcionários estão cautelosos: o software. Estamos bastante divididos sobre como usamos nossos telefones - alguns de nós vivem no limite e atualizam ROMs personalizados como Cyanogenmod 13 não oficial do sultanxda para o OnePlus 3, enquanto outros executam apenas o firmware padrão em seus dispositivos. Entre nossa equipe, há alguma discordância sobre a qualidade do recém-lançado Construção da comunidade OxygenOS 3.5 (que exploraremos em um artigo futuro), mas há uma questão com a qual todos concordamos: total perplexidade com o fato de o OnePlus usa HTTP para transmitir seu IMEI enquanto verifica atualizações de software.
Sim, você leu certo. Seu IMEI, o número que identifica exclusivamente seu telefone específico, é enviado não criptografado aos servidores OnePlus quando seu telefone verifica uma atualização (com ou sem entrada do usuário). Isso significa que qualquer pessoa que esteja ouvindo o tráfego de rede da sua rede (ou sem o seu conhecimento, enquanto você navega em nosso fóruns enquanto estiver conectado a um ponto de acesso público) pode obter seu IMEI se o seu telefone (ou você) decidir que é hora de verificar se há um atualizar.
Membro da equipe do Portal XDA e ex-moderador do fórum, B1nny, descobriu o problema por interceptando o tráfego de seu dispositivo usando mitmproxy e postou sobre isso nos fóruns OnePlus de volta em 4 de julho. Depois de pesquisar mais sobre o que estava acontecendo quando seu OnePlus 3 estava verificando se havia uma atualização, b1nny descobriu que o OnePlus não requer um IMEI válido para oferecer uma atualização ao usuário. Para provar isso, b1nny usou um Aplicativo do Chrome chamado Postman para enviar uma solicitação HTTP POST ao servidor de atualização do OnePlus e editar seu IMEI com dados inúteis. O servidor ainda retornou o pacote de atualização conforme esperado. b1nny fez outras descobertas em relação ao processo OTA (como o fato de que os servidores de atualização são compartilhados com Oppo), mas a parte mais preocupante foi o fato de que esse identificador exclusivo de dispositivo estava sendo transmitido HTTP.
Nenhuma solução ainda à vista
Depois de descobrir o problema de segurança, b1nny fez a devida diligência e tentou entrar em contato com ambos Moderadores do fórum OnePlus e Representantes do Serviço ao Consumidor que possa encaminhar o problema para as equipes relevantes. Um moderador afirmou que a questão seria repassada; no entanto, ele não conseguiu receber qualquer confirmação de que o problema estava sendo investigado. Quando o problema foi inicialmente levado ao conhecimento dos Redditors no subreddit /r/Android, muitos ficaram preocupados, mas confiantes de que o problema seria resolvido rapidamente. No Portal XDA, nós também acreditávamos que o método HTTP POST inseguro usado para executar ping no servidor OTA para uma atualização seria eventualmente corrigido. A descoberta inicial do problema foi na versão 3.2.1 do sistema operacional OxygenOS (embora pudesse ter existido em versões anteriores como bem), mas b1nny confirmou conosco ontem que o problema ainda persiste na última versão estável do Oxygen OS: versão 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
No entanto, com o recente lançamento da comunidade OxygenOS 3.5, ficamos novamente curiosos para ver se o problema persistia. Entramos em contato com o OnePlus sobre esse problema e um porta-voz da empresa nos informou que o problema realmente havia sido corrigido. No entanto, um dos membros do nosso portal atualizou a versão mais recente da comunidade e usou o mitmproxy para interceptar o tráfego de rede do OnePlus 3 e, para nossa surpresa, descobrimos que OxygenOS ainda estava enviando um IMEI na solicitação HTTP POST para o servidor de atualização.
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"}
Isto, apesar da aparente confirmação de que o problema foi resolvido, preocupa-nos profundamente no XDA. Não faz sentido para o OnePlus usar HTTP para enviar uma solicitação aos seus servidores, se é que eles querem fazer é usar nosso IMEI para fins de mineração de dados, então eles provavelmente poderiam fazê-lo de uma forma muito mais segura método.
Vazamentos de IMEI e você
Não há nada substancialmente perigoso com o vazamento do seu IMEI em uma rede pública. Embora identifique exclusivamente o seu dispositivo, existem outros identificadores exclusivos que podem ser usados de forma maliciosa. Os aplicativos podem solicitar acesso para ver o IMEI do seu dispositivo com bastante facilidade. Então qual é o problema? Dependendo de onde você mora, seu IMEI pode ser usado para rastreá-lo pelo governo ou por um hacker que aparentemente esteja interessado o suficiente em você. Mas essas não são realmente preocupações para o usuário médio.
O maior problema potencial pode ser o uso ilícito do seu IMEI: incluindo, entre outros, colocar seu IMEI na lista negra ou clonar o IMEI para ser usado em um telefone do mercado negro. Se qualquer um dos cenários ocorresse, poderia ser um grande inconveniente sair desse buraco. Outro problema potencial é em relação aos aplicativos que ainda usam seu IMEI como identificador. O Whatsapp, por exemplo, costumava usar um Versão invertida com hash MD5 do seu IMEI como senha da sua conta. Depois de pesquisar on-line, alguns sites obscuros afirmam ser capazes de hackear contas do Whatsapp usando um número de telefone e IMEI, mas não consigo verificá-los.
Ainda, é importante proteger qualquer informação que identifique você ou seus dispositivos de forma exclusiva. Se as questões de privacidade são importantes para você, esta prática da OnePlus deve ser preocupante. Esperamos que este artigo sirva para informá-lo sobre as possíveis implicações de segurança por trás disso prática, e trazer esta situação à atenção do OnePlus (mais uma vez) para que possa ser corrigida prontamente.