O Facebook corrigiu uma falha crítica no aplicativo Messenger para Android que permitia ouvir os outros usuários por meio de chamadas sem permissão e antes que a pessoa do outro lado aceitasse a chamada.
De acordo com a página oficial do aplicativo na Play Store, o Messenger já foi instalado em mais de 1 bilhão de dispositivos Android, dando uma dimensão dos usuários que poderiam se prejudicar com esta falha.
Como funciona a falha?
Os invasores podem ter explorado a falha enviando um tipo especial de mensagem conhecida como SdpUpdate, fazendo com que a chamada se conectasse ao dispositivo da vitima antes de ser atendida.
"Se esta mensagem for enviada para o dispositivo receptor enquanto está tocando, isso fará com que ele comece a transmitir áudio imediatamente, o que pode permitir que um invasor monitore os arredores do receptor", explica Natalie Silvanovich, pesquisadora do Projeto Zero do Google.
"Normalmente, o receptor não transmite áudio até que o usuário tenha consentido em aceitar a chamada, o que é implementado não chamando setLocalDescription até que o receptor tenha clicado no botão aceitar ou definindo as descrições de mídia de áudio e vídeo no SDP local como inativas e atualizá-los quando o usuário clicar no botão (a estratégia usada depende de quantos terminais o receptor está conectado ao Facebook).", acrescentou.
Reproduzindo o problema do Messenger para Android
Silvanovich encontrou o problema na versão 284.0.0.16.119 do Facebook Messenger para Android no mês passado. O pesquisador também fornece código de exploração de prova de conceito (PoC) baseado em Python para reproduzir o problema no rastreador de bug do Project Zero.
O procedimento completo para reproduzir o problema agora corrigido envolve fazer uma chamada de áudio para o dispositivo de destino depois de executar o PoC no dispositivo do invasor.
Depois de esperar alguns segundos, o invasor pode ouvir o áudio dos arredores do alvo através dos alto-falantes do dispositivo. Para conectar a chamada automaticamente, o PoC seguirá as etapas abaixo:
- Aguarda o envio da oferta e salva o campo sdpThrift da oferta;
- Envia uma mensagem SdpUpdate com este sdpThift para o destino;
- Envia uma mensagem SdpAnswer falsa para o invasor, para que o dispositivo pense que a chamada foi atendida e reproduza o áudio de entrada;
- Bug explorável por atacantes na lista de amigos do alvo.
De acordo com a explicação do Facebook, esse bug "poderia ter permitido que um invasor sofisticado conectado ao Messenger para Android iniciasse simultaneamente uma chamada e enviasse um tipo de mensagem indesejada para alguém conectado ao Messenger para Android e outro cliente do Messenger (ou seja, navegador da web)."
"Isso desencadearia um cenário em que, enquanto o dispositivo está tocando, o chamador começaria a receber áudio até que a pessoa sendo chamada atenda ou a chamada expire.
"Para explorar este problema, um invasor já deve ter as permissões para ligar para essa pessoa em particular, ignorando certas verificações de elegibilidade (por exemplo, sendo amigos no Facebook).
Eles também precisam usar ferramentas de engenharia reversa para manipular seu próprio aplicativo Messenger para forçar para enviar uma mensagem personalizada. "
Depois de corrigir o bug relatado pelo Project Zero do lado do servidor, os pesquisadores de segurança do Facebook aplicaram proteções adicionais em outros aplicativos que usam o mesmo protocolo para chamadas 1: 1.
Recompensa de $ 60.000 pelo reporte do bug
O Facebook enviou uma recompensa de $ 60.000 a Silvanovich por encontrar e divulgar essa falha do aplicativo Messenger para Android.
"Este relatório está entre nossas três maiores recompensas por bug em US $ 60.000, o que reflete seu impacto potencial máximo", disse Dan Gurfinkel, gerente de engenharia de segurança do Facebook.
A pesquisadora do Projeto Zero afirma que doará a soma total para o Fundo de Impacto Máximo da GiveWell. Collin Greene, gerente de segurança de produtos do Facebook, que disse mais tarde que a empresa igualará a doação de Silvanovich à GiveWell com um total de $ 120.000.
Programa de recompensas do Facebook
Mais de 50.000 pesquisadores aderiram ao programa de recompensa de bugs do Facebook e cerca de 6.900 deles foram premiados com uma recompensa após preencherem mais de 130.000 relatórios de vulnerabilidade desde 2011.
Entre os relatórios de bugs reportados, estão os de dois brasileiros que tiveram seus nomes incluídos na página de agradecimentos do programa, são eles: Andres Alonso Bie Perez de apenas 14 anos, que reportou uma falha no Instagram, e o hacker ético brasileiro Gabriel Pato que fez diversas contribuições para a Rede Social.
Somente neste ano, o Facebook afirma que mais de US $ 1,98 milhão foram concedidos a pesquisadores de mais de 50 países que relataram mais de 1.000 vulnerabilidades.