Falhas ameaçam sistema de criptografia do Android

Um ladrão que rouba seu celular não é capaz de ler seus e-mails ou ver suas fotos e nem mesmo a polícia seria capaz de vasculhar um celular apreendido; proteções também impedem tentativas repetidas de senha, o que atrasa ou até impede os ataques de tentativa e erro. Sem ter a senha de acesso e nem um meio para descobri-la, acessar os dados é praticamente impossível. 

 

Porém, uma falha grave envolvendo o sistema Android e os processadores Snapdragon da Qualcomm pode comprometer essa proteção. A brecha foi revelada na semana passada pelo pesquisador Gal Beniamini e ainda não se sabe nem como ela será corrigida. Isso porque não se trata somente de um erro de programação, mas de uma falha de projeto, de modo que alterações para eliminar o problema podem acabar prejudicando o funcionamento de outros componentes do sistema.

 

O problema reside no chamado "ambiente de execução confiável" (Trusted Execution Environment, ou TEE, na sigla em inglês). No caso do Snapdragon, esse ambiente é chamado de QSEE ("ambiente de execução seguro da Qualcomm", na sigla em inglês). Apesar do nome complicado, esse ambiente nada mais é do que uma área restrita do processador onde são realizadas tarefas sensíveis, como a criptografia dos dados. É como um microssistema onde você não pode instalar aplicativos.

 

O objetivo desse isolamento é impedir que outros aplicativos do telefone tenham acesso ao espaço de memória onde a criptografia ocorre. Como a criptografia precisa manter as chaves na memória para codificar e decodificar os dados, manter essa área desprotegida poderia deixar as chaves legíveis para apps maliciosos que conseguissem explorar uma falha no Android. O "TEE", portanto, é uma proteção adicional para que nem mesmo uma vulnerabilidade no Android possa comprometer a criptografia.

 

Na prática, porém, Beniamini mostrou que é possível elevar um aplicativo desprivilegiado do Android até o QSEE. Uma vez lá, o programa invasor pode localizar as chaves e vazá-las para uma área da memória legível. Com a chave retirada da área protegida, é possível realizar infinitas tentativas de quebra de senha, obtendo a senha correta para desbloquear o aparelho. Somente o uso de uma senha alfanumérica longa poderia retardar minimamente esse processo.

 

Beniamini utilizou uma falha no Android; especificamente, uma brecha no sistema antipirataria Widevine. O Widevine é um sistema do próprio Google usado por muitos sites e serviços que distribuem vídeo pela internet. Embora seja irônico que um sistema de proteção de conteúdo que não é do usuário acabe por prejudicar a proteção dos dados que são do usuário, é bem possível que outras falhas no Android, em outros componentes, também possam violar o QSEE.

 

O Google já consertou a falha no Widevine em 14 de dezembro de 2015. Porém, de acordo com Beniamini, isso não é uma proteção suficiente. Interessados em quebrar a criptografia do celular (como um criminoso ou a polícia investigando um crime) poderiam fazer o "downgrade" do Android, instalando uma versão mais antiga do sistema, contendo a falha, para acessar os dados.

 

Somente dispositivos em cujo downgrade é impossível estariam suficientemente protegidos com essa correção. Também continua vulnerável quem tem um celular que nem sequer recebeu a atualização do Google.



Quem está vulnerável?

Os componentes internos de celulares (que são chips integrados de processamento, normalmente com chips gráficos, rádios de comunicação e outras funções) são fabricados por várias empresas, mas usam a tecnologia padronizada ARM para garantir a compatibilidade entre si. O isolamento de aplicativos seguros faz parte do conjunto e é chamado de "TrustZone".

 

Embora seja uma tecnologia padronizada, cada fabricante de chip tem a sua própria ou compra uma tecnologia pronta de terceiros. Segundo a pesquisa de Beniamini, o problema só afeta o ambiente seguro da Qualcomm, o QSEE, que é usado nos processadores Snapdragon.

 

Os processadores Snapdragon são líderes de mercado. Na linha "Nexus", considerada uma das mais "premium" do Android, todos os aparelhos desde o Nexus 4, lançado em 2012, usam um chip Snapdragon.

 

Praticamente todos os celulares topo de linha com Android também usam chips Snapdragon da Qualcomm. Uma exceção, porém, é a Samsung, que faz seu próprio chip Exynos. Em alguns modelos, como o Galaxy S5 e S7, existem versões do aparelho com Exynos e Snapdragon, dependendo da região onde o aparelho é vendido. No Brasil, o S7 vendido é com o chip Exynos.

 

Apesar disso, não há pesquisas ainda para indiciar que o Exynons e outros chips, como o MediaTek – usado em aparelhos e custo menor -, estão livres do problema.

 

Estima-se que 500 milhões de aparelhos com Android usem o Snapdragon e estejam vulneráveis ao ataque.

 

E agora?

Ainda que Beniamini tenha divulgado o código para realizar esse ataque, aplicá-lo em uma situação real não é tão simples. Um invasor, sem o conhecimento da chave, teria que primeiro copiar todo o conteúdo da memória do aparelho para poder restaurá-lo a um estado utilizável – do contrário, ele não conseguiria executar nenhum aplicativo no dispositivo bloqueado.

 

Em outros casos, seria necessário mais alguma vulnerabilidade para viabilizar a execução de aplicativos não autorizados em um aparelho bloqueado.

 

Uma medida de segurança não precisa ser necessariamente infalível para ser útil. Beniamini criticou o modelo de criptografia, que não utiliza uma chave de hardware — diferente, por exemplo, da Apple. O uso de uma chave de hardware impediria sua leitura por software. No entanto, aparelhos da Apple já tiveram brechas que permitiram tentativas infinitas de senha, o que, na prática, tem o mesmo efeito.

 

As consequências reais da falha permanecem incertas, então a criptografia está longe de ser inútil.

 

Fonte: http://g1.globo.com/tecnologia/blog/seguranca-digital/post/falhas-ameacam-sistema-de-criptografia-do-android-entenda.html / Foto: Divulgação / por Altieres Rohr

Criptografar os dados armazenados em um celular é uma das medidas de segurança mais poderosas que existem.