lunes, abril 18, 2016

WhatsApp en iPhone mantiene sin cifrar la Base de Datos

Quiero dedicar un artículo a las nuevas características de seguridad en el cifrado que ha implantado WhatsApp en la nueva versión, y para ello estoy revisando con mis compañeros las partes de seguridad que eran conocidas como límites y que han permitido a un posible atacante sacar partido de ellas para espiar WhatsApp, o afectar a la seguridad de la cuenta o la privacidad de los usuarios. El otro día os dejé por aquí un post sobre la eliminación que ha hecho WhatsApp de los mensajes en que enviaba en texto plano el número de teléfono al conectarse a una red WiFi. Esto podría ser utilizado por un atacante para espiar a la gente que compartía red. 

Figura 1: WhatsApp en iPhone mantiene sin cifrar la Base de Datos

Hoy os dejo información de otra cosa que era conocida por todos y que parece que ha mejorado también un poco. Se trata de la protección de la base de datos de mensajes de WhatsApp en iPhone, tanto en su acceso al fichero como a los mensajes que contiene. Los que habéis leído el libro de Hacking iOS - sorry, está agotado por ahora - sabéis que el fichero de la base de datos de WhatsApp (ChatStorage.sqlite) está cifrado en las versiones de BlackBerry y en Android, pero que en iPhone no es así. De esta forma, cualquier persona con acceso a ese fichero puede extraer las conversaciones del mismo e, incluso, los mensajes borrados.

El acceso a la base de datos de WhatsApp en iPhone

El fichero de la base de datos de WhatsApp en iPhone no es difícil de conseguir, ya que va en cualquier backup que se haga de iPhone. Es decir, es posible acceder a él cuando se hace un backup al sistema operativo pareado con iTunes, ya que solo habría que buscar el nombre del fichero de la base de datos de mensajes de WhatsApp, que es conocido por todos. El nombre en el backup de iTunes depende del dominio asignado al fichero de la base de datos en iOS y la ubicación del mismo, y como esto ha cambiado, los nombres que hay que buscar en iPhone son estos tres. Si el backup de iTunes está cifrado, habría que hacer un ataque de fuerza bruta o diccionario a la contraseña de cifrado.

De hecho, estos ficheros de copia de seguridad de la base de datos de WhatsApp que hace iTunes se pueden llegar a buscar por eMule, como ya os publiqué en un artículo hace ya un par de años. De nuevo, si está cifrado ese fichero, sería necesario descargar del mismo backup - es decir, del mismo equipo - el fichero Manifest.plist, que es necesario para crackear la password con que se ha cifrado el backup de iPhone.

Figura 2: Nombre de ChatStorage.sqlite en backups de iOS.
El tercero es el de la versión actual de WhatsApp.

También se queda en la copia de seguridad que del sistema operativo iOS se hiciera en los servicios iCloud de Apple para hacer el backup, y por eso los atacantes buscaban robar el Apple ID y descargarsela de la nube si el usuario no hace uso de la Verificación en 2 Pasos que está disponible. Igual que te descargas las fotos, te descargas la base de datos de WhatsApp.

Ahora, en las nuevas versiones la base de datos de WhatsApp ya no está entre los archivos de la aplicación y hay que ir a buscarla al System, igual que la carpeta de los mensajes SMS, lo que hace que el nombre del fichero de WhatsApp que hay que ir a buscar cambie, pero nada más.

Figura 3: Es necesario el jailbreak para acceder a la SanBox y el System

También se puede seguir sacando directamente desde el terminal, pero debido a las protecciones de seguridad de iOS añadidas en 8.3 el iPhone tiene que tener hecho el jailbreak e instalado el tweak de AFC 2 en el sistema operativo para poder a todos los ficheros.

Figura 4: Accediendo al System de un iPhone con Jailbreak y el Tweak de AFC2

Estas protecciones de iOS dificultan un poco la extracción, pero no la hacen imposible - salvo que no exista jailbreak para esa versión de iOS -.

Acceso a los mensajes de WhatsApp

En cualquier caso, si se llega a la base de datos de WhatsApp, sea por el backup de iOS hecho por iTunes, ésta se encuentra sin ningún cifrado extra añadido en la capa de aplicación. Todas las medidas de seguridad que se han visto antes tienen que ver con el sistema operativo iOS, pero no con WhatsApp

Figura 5: Se puede ver que el fichero, en este caso en la última versión de WhatsApp (7c7fba66680ef796b916b067077cc246adacf01d), está en texto plano.

Se puede ver el contenido en texto plano en la imagen superior y con cualquier lector de bases de datos SQLite se pueden ver los mensajes.

Figura 6: Visualización de fichero SQLite

Esto no quiere decir que esté mal, simplemente que la aproximación de WhatsApp en iOS es diferente a la seguida en Android o BlackBerry - por las diferencias en seguridad de los sistemas operativos - y que si conoces el funcionamiento de seguridad de un iPhone, WhatsApp no pone medidas extras para proteger la base de datos.

Figura 7: Opción de hacer copia de base de datos de WhatsApp en iCloud

Esto quiere decir que si haces copia de seguridad de la base de datos de WhatsApp en iCloud - aunque no hagas copia de seguridad de iOS completo - el fichero va a la nube y se almacena sin cifrar. El resto de medidas para tener lo más seguro tu sistema, aquí tienes la lista de recomendaciones para Proteger WhatsApp a prueba de balas.

Saludos Malignos!

1 comentario:

  1. Hola, he cambiado a Android y el iPhone se lo ha quedado mi mujer, pero ya lo ha configurado como nuevo, desde cero. Antes de hacer el cambio, hice la copia a iCloud desde WhatsApp (la última imagen que pones). Mi idea era acceder a dicha copia (1,16gb), llevarla a drive e importarla al móvil android, pero ahora ni la encuentro ni nada.
    ¿Podrías orientarme para encontrar el archivo y sacarlo de la nube?
    Un millón de gracias

    ResponderEliminar