2 de jun. de 2020

Programador descobre bug na funcionalidade Início de sessão com a Apple e ganha $100.000

A Apple lançou em 2019 um sistema de autenticação em serviços, recorrendo a um método seu. Supostamente, a funcionalidade Início de sessão com a Apple servirá para os utilizadores, nos mais variados serviços online, puderem entrar com uma mecânica segura e que privilegia a privacidade. Contudo, esta funcionalidade tinha um bug que foi descoberto por um programador dedicado ao capítulo da segurança.
Foram revelados detalhes da vulnerabilidade, entretanto corrigida, que incidia na autenticação de contas via “Início de sessão com a Apple”. Esta falha zero-day poderia ter permitido que um intruso assumisse o controlo da conta de um utilizador.
Imagem Início de sessão com a Apple no iPhone 11 Pro

O que é o Início de sessão com a Apple?

A presença de um botão Início de sessão com a Apple numa app ou num site aderente significa que pode configurar uma conta e iniciar sessão com o seu ID Apple. Em vez de utilizar a conta de uma rede social ou preencher formulários e escolher outra nova palavra-passe, pode simplesmente tocar no botão Início de sessão com a Apple, rever as informações e iniciar sessão rapidamente e em segurança com o Face ID, Touch ID ou o código do dispositivo.
Portanto, esta funcionalidade pretende ser a alternativa ao “login” feito em sites e serviços recorrendo às credenciais do Facebook e do Google.

Mas é mais seguro?

A empresa pensou numa forma de melhorar o serviço, acrescentando uma camada de privacidade em cima do que existe hoje para este tipo de serviços. Assim, esta nova ferramenta tenta minimizar a quantidade de dados de um utilizador usa para autenticação e criação de contas. A API também ajudou a reduzir a quantidade de vigilância que o Facebook e o Google executavam nos utilizadores, tornando-os mais privados.
Apesar disso, este sistema tinha uma vulnerabilidade grave. Segundo o que foi divulgado ontem, um programador focado em segurança, Bhavuk Jain, descobriu uma vulnerabilidade zero-day ao usar o Início de sessão com a Apple. Conforme foi descrito, este buraco na segurança poderia permitir que um invasor obtivesse acesso e controlo total da conta de um utilizador numa aplicação de terceiros.
Segundo Jain, o bug teria permitido uma alteração no controlo da conta de utilizador da aplicação, independentemente de o utilizador ter um ID Apple válido ou não.
A maneira como é feito o início de sessão com a funcionalidade da empresa de Cupertino depende de um JSON Web Token (JWT) ou de um código gerado pelos servidores da Apple. Posteriormente, este último será usado para gerar um JWT, se ele não existir. Assim, ao autorizar, a Apple oferece aos utilizadores opções para partilhar ou ocultar o seu email, que usa para o ID Apple com a app de terceiros. Nesse caso, o sistema cria de imediato um email de retransmissão específico da Apple, criado para a última seleção.
Após uma autorização bem-sucedida, a Apple produz um JWT, que contém o ID do email, e é usado pela aplicação de terceiros para efetuar o início de sessão do utilizador.

Bug entregue à Apple já foi corrigido

Jain descobriu em abril que era possível solicitar um JWT para qualquer email e, quando a assinatura do token é verificada, recorrendo a uma chave pública da Apple, eles são considerados válidos. Na verdade, um invasor pode criar uma JWT por esse processo e obter acesso à conta da vítima.
Como a empresa de Cupertino exige a inclusão da opção “Início de sessão com a Apple” nas aplicações com outros sistemas de login baseados em redes sociais, o ataque teve uma base muito ampla de aplicações contra os quais teoricamente era eficaz. Uma investigação da equipa de segurança da Apple determinou que a vulnerabilidade não foi usada em nenhum ataque.

Jain divulgou com responsabilidade a falha à gigante da tecnologia. Nesse sentido, a empresa de Cupertino integrou o jovem no seu programa de recompensas de bug e este recebeu uma recompensa no valor de 100.000 dólares. A empresa de Cupertino corrigiu a vulnerabilidade desde então, mas ainda não está claro exatamente como.
Fonte: Pplware.