Exploração do FCM por trás de notificações estranhas do Microsoft Teams, Hangouts

Uma vulnerabilidade divulgada recentemente no Firebase Cloud Messaging levou a notificações estranhas de aplicativos como Microsoft Teams e Hangouts.

Parece que não podemos passar um dia sem que outra falha de segurança significativa apareça em algum software ou serviço. Esta semana parece ser o momento para o Firebase Cloud Messaging se deparar com uma vulnerabilidade facilmente explorável.

Mensagens na nuvem do Firebase é uma estrutura do Google para ajudar a facilitar a entrega de notificações por meio de aplicativos em praticamente qualquer plataforma. Com algumas configurações simples de seu aplicativo e de um servidor, você pode enviar notificações push gerais ou direcionadas aos seus usuários em poucos minutos. A maioria dos aplicativos Android que fornecem notificações push provavelmente usam o Firebase Cloud Messaging (ou o legado Google Cloud Messaging) para fazer isso. Isso inclui aplicativos de desenvolvedores amadores individuais até aplicativos de corporações gigantes como a Microsoft e, claro, o Google.

A exploração

E é aí que entra essa exploração. Se você usa aplicativos como Equipes da Microsoft ou Hangouts do Google, você deve ter notado recentemente a chegada de notificações aleatórias, como as da captura de tela a seguir. São de pessoas que aproveitam configurações inadequadas do Firebase Cloud Messaging.

Captura de tela de /u/ToTooThenThan no Reddit.

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 se 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 possuem a chave incorporada. 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 estar vulneráveis ​​a essa exploração, assim como o Microsoft Teams. Portanto, é meio que culpa do Google, mas também não é verdade.

E pode ser usado para propósitos bastante nefastos. Embora pareça que a maioria das “implementações” desta vulnerabilidade tenham sido usadas apenas para enviar mensagens de texto estranhas às 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 fazer login novamente", com um URL que é iniciado quando você toca nele. Esse URL pode acabar sendo um site com estilo semelhante, digamos, à página de login da Microsoft. Mas em vez de fazer login na Microsoft, você está fornecendo seu login a alguém.

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 completamente as notificações do aplicativo), mas não pode filtrar as notificações ilegítimas, pois, até onde o Firebase sabe, elas são legítimo.

O que você pode fazer, porém, é ter cuidado. Se você receber uma notificação que parece solicitar seus detalhes de login – ou qualquer outra informação pessoal – 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 por fim, se você já colocou sua senha em algum lugar através 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. já.

O que os desenvolvedores devem fazer?

Se você implementou o 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 seu servidor.

Novamente, este não é um artigo muito técnico, então você vai querer visitar os links abaixo para obter mais informações sobre mitigação.

Respostas do Google e da Microsoft

Um porta-voz do Google disse O gole diário que o problema estava “especificamente relacionado aos desenvolvedores que incluíam chaves de API em seus códigos para serviços que não deveriam ser incluído, que poderia então ser explorado”, em vez do próprio serviço Firebase Cloud Messaging ser comprometido. “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:

Leitura adicional

Aqui estão alguns artigos que fornecem muito mais detalhes sobre o que é esse exploit, como funciona e como você pode ter certeza de que não está vulnerável. Se você é desenvolvedor de aplicativos ou está apenas interessado em saber como isso funciona, dê uma olhada.

  • Aquisição do serviço Firebase Cloud Messaging: uma pequena pesquisa que resultou em mais de 30 mil dólares em recompensas
  • A vulnerabilidade de mensagens do Google Firebase permitiu que invasores enviassem notificações push aos usuários do aplicativo