WhatsApp multidispositivo: ¿Cómo afectan los cambios al análisis forense? – Parte 4
Este post pertenece a una serie dedicada a WhatsApp multidispositivo. Una breve explicación de la misma con algunas notas aclaratorias se incluye al comienzo del primer artículo.
Entradas de la serie:
- WhatsApp multidispositivo: ¿Qué hay de nuevo? – Parte 1
- WhatsApp multidispositivo: Sincronizando los datos entre dispositivos – Parte 2
- Aplicación del cifrado de extremo a extremo en las copias de seguridad de WhatsApp – Parte 3
- WhatsApp multidispositivo: ¿Cómo afectan los cambios al análisis forense? – Parte 4
En los posts anteriores he ido analizando las novedades más recientes de WhatsApp: La arquitectura multidispositivo y el nuevo cifrado “seguro” de las copias de seguridad en la nube.
En este último post de la serie quiero daros mi punto de vista sobre cómo estos cambios afectan al trabajo forense, dado que WhatsApp es una de las aplicaciones cuyo análisis es más frecuente en estos días.
Algunas de las cuestiones que a continuación os planteo son susceptibles de una investigación en mayor profundidad. De momento, sólo he podido hacer un análisis preliminar, y espero que pueda servir cómo base para un análisis más profundo.
Contenidos
Múltiples almacenamientos para una misma cuenta: ¿Serán fiables los datos obtenidos?
En la arquitectura de WhatsApp clásica, el teléfono móvil era la fuente única de todos los datos. Los dispositivos vinculados sólo actuaban a modo de interfaz de usuario, siendo el teléfono móvil el que se encargaba siempre de almacenar el historial completo de mensajes.
Debido a esto, el análisis forense de WhatsApp se ha focalizado siempre en el teléfono móvil, dejando de lado a los dispositivos vinculados, que al no almacenar un historial de mensajes completo, no eran objeto de interés para las investigaciones forenses.
La introducción de la nueva arquitectura multidispositivo cambia radicalmente el escenario.
Cuando se vincula un nuevo dispositivo a una cuenta, cómo ya expliqué en la PARTE 2 de esta serie de artículos, el nuevo dispositivo descargará un paquete cifrado con parte de los mensajes almacenados en el teléfono móvil principal.
Según las pruebas que he realizado sobre la versión “beta”, el dispositivo vinculado descarga todos los mensajes de todos los chats que tengan menos de 1 año de antigüedad.
Debido a esto, el análisis forense de la aplicación de WhatsApp instalada en un dispositivo vinculado, posiblemente no nos aporte todos los mensajes de una conversación, sobre todo si esta se ha extendido a lo largo del tiempo.
Con la nueva arquitectura, los dispositivos vinculados podrán enviar y recibir mensajes incluso cuando el teléfono móvil principal esté desconectado. Y aunque el teléfono móvil seguirá siendo el elemento central de la seguridad (no podemos añadir un dispositivo vinculado a una cuenta sin acceso físico al móvil que la gestiona), aparecerán nuevas situaciones que hasta ahora eran imposibles.
Por ejemplo, un usuario puede crear una nueva cuenta de WhatsApp en su teléfono móvil, vincular la cuenta con la aplicación instalada en un PC, y desinstalar (o apagar permanentemente) WhatsApp en su teléfono móvil.
Si a partir de ese momento todas sus comunicaciones se realizan desde el PC, el análisis forense del teléfono móvil no permitiría obtener sus mensajes. Como ya expliqué también en la PARTE 2, cada mensaje enviado y recibido se replica a todos los dispositivos de la cuenta. Al no haber accedido el usuario a WhatsApp desde su móvil, estos mensajes se encontrarían cifrados en los servidores de WhatsApp, pendientes de ser entregados al dispositivo.
Esta situación es extrapolable al resto de dispositivos, que podrán acceder o no a WhatsApp según considere el usuario necesario. Debido a este cambio, ahora ya no contaremos con una fuente única de datos, sino que podremos tener hasta 5 fuentes de datos diferentes (el teléfono móvil principal y los 4 dispositivos vinculados) para una cuenta, y cada una de ellas con datos distintos, siendo todas ellas válidas.
Acceso a los datos en dispositivos vinculados
Dado que los dispositivos vinculados ahora sí que pueden tener almacenado, de forma total o parcial, el historial de mensajes del usuario, esto los convierte en foco de interés para el análisis forense.
No puedo comentaros gran cosa sobre Mac, pues no he podido acceder a la instalación de la aplicación de escritorio para esta plataforma, aunque por lo que he podido ver en la versión para Windows, seguramente no difiera demasiado de lo que a continuación os voy a contar.
La aplicación para Windows puede instalarse de 2 formas distintas: Descargando el instalador desde la página de WhatsApp o desde la tienda de Windows.
Además, ambas instalaciones (dirécta y a través de la tienda) pueden convivir en el mismo equipo, lo cual permite tener 2 cuentas de WhatsApp gestionadas en el mismo PC, a las que podemos acceder simultáneamente.
Si la instalación la hacemos a través del instalador, la ruta en la que se almacenarán todos los archivos de datos de WhatsApp será C:\Users\<nombre_usuario>\AppData\Roaming\WhatsApp
Sin embargo, si realizamos la instalación a través de la Windows Store, nuestros archivos se ubicarán en C:\Users\<nombre_usuario>\AppData\Local\Packages\XXXXXXX.WhatsAppDesktop_yyyyyyyyy\LocalCache\Roaming\WhatsApp (las XXX y las yyy son aleatorias).
A continuación os muestro un ejemplo de los archivos y carpetas que componen la instalación:
La información del historial de mensajes se encuentra en la carpeta /IndexedDB. Es algo bastante claro una vez compruebas cómo van creciendo los tamaños de los ficheros en esa carpeta a medida que los mensajes se van descargando durante la sincronización inicial.
Esta carpeta contiene una base de datos NoSQL “LevelDB”.
Revisando si existe alguna forma de acceder a este tipo de bases de datos a través de alguna herramienta, me encontré con este enlace: https://www.cclsolutionsgroup.com/post/hang-on-thats-not-sqlite-chrome-electron-and-leveldb
En él hacen referencia al framework de desarrollo “Electron”, que permite crear aplicaciones de escritorio utilizando muchas de las características del desarrollo web, y entre las aplicaciones que indican que están realizadas con “Electron” se encuentra la aplicación “Skype” para Windows y la versión de WhatsApp de escritorio. Además, describen detalladamente el formato de los archivos “LevelDB”.
La conclusión a la que llegué es que si queremos leer el contenido de la base de datos de WhatsApp, necesitaremos alguna herramienta que permita acceder a la base de datos “LevelDB” y preparar algún tipo de script o programa que analice sus tablas y permita extraer la información.
Por si alguno está interesado en ello (ya me gustaría a mí tener el tiempo necesario…), os doy dos referencias que pueden resultar interesantes para avanzar en esta línea de investigación:
- La librería “plyvel” para Python, que permite leer este tipo de bases de datos, disponible en https://github.com/wbolster/plyvel
- La herramienta de análisis forense “rvt2” de la empresa INCIDE (www.incide.es) incluye un script que parsea la BBDD de “Skype”, que podría servir como base para la realización de otro parser para “WhatsApp”.
Yo creo que podría ser una buena idea para un proyecto fin de carrera o incluso podría desarrollarse una herramienta comercial.
Análisis forense de WhatsApp a partir de una copia de seguridad
Para realizar un análisis forense completo de WhatsApp en un dispositivo móvil es necesario poder acceder a la base de datos que almacena toda su información. En iOS, podemos extraer esta base de datos a través de una copia de seguridad de iTunes, pero en Android es algo que cada vez resulta más difícil, debido a la introducción del cifrado de la memoria y a las distintas medidas de seguridad “anti-root” incluidas en el sistema operativo.
A día de hoy, dispositivos avanzados como Cellebrite, no pueden realizar un volcado físico, y en muchos casos ni siquiera una adquisición lógica completa, en una gran cantidad de dispositivos Android.
Por ello, se ha hecho necesario buscar mecanismos “alternativos” para poder acceder a esta información. Algunas herramientas forenses, como Oxygen Forensics Detective o Belkasoft X han introducido extracciones de datos de WhatsApp a partir de “agentes” instalados en el dispositivo. Si bien esto puede ser útil para el análisis de los mensajes, no permite acceder a todos los datos que sí aparecen almacenados en la base de datos.
Tambíen estas herramientas han incluido la posibilidad de enlazarse a través del código QR simulando ser un dispositivo vinculado, y a partir de ahí, realizan un volcado de todos los mensajes existentes en el teléfono móvil.
Tambíen existe la posibilidad de realizar un downgrade de la aplicación de WhatsApp en el dispositivo, pero este método debe utilizarse con cuidado porque de hacerse mal, se podría corromper la información del teléfono resultando en la pérdida de información.
En mi opinión, el mecanismo más efectivo y ménos intrusivo para acceder a la base de datos de WhatsApp en dispositivos Android es la restauración de una copia de seguridad en un dispositivo previamente “rooteado” o en un emulador.
Para realizar esta restauración, es necesaria la clave de cifrado de la copia de seguridad, que está almacenada en la memoria protegida del dispositivo. Pero como ya comenté en la PARTE 3, esta clave es conocida por WhatsApp. Si no fuera así, el sistema de copias de seguridad actual, tanto en la nube como locales, no funcionaría.
Cuando instalamos WhatsApp en un nuevo dispositivo, tras realizar la validación de la cuenta (vía SMS o llamada), la clave se descarga en ese dispositivo y permite el descifrado de la copia de seguridad.
El cambio que WhatsApp introduce en la seguridad de su sistema de copias de seguridad (mal llamado cifrado de extremo a extremo), hace que el control de esa clave ya no esté en manos de WhatsApp, ni se mantenga oculta, sino que esté accesible para el usuario.
Y una vez conocida la clave de cifrado, existen múltiples herramientas “open source” como “Whatsapp Viewer” (https://github.com/andreas-mausch/whatsapp-viewer) o “WhaCypher” (https://github.com/B16f00t/whapa) que nos permitirán descifrar la copia de seguridad sin demasiadas complicaciones.
Esto sin duda es una gran ventaja para el análisis forense, pues resultará bastante más sencillo descifrar las copias de seguridad, y creo que abre una vía que será utilizada con mayor asiduidad en el futuro cercano.
Este es el último post de la serie. Si no habéis leído los anteriores, os invito a hacerlo. Espero que os haya gustado y como siempre, os animo a enviarme vuestros comentarios y sugerencias a través de este blog o a través de mi cuenta de twitter (@peritotec).
Y si necesitáis un perito informático colegiado, podéis conocer más sobre mí y los servicios que presto a través de mi página web www.peritotecnologico.net
5 thoughts on “WhatsApp multidispositivo: ¿Cómo afectan los cambios al análisis forense? – Parte 4”
Hola.
¿Sería válido un informe pericial de una conversación de Whatsapp, si resulta que ya tiene 6 meses y he cambiado de móvil desde que se ha producido?
Es decir, imaginemos que me compro un móvil nuevo y restauro los mensajes antiguos a través de la nube.
¿Tendría problemas para demostrar la veracidad de una conversación?
Muchas gracias.
Hola Emiliano,
En mi opinión, para que un informe sea válido se deben cumplir los requisitos formales del perito y del informe.
Si el informe está bien hecho, se ha respetado la cadena de custodia y el perito tiene los conocimientos, capacidad y titulación, siempre será válido.
Otra cuestión distinta son el objeto del informe y las conclusiones del mismo, así como su interpretación por parte del tribunal.
No se puede pedir a un usuario que no utilice funciones de WhatsApp (o de cualquier otra aplicación) que están ahí para usarse, y que, a priori, son seguras y no afectan a la integridad de la información, cómo puede ser la restauración de una copia de seguridad en otro terminal.
En todos los casos, es conveniente revisar el sistema operativo, el terminal y el contenido de la propia base de datos de WhatsApp, para intentar descartar cualquier indicio de manipulación.
En sentido contrario, igualmente si se tiene disponible el terminal que se usaba cuándo se mantuvo la conversación de interés, siempre es preferible realizar la pericial sobre dicho terminal.
Y por último, en caso de duda, las conversaciones se almacenan en los terminales de los dos interlocutores (varios si es un grupo), por lo que se pueden cotejar entre distintos terminales, para ver si la conversación es exáctamente la misma en todos ellos.
Por eso en estos casos no hay una respuesta general que sirva para todos los casos. Siempre digo que cada caso es distinto, y puede tener circunstancias particulares que requieren interpretación.
Espero haber contestado a su pregunta lo mejor posible.