A Google corrigiu uma engenhosa vulnerabilidade que tirava partido de tokens OAuth invisíveis para aceder às contas.
Muitas apps pedem acesso à conta Google via OAuth, o que permite que apps tenham acesso a um conjunto seleccionado de operações na conta sem que se tenha que ceder dados críticos como a password. No entanto, havia forma de abusar do sistema.Uma das vantagens do sistema OAuth é que os utilizadores podem, a qualquer momento, remover as permissões de acesso a determinadas apps ou dispositivos a que tenham dado acesso. É algo que até convém ser revisto regularmente, para se removerem acessos de apps ou dispositivos antigos que já nem se utilizam. Mas era precisamente aqui que esta vulnerabilidade GhostToken fazia a sua magia.
Um potencial ataque iniciava-se pela instalação de uma app sem qualquer indício de ser maliciosa, que justificasse a necessidade do utilizador lhe dar um acesso OAuth à conta Google. E assim que a app conseguisse obter o desejado token, conseguia esconder-se da lista de acessos OAuth, fazendo com que o utilizador nunca mais conseguisse remover o acesso da app à sua conta. Algo que era feito fazendo um pedido de eliminação pendente do projecto, que fazia esconder o acesso da lista de acessos, que era cancelado quando havia necessidade de usar o acesso, repetindo o processo de “eliminação” para se esconder, e assim sucessivamente.
Sabendo-se que é extremamente fácil para uma app com más intenções arranjar uma justificação para que o utilizador dê acesso às fotos, documentos, calendário, etc. este tipo de ataque fantasma teria um enorme potencial para manter acesso indevido a esse tipo de dados, sem que o utilizador / vítima nada pudesse fazer para o remover.
Felizmente, a Google já tratou de corrigir essa vulnerabilidade, passando a exibir os acessos para apps com o estado de “eliminação pendente”, que até agora permaneciam escondidos.