Semana passada (14/05/2019) o Facebook informou que o WhatsApp havia sido hackeado e que os alvos foram “escolhidos a dedo”. Algumas agências de notícias chegaram a afirmar que foi um trabalho de espionagem contra estes seletos usuários porque após o ataque ser bem sucedido, era instalado um aplicativo espião para roubar as conversas destes usuários.
Mas afinal, que falha foi explorada neste ataque?
A falha usada foi um 0day (ou seja, uma falha sem correção) que explorava uma vulnerabilidade de buffer overflow na pilha das chamadas VOIP do Whatsapp, permitindo a execução de comandos.
Basicamente foram enviados pacotes SRTCP especiamente criados para estourar o buffer do WhatsApp e executar comandos.
SRTCP significa Secure Real-time Transport Control Protocol. Este procolo é bastante semelhante do RTP (Real-time Transport Protocol) mas adiciona criptografia aos pacotes.
O Facebook fez uma notificação sobre a vulnerabilidade que pode ser vista em https://www.facebook.com/security/advisories/cve-2019-3568 e foi criado um CVE – Common Vulnerabilities and Exposures – Vulnerabilidades e Exposições Comuns – numerado como CVE-2019-3568.
O que o Facebook/WhatsApp fez para corrigir esta vulnerabilidade?
O pessoal de pesquisa da CheckPoint fez uma análise da correção. Eles pegaram o binário do WhatsApp com a falha corrigida, o binário do WhatsApp vulnerável e fizeram um “bindiff” para verificar as diferenças de código. Verificaram então que o Facebook/WhatsApp adicionou duas novas verificações de tamanho:
Verificação 1:
A primeira verificação é realizada no início da função responsável por lidar com pacotes RTCP. O facebook/WhatsApp adicionou uma verificação de tamanho máximo de 1480 bytes (0x5C8).
Durante a sessão de debugging conduzida pela CheckPoint, confirmaram que esta função é chamada antes mesmo da ligação ser atendida.
Verificação 2:
Foram adicionadas outras duas verificações de tamanho para garantir que não ocorrerá o “overflow” novamente. A segunda verificação (marcada em azul) é feita bem antes de copiar os dados para a memória.
O que fazer para me proteger desta vulnerabilidade?
Como dito, foram liberados patches de correção. Para se proteger, apenas atualize o WhatsApp na Store oficial do seu Sistema Mobile.