Vulnerabilidade grave do Android permaneceu sem correção por… quase 6 meses!

Um dos bugs mais curiosos e ameaçadores dos smartphones Android e os problemas para resolvê-lo.

No verão de 2022, o especialista em cibersegurança David Schütz estava voltando para casa após um longo dia na estrada. Seu smartphone Google Pixel 6 estava ficando sem bateria, quando David finalmente chegou em casa, ele tinha apenas 1% de carga. E por uma falta de sorte, o telefone desligou no meio de uma mensagem. Schütz encontrou seu carregador e ligou o telefone novamente, mas não conseguiu seguir com sua conversação – ele teve que inserir o código PIN do SIM. Cansado após a viagem, David digitou o PIN errado três vezes. Quando isso ocorre deve-se inserir outro código secreto – o PUK. Feito isso, David precisou desbloquear o telefone com uma impressão digital. Mas depois que a impressão digital foi reconhecida, a tela congelou.

Depois de reiniciar o telefone, o desbloqueio por impressão digital geralmente não é uma opção. É necessário um código para acessar o dispositivo.<a href="https://bugs.xdavidhu.me/google/2022/11/10/accidental-70k-google-pixel-lock-screen-bypass/" target="_blank">Fonte</a>.

Depois de reiniciar o telefone, o desbloqueio por impressão digital geralmente não é uma opção. É necessário um código para acessar o dispositivo.Fonte.

Qualquer outra pessoa provavelmente teria atribuído esses acontecimentos estranhos a falhas de software, reiniciado o telefone novamente e continuado com sua vida. Mas David, um pesquisador com faro para softwares e dispositivos de comportamento estranho, decidiu descobrir por que seu telefone não queria mais um código de desbloqueio após a reinicialização. Após várias tentativas malsucedidas, David percebeu que uma reinicialização nesse caso é desnecessária. Pegue o smartphone bloqueado, remova o cartão SIM, insira-o novamente, digite um código PIN errado três vezes, digite o código PUK… O que acontece? Acontece que você pode ignorar completamente a tela de bloqueio do telefone! Schütz detalhou a descoberta em seu blog, mas se você acha que o Google a corrigiu rapidamente, achou errado. Essa falha de segurança escancarada ameaçou um grande número de smartphones com Android (versões 11 a 13) por quase metade de um ano – de junho a novembro!

Demonstração prática de como ignorar a tela de bloqueio usando um cartão SIM.

Como assim?!

Em essência, a vulnerabilidade permite que alguém ignore a tela de bloqueio e tenha acesso a todos os dados do telefone sem saber o código secreto. Nenhum mecanismo de ataque sofisticado é necessário. Não há necessidade de conectar nenhum dispositivo externo ao smartphone ou procurar novas vulnerabilidades no software. Basta retirar e reinserir o cartão SIM (o invasor pode usar o seu próprio), inserir um PIN errado três vezes, inserir o código PUK, alterar o PIN – e pronto, o acesso ao telefone foi viabilizado. A única condição é que o telefone esteja ligado e tenha sido previamente desbloqueado pelo proprietário pelo menos uma vez.

A vulnerabilidade de software está localizada na parte de distribuição gratuita do Android – onde qualquer pessoa pode ver o código-fonte. Isso nos permite descobrir como um bug tão simples pode ter aparecido. Na verdade, os smartphones Android possuem várias telas de bloqueio, incluindo a tela para inserir um código secreto, uma solicitação para digitalizar sua impressão digital ou uma janela para inserir o código PIN do SIM. Passar com sucesso em uma das verificações originalmente acionaria a próxima tela de bloqueio, não importa qual. Todo o sistema funcionou bem, exceto a tela de bloqueio do código PUK. Inserir o PUK fez com que a função “dispensar tela de bloqueio” fosse chamada duas vezes. Em vez de mostrar a tela de digitalização de impressões digitais, o telefone foi desbloqueado. O problema foi resolvido com algumas modificações consideráveis ​​no código do Android, o que resultou no controle independente de cada tela de bloqueio.

Burocracia versus segurança

Então, por que demoraram quase seis meses para eliminar essa grave vulnerabilidade? Schütz enviou uma descrição do problema por meio do serviço de recompensas de bugs do Google. De acordo com as regras do programa, uma vulnerabilidade descoberta por ignorar a tela de bloqueio em vários – ou até mesmo em todos – dispositivos pode render ao pesquisador até US$ 100.000. Mas, em vez de dinheiro, David recebeu várias semanas de silêncio e então… seu envio foi rejeitado como duplicado – outra pessoa já havia informado a empresa sobre a vulnerabilidade.

David resignou-se a perder o reconhecimento financeiro de sua descoberta. Nesse ínterim, chegou setembro (já fazia três meses desde seu relatório), e ele tinha certeza de que a vulnerabilidade seria corrigida no próximo conjunto de patches. Mas não. Com a atualização de setembro instalada, seu telefone ainda permitia que ele contornasse o bloqueio usando o truque do cartão SIM. Coincidentemente, em setembro houve um evento do Google para especialista em cibersegurança. Lá, David demonstrou pessoalmente o bug para os desenvolvedores da empresa. Só assim eles entenderam o problema, finalmente, e a vulnerabilidade foi corrigida na atualização de novembro do Android.

Mesmo que existisse um relatório de bug anterior, o Google não tomou providências. Também não houve resposta à mensagem de David em junho de 2022. Apenas um contato cara a cara com os desenvolvedores conseguiu resolver a vulnerabilidade. No final, Schütz recebeu um pagamento de US$ 70.000 por seus esforços.

O preço da segurança

Como usuários de smartphones, esperamos que os bugs críticos sejam priorizados pelos desenvolvedores e resolvidos rapidamente. Esta história do drible da tela de bloqueio em smartphones Android mostra que nem sempre é esse o caso. Tudo acabou bem: a vulnerabilidade foi encontrada, felizmente, por um pesquisador “white hat” que não a vendeu na darknet, onde poderia ter sido usada para fins nefastos; em vez disso, ele informou a empresa. O Google simplesmente teve que resolver a brecha de segurança imediatamente, mas foi aí que os problemas começaram. Para organizações que colaboram com especialistas externos em segurança por meio de programas de recompensa de bugs, cabe uma reflexão: recursos suficientes são alocados internamente para corrigir bugs em tempo hábil?

Dicas