A Apple pagou ao desenvolvedor Bhavuk Jain uma recompensa de US$ 100 mil por encontrar um bug grave no sistema de login “Login com a Apple” que poderia ter permitido que pessoas mal-intencionadas assumissem a conta de um usuário em sites e aplicativos específicos.
Segundo Jain, o bug estava relacionado à maneira como a Apple estava validando usuários que usavam o recurso. O serviço foi lançado pela empresa no ano passado e pode ser usado com os IDs da Apple. Ele foi projetado para limitar a quantidade de rastreamento ativada por outros serviços de login, como Facebook e Google. Um dos maiores argumentos para usá-lo é poder ocultar seu endereço de e-mail do aplicativo ou serviço de terceiros.
Para autorizar um usuário, o Login com a Apple usa um JWT (JSON Web Token) ou um código gerado pelos servidores da Apple. Ao autorizar, a Apple oferece aos usuários a opção de compartilhar ou ocultar seu ID Apple com o aplicativo. Se os usuários optarem por não compartilhar seus emails com um aplicativo específico, a Apple gerará um ID de email da Apple específico para ser usado nesse serviço.
Após a autorização bem-sucedida, dependendo da escolha do usuário, a Apple produz um JWT que contém o ID do e-mail. Esse ID é usado posteriormente pelo aplicativo de terceiros para fazer login de um usuário.
É aqui que entra o erro. Jain disse que em abril descobriu que poderia solicitar JWTs para qualquer ID de e-mail da Apple.
“Quando a assinatura desses tokens era verificada usando a chave pública da Apple, eles eram mostraram como válidos. Isso significa que um invasor podia forjar um JWT vinculando qualquer ID de e-mail a ele e obtendo acesso à conta da vítima”, explicou o desenvolvedor em um post.
De acordo com o Hacker News, Jain descobriu que isso acontecia porque, embora a Apple pedisse que os usuários acessassem sua conta antes de iniciar a solicitação de autorização, ela não estava validando se era a mesma pessoa que estava solicitando uma JWT na próxima etapa do servidor de autenticação.
A vulnerabilidade afetou aplicativos de terceiros que estavam usando o recurso e não implementaram suas próprias medidas de segurança adicionais.
O Hacker News relata que pessoas mal-intencionadas poderiam explorar essa vulnerabilidade mesmo que os usuários optassem por ocultar seu e-mail da Apple e que ela também poderia ser usada para registrar uma nova conta com o ID da Apple da vítima.
“O impacto dessa vulnerabilidade foi bastante crítico, pois poderia ter permitido a tomada total de contas. Muitos desenvolvedores integraram o Login com a Apple pois ele é obrigatório para aplicativos que suportam outros logins sociais ”, disse Jain, acrescentando que alguns exemplos incluem Dropbox, Spotify, Airbnb e Giphy. “Esses aplicativos não foram testados, mas poderiam estar vulneráveis a uma tomada completa da conta se não houvesse outras medidas de segurança em vigor durante a verificação de um usuário.”
No entanto, Jain disse que a Apple havia realizado uma investigação e determinou que não havia uso indevido ou comprometimento de conta devido à vulnerabilidade. Ufa. De acordo com outros sites, a Apple corrigiu a vulnerabilidade.
Here’s my first 6 digit bounty from @Apple. Blog post will be up next week. #bugbounty pic.twitter.com/QygxvtGYJb
— Bhavuk Jain (@bhavukjain1) May 24, 2020
É bom ver que, apesar de tanta coisa errada no mundo, ainda tem gente fazendo um bom trabalho.