Chaves API encontradas em aplicativos Android expõem Gemini a criminosos
Chaves de API incorporadas em 22 aplicativos Android com mais de 500 milhões de usuários combinados estão dando acesso não autorizado ao Gemini, a inteligência artificial do Google.
Pesquisadores da CloudSEK descobriram que credenciais públicas embutidas nos apps, por recomendação da empresa, passaram a autenticar nos serviços de IA da companhia após a ativação do Gemini. Tudo isso sem aviso e sem que os desenvolvedores precisassem alterar nada.
Qualquer pessoa capaz de descompilar um APK, o arquivo de instalação de apps Android, pode extrair essas chaves. Por sua vez, as chaves podem ser usadas para acessar dados armazenados na plataforma ou gerar cobranças de milhares de dólares por dia na conta do desenvolvedor.

A ativação do Gemini em projetos do Google Cloud transformou chaves públicas em credenciais de acesso à IA.
Por que a chave API ficava exposta de propósito
Uma chave de API funciona como um crachá de identificação entre um aplicativo e um serviço externo. Quando um app de mapas precisa carregar uma rota, por exemplo, ele envia essa chave para o servidor do Google junto com a solicitação.
O servidor identifica qual projeto está fazendo o pedido, registra o uso e cobra do desenvolvedor quando aplicável.
O problema começa pela natureza dos arquivos de aplicativos Android. Os pacotes APK, que são baixados das lojas e instalados nos dispositivos, podem ser descompilados com ferramentas gratuitas e amplamente disponíveis. Basicamente, qualquer pessoa pode reverter um app à sua estrutura de código original.

O problema tem origem na própria documentação oficial do Google, que orientava desenvolvedores a incorporar as chaves diretamente no código dos aplicativos.
Como as chaves de API eram consideradas públicas por design, estar visível nesses arquivos não era um risco. No pior caso, alguém poderia ver qual projeto Google estava por trás de um determinado app. Esse raciocínio deixou de funcionar em 2024.
Como o Gemini transformou chaves inofensivas em credenciais sensíveis
Quando o Google habilitou a API do Gemini dentro do Google Cloud, as chaves de projeto existentes passaram a autenticar automaticamente nos novos endpoints de inteligência artificial.
Uma chave criada em 2019 para exibir mapas agora pode dar acesso a modelos de linguagem, arquivos armazenados na plataforma de IA e recursos de inferência faturáveis. Isso sem que o desenvolvedor tenha sido notificado ou precisado alterar qualquer configuração.

A firma de segurança Truffle Security foi a primeira a documentar o fenômeno em escala, em fevereiro. Ao varrer milhões de sites, encontrou quase 3.000 chaves Google que passaram a autenticar no Gemini apesar de nunca terem sido criadas para isso.
A Quokka, empresa especializada em segurança mobile anteriormente conhecida como Kryptowire, analisou 250.000 aplicativos Android. A partir disso, a empresa identificou mais de 35.000 chaves únicas expostas, presentes em 39,5% dos apps da amostra.
A descoberta mais recente veio da CloudSEK, que mapeou 32 chaves incorporadas diretamente no código, em 22 aplicativos populares, com base de usuários combinada superior a 500 milhões. Todas seguem o formato AIza…, padrão das chaves de projeto do Google Cloud.

Apps populares com centenas de milhões de usuários estão entre os afetados pela exposição de chaves de API do Google.
O ataque não exige acesso à infraestrutura da vítima
O processo de exploração não requer habilidade técnica avançada. Um atacante descompila o APK com qualquer ferramenta de código aberto disponível, aplica uma expressão regular, basicamente um padrão de busca. Isso é feito para identificar strings no formato das chaves Google, e testa a chave com uma única chamada à API do Gemini. Se receber resposta 200 em vez de erro 403, a chave está ativa e com acesso ao serviço de IA.
A partir daí, as possibilidades de abuso se dividem em três categorias principais. A primeira é o acesso a dados: arquivos enviados ao Gemini pelo desenvolvedor, conteúdo em cache e qualquer dado processado pela plataforma ficam acessíveis. Se o aplicativo faz upload de conteúdo dos usuários para a API, incluindo imagens, documentos, texto, esse material também pode ser alcançado indiretamente.
A segunda é o abuso financeiro. Chamadas automatizadas de inferência a modelos de linguagem grandes consomem cota rapidamente. Pesquisadores estimam que o custo pode chegar a milhares de dólares por dia em uma única conta comprometida, com a fatura caindo sobre o desenvolvedor.

A terceira é a interrupção de serviço. Esgotar a cota de API disponível para um projeto impede que os próprios sistemas legítimos do desenvolvedor funcionem. Isso porque a cota é por projeto, não por usuário.
O que torna o problema estruturalmente difícil de resolver
O aspecto mais preocupante da situação, destacado tanto pela Quokka quanto pela CloudSEK, é que os desenvolvedores não cometeram erros. Eles seguiram orientações documentadas pelo próprio Google. As chaves foram incorporadas nos apps porque essa era a abordagem recomendada, e elas persistem nas versões subsequentes dos aplicativos porque ninguém as removeu.
A escalada de privilégios retroativa é o que a CloudSEK classifica como o elemento mais urgente do problema. Uma chave com permissões limitadas tem seu escopo expandido automaticamente quando o Google ativa novos serviços no projeto, sem exigir ação do desenvolvedor e sem notificação explícita. O atacante que extraiu a chave de um APK publicado há dois anos pode estar acessando um endpoint de IA que foi habilitado na semana passada.

As chaves também são públicas por design, uma vez que o APK é distribuído nas lojas exatamente para que usuários baixem e instalem. Não há como revogar o acesso a uma chave já distribuída sem rotacioná-la e publicar uma nova versão do aplicativo.
Como se proteger
A remediação imediata envolve auditar os projetos no Google Cloud Console para identificar quais têm a Generative Language API habilitada, verificar quais chaves nesses projetos são irrestritas ou têm acesso explícito ao Gemini, e rotacionar qualquer chave que apareça em código client-side, repositórios públicos ou APKs distribuídos.
A abordagem correta para autenticação em APIs sensíveis é usar chaves restritas por IP, por referrer HTTP ou por escopo de API. Isso acaba limitando o que cada chave pode fazer mesmo que seja comprometida. Outra opção é migrar para fluxos OAuth 2.0, que autenticam o usuário em vez de expor uma credencial estática no código do aplicativo.
Acompanhe o TecMundo nas redes sociais. Para mais notícias de segurança e tecnologia, inscreva-se em nossa newsletter e canal do YouTube.





COMENTÁRIOS