Privacidade Digital

Perícia forense avança em recuperação de dados e conversas do WhatsApp

Publicada em 15/12/2016 15:54


whatsapp625

Como investigadores podem extrair informações úteis de uma das principais aplicações sociais existentes? O WhatsApp utiliza o protocolo XMPP para intercambiar dados pela Internet. Alguns trabalhos que se propõe a enfrentar o tema da perícia forense em WhatsApp são:

a) “Forensic Analysis of Instant Messenger Applications on Android Devices.” Mahajan, Aditya, M. S. Dahiya, and H. P. Sanghvi. (2013) O projeto aborda além de outros aspectos a extração de mensagens da memória RAM

b) WhatsApp Extract 2.0, desenvolvido por Francesco Picasso. Ferramenta que tem capacidade de desencriptar e organizar conteúdos de arquivos SQlite, organizando em um conteúdo HTML. A ferramenta explora O WhatsApp Database Encryption Project que detecta uma conhecida vulnerabilidade na implementação no Android da Criptografia AES

As aplicações Android são escritas em linguagem Java e o Android SDK compila o código em um arquivo .apk. Aplicações em android são normalmente instaladas em /data/data/nomedopacote. Quando um telefone com WhatsApp é ligado o processo “com.whatsapp” recebe um sinal para iniciar o acesso a mídia externa e os serviços de mensagem.

Todas as mensagens trocadas são armazenadas em msgstore.db e wa.db que são bancos de dados SQLite. A grande observação é que estes bancos são carregados na memória RAM do aparelho para maior performance. Este conteúdo pode persistir na RAM por mais tempo do que se imaginava.

Pesquisas demonstram que a menos que um processo de alta prioridade assuma a sobrescrição, a memória RAM funciona como uma verdadeira lixeira de dados e deve ser considerada em uma análise forense computacional envolvendo o comunicador WhatsApp.

O backup das conversas quando da troca de aparelho ou chip de dá no sdcard, mas via de regra o arquivo de mensagens fica criptografadas. O banco de dados de mensagens, em backup, é armazenado em /sdcard/WhatsApp/Databases/msgstore.db.crypt

O WhatsApp extract é um script em python que coletando um arquivo encriptado fornece um arquivo msgstore.plain.db como arquivo de saída, fazendo o mesmo com arquivos de mídia e fotos de perfil. Em alguns casos o backup dos dados do dispositivo para o SDCARD é feito diariamente e este conteúdo de mídia, ao contrário das mensagens, não é criptografado.

Interessante é que a tabela de mensagens msgstore.db possui campos “media_url”, “received_timestamp”, “send_timestamp”, “latitude” e “longitude”, o que nos sugere que a aplicação armazena dados de conexão dos remetentes, um identificador único para cada mídia que entra na rede do aplicativo (o que poderia ser usado para bloquear ou rastrear conteúdos ilícitos) e até coordenadas GPS de mensagens.

Para coleta de memória de dispositivos cujo o escopo é investigar conversações WhatsApp, utiliza-se o utilitário Lime, que geram um dump da RAM do dispositivo. Também é possível usar o Volatility ou Memfetch para analisar somente a memória pertinente ao processo WhatsApp.

Após a coleta da memória, pesquisadores propõem o uso de uma ferramenta denominada whatsappRamExtract (THAKUR, 2013) um bash script que cava evidências uteis de um binário de memória. O script pode recuperar números usados no equipamento e até mesmo troca de mensagens, embora qualquer coletador de strings da memória também possa recuperar estes dados. É possível buscar por padrões de strings “@s.whatsapp.net”, e os números telefônicos estarão antes da arroba.

A ferramenta Scalpel por sua vez pode ser usada para coletar medias deletadas mas que passaram pela memória. A conclusão é que atualmente, se um chat é limpo ou uma mensagem é deletada ela é imediatamente limpa da aplicação, mas não completamente limpa da memória.

Assim, as pesquisas atualmente focam suas atividades em mapear quais os dados são recuperados de um disco de um dispositivo sem e com root, da memória persistente, sem e com root, do SDCARD e de dados da memória volátil.

Quanto às tentativas de quebrar a criptografia dos arquivos de dados, alguns artigos informam que o arquivo de chave “key”, embora armazenado em userdata/data/сom.whatsapp/files/ somente em alguns casos poderia ser extraído de dispositivos “rootados”. Atualmente não existem descrições públicas revelando a quebra da criptografia sem o key file.

Para este problema, pesquisadores sugerem a engenharia reversa no WhatsApp para compreender o algoritimo de encriptação. Outros ainda recomendam o uso de mainframes ou nuvem para ataques de brutal force no arquivo criptográfico o que é apontado como uma solução muito cara e inviável (SKULKIN, 2015)

Assim, diante das limitações, a memória volátil passa a ser um artefato de total interesse, no estudo de padrões deixados pelo App na busca de dados excluídos pelos investigados. Percebe-se, como visto, que muitos conteúdos que integram arquivos de bancos de dados do aplicativo, armazenados na memória persistente, se limpos ou excluídos, podem ser encontrados na memória volátil, incluindo contados, mensagens, números telefônicos e em alguns casos, mídias, fotos e vídeos que foram enviados e recebidos.

Referências:

CORTJENS, D.; SPRUYT, A.; WIERINGA, F. C. WhatsApp Database Encryption Project Report. Acesso em 13. dez. 2016.
SKULKIN, Oleg. DECRYPTING ENCRYPTED WHATSAPP DATABASES WITHOUT THE KEY. Disponível em:<https://www.digitalforensicscorp.com/blog/decrypting-encrypted-whatsapp-databases-without-the-key/ >. Acesso em 13. dez. 2016.
TAHAKUR, Neha S. Forensic Analysis of WhatsApp on Android Smartphones. Disponível em:< http://scholarworks.uno.edu/cgi/viewcontent.cgiarticle=2736&context=td> Acesso em 13.dez. 2016.
Zena Forensics “WhatsAppXtract 2012” [Online]. Disponível em: <http://code.google.com/p/hotoloti/downloads/list>. Acesso em 13. dez. 2016.
MAHAJAN, Aditya; DAHIYA, M. S.; SANGHVI, H. P. Forensic Analysis of Instant Messenger Applications on Android Devices. arXiv preprint arXiv:1304.4915 (2013). Acesso em 13. dez. 2016.
  • Kelvin James Ayres

    Interessante…

  • Charlles Turibio

    Muito interessante