É a plataforma de comunicações instantâneas mais popular em todo o mundo. O WhatsApp é presença assídua em praticamente todos os smartphones Android, iOS e sem menosprezar a sua versão Web. Desse modo, compreendemos que se torne num dos alvos mais apetecíveis para mentes mal intencionadas.
Ao mesmo tempo, as piores ameaças são aquelas que atuam de forma dissimulada e “sem sintomas”.
Como resultado das atividades nefastas, há uma nova modalidade de “ataque”, bastando para tal fazer uma chamada através da app. O caso foi divulgado em ocasião anterior no Pplware, mas importa perceber realmente como atuava, agora que já foi possível estudar o modus operandi desta técnica.
Como funcionava o ataque ao WhatsApp
Com a finalidade de infetar a app para Android ou iOS com código malicioso, tudo o que a outra parte tinha de fazer era uma chamada. O pior de tudo? A única solução definitiva para impedir este acesso indevido era remover a aplicação do dispositivo móvel. Infelizmente, nenhum outro método surtia efeito.
Não existiam ligações em que o utilizador tinha de clicar, nem nenhum sítio da web de origem duvidosa. Com efeito, a pior ameaça é aquela de que não nos apercebemos e este era um desses casos. Bastava efetuar uma chamada para um determinado número para injetar um pacote de malware assim que esta era recebida.
De acordo com a Wired, em causa estava um ataque apelidado de “buffer overflow“, aplicado com o intuito de alterar a app presente nos smartphones e dispositivos móveis Android ou iOS. Esta tipologia consiste na inserção de código adulterado ou malicioso no código da aplicação per se, já presente no dispositivo.
Visava a app do WhatsApp nas plataformas Android e iOS
A terminologia mais elucidativa acaba por ser uma “saturação” do código com o intuito de fazer chegar o “pacote” malicioso à aplicação. Assim que tal ocorria, o código infetado misturava-se com o código padrão da app para Android ou iOS e a partir desse momento o hacker podia executar várias ações.
Aproveitando esta “margem de saturação”, era possível alterar ou adicionar partes do código fonte da app do WhatsApp. Tudo isto no maior dos silêncios e sem que o utilizador se apercebesse de qualquer sintoma ou comportamento anómalo, podendo assim o hacker continuar a agir.
Attackers exploiting a buffer overflow in WhatsApp's signaling software to automatically infect devices with malware – without users even having to answer their phone – and then alter call logs to hide attack traces is "a bit of a nightmare scenario," … https://t.co/U8nkNi5Zf8 pic.twitter.com/LxdRPBLdNQ
— CyberSecurityResource (@InfoSecResource) May 19, 2019
Como resultado desta estratégia, o hacker pode conseguir modificar o software da aplicação. Nesse caso, pode fazer o que quiser com a app em questão, seja ouvir tudo o que se passa nos smartphones, ou recolhera informação que assim desejar. É, portanto, um caso extremamente delicado e sério.
Uma chamada que pode infetar os smartphones?
Ainda assim, quando o WhatsApp recebe uma chamada, a app precisa de saber o que é que o utilizador quer fazer. Isto é, precisa de saber qual o comportamento a tomar. Posto isto, a app tem uma lista taxativa de possíveis ações (aceitar, rejeitar, etc), preparando-se para qualquer um destes cursos de ação.
É exatamente neste momento que o hacker pode “saturar” a lista supracitada com código malicioso. Ou, por outras palavras, empurrar mais comandos e possíveis ações para a lista de comportamentos previstos pela app do WhatsApp. Em seguida, caso tal tenha sucesso, o hacker ganha aqui uma “porta” para o que bem-quiser.
Holy crap. Malware hidden in a strand of DNA hijacks the computer that analyzes that particular gene sequence. https://t.co/4BdKXzRsp8 pic.twitter.com/agJfnpJJnI
— Geoff Manaugh (@geoffmanaugh) August 10, 2017
No entanto, importa frisar que estes ataques de “buffer overflow” só ocorrem em determinadas condições. No caso concreto do WhatsApp, a versão da app em questão não tinha limites estritamente definidos para impedir qualquer outra ação que não a prevista previamente pelos programadores.
A necessidade de um numerus clausus
A necessidade de implementar uma lista limitada de comportamos pode ser vista, e aplicada, em vários pontos da aplicação. Veja-se, por exemplo, que o nome do utilizador só pode ter X caracteres. Na prática, o programador “diz” ao software para não aceitar um nome que ultrapasse esse número de letras ou números.
Contudo, na eventualidade de tal não ser aplicado, cria-se uma lacuna que pode ser explorada. É aqui que os ataques de buffer overflow podem entrar em ação, sendo assim extremamente importante que os programadores não criem tais condições, ainda que de forma não propositada.
Numa última nota, o WhatsApp já atualizou a sua app para smartphones Android e iOS. As versões sujeitas a este tipo de ataques eram as anteriores à v2.19.134 para Android, e o WhatsApp Business v.2.19.44. Já para iOS a ameaça estava presente nas versões anteriores à v.2.19.51 e na versão Business anterior à v.19.51.