Parece que não podemos passar um dia sem que outra falha significativa de segurança apareça em algum software ou serviço. Esta semana parece ser a hora do Firebase Cloud Messaging enfrentar uma vulnerabilidade facilmente explorável.
Firebase Cloud Messaging é uma estrutura do Google para ajudar a tornar mais fácil a entrega de notificações por meio de aplicativos em quase todas as plataformas. Com algumas configurações simples de seu aplicativo e de um servidor, você pode enviar notificações push gerais ou direcionadas para seus usuários em minutos. A maioria dos aplicativos Android que entregam notificações push provavelmente usa Firebase Cloud Messaging (ou o legado Google Cloud Messaging) para fazer isso. Isso inclui aplicativos de desenvolvedores solitários a aplicativos de corporações gigantes como a Microsoft e, claro, o Google.
The Exploit
E é aí que entra esse exploit. Se você usa aplicativos como Microsoft Teams ou Hangouts do Google, você deve ter notado recentemente notificações aleatórias, como as da captura de tela a seguir. São de pessoas aproveitando as configurações inadequadas do Firebase Cloud Messaging.
Não vou entrar em muitos detalhes aqui, mas esse problema não é realmente culpa do Google. Para enviar notificações push com segurança, o Google exige que o servidor que as está enviando também envie uma chave para validar que são genuínas. Essa chave deve estar apenas no console do Firebase e no servidor.
Mas os aplicativos afetados, por qualquer motivo, também têm a chave incorporada a eles. Não é usado, mas está lá, em texto simples, para qualquer pessoa ver e usar. Ironicamente, o Google Hangouts e o Google Play Music parecem ser vulneráveis a esse exploit, assim como o Microsoft Teams. Então é meio que culpa do Google, mas também não é realmente.
E pode ser usado para propósitos bastante nefastos. Embora pareça que a maioria das “implementações” dessa vulnerabilidade foram usadas apenas para enviar textos estranhos para as pessoas, é possível que um invasor execute um esquema de phishing. O texto da notificação pode ser algo como “Sua sessão expirou. Toque aqui para entrar novamente ”, com um URL que é iniciado quando você toca nele. Essa URL pode acabar sendo um site com o estilo de, digamos, a página de login da Microsoft. Mas, em vez de entrar na Microsoft, você está dando a alguém seu login.
O que os usuários devem fazer?
Nada. Não há muito que você, como usuário, possa fazer para interromper essas notificações. Você pode bloquear os canais em que eles entram (ou bloquear notificações do aplicativo por completo), mas não pode filtrar as notificações ilegítimas, pois, pelo que o Firebase sabe, elas estão legítimo.
O que você pode fazer, porém, é ter cuidado. Se você receber uma notificação que parece estar pedindo os seus detalhes de login – ou qualquer outra informação pessoal para esse assunto – não toque nela. Em vez disso, abra o aplicativo diretamente. Se a notificação for real, o aplicativo indicará isso. Caso contrário, provavelmente foi uma tentativa de phishing. Se você tocar em uma notificação, feche imediatamente qualquer site que abrir.
E, finalmente, se você já colocou sua senha em algum lugar por meio de uma notificação, altere-a imediatamente, desautorize todos os dispositivos conectados (se aplicável) e habilite a autenticação de dois fatores, se ainda não tiver feito isso.
O que os desenvolvedores devem fazer?
Se você implementou Firebase Cloud Messaging em seus aplicativos, verifique os arquivos de configuração para garantir que as chaves do servidor não estejam lá. Se estiverem, invalide-os imediatamente, crie novos e reconfigure o seu servidor.
Novamente, este não é um artigo muito técnico, então você deve visitar os links abaixo para obter mais informações sobre mitigação.
Respostas do Google e da Microsoft
Um porta-voz do Google disse The Daily Swig que o problema era “especificamente relacionado a desenvolvedores que incluíam chaves de API em seus códigos para serviços que não deveriam ser incluídos, que poderiam então ser explorados”, em vez de comprometer o próprio serviço Firebase Cloud Messaging. “Nos casos em que o Google consegue identificar que uma chave de servidor é usada, tentamos alertar os desenvolvedores para que possam consertar seu aplicativo”, acrescentou o porta-voz.
A Microsoft emitiu a seguinte declaração no Twitter:
We're investigating an issue where users are receiving Test notifications on their mobile devices. Further updates will be provided under the SI TM221041 in your admin center.
— Microsoft 365 Status (@MSFT365Status) August 27, 2020