LINE. Android e iOS. Análisis técnico de la mensajería instantánea.

En la actualidad, el uso de smartphones y tablets se ha convertido en una parte fundamental de nuestras vidas. El rápido crecimiento de las aplicaciones de mensajería instantánea ha hecho que servicios como llamadas telefónicas o SMS queden desplazados por los mensajes enviados desde aplicaciones en terminales móviles. Es por esto que este tipo de mensajes puedan tener cabida en un tribunal como prueba ante un delito.

En este post comentaré lo que fue mi Trabajo Fin de Grado en la Universidad de Alcalá el cual fue dirigido por el IUICP (Instituto Universitario de Investigación en Ciencias Policiales) y por lo tanto, imaginaréis que quienes lo usarán serán las FFCCSSEE en caso de que sea necesario para llevar algún tipo de investigación forense donde sea preciso recuperar conversaciones mantenida desde LINE.

¿Por qué LINE y no otro? Para chatear con una persona usando LINE no es necesario que ninguna de las partes tenga el teléfono móvil de la otra, únicamente dando el ID de usuario ya puedes mantener una conversación. El anonimato que esto ofrece, junto con las conversaciones secretas (sus mensajes se autodestruyen “permanentemente”), abre un campo muy amplio que dejo a vuestra imaginación.

Aunque no puedo dar mucha información sobre aspectos técnicos de la investigación (una pena ya que todo esto es propiedad del IUICP), sí puedo comentar el proceso que realicé, que puede dar una orientación a otras personas interesadas en este tipo de investigaciones.

Lo primero que analicé fue el protocolo usado por LINE para envío y recepción de mensajes. Debajo se puede ver una imagen con el esquema del protocolo de mensajes.

Resumiendo:

1. Un Emisor escribe un mensaje y lo envía.

2. Los Servidores de LINE lo reciben y le asignan un identificador único de mensaje (server_id) y una fecha de recepción (created_time).

3. Los servidores envían a Emisor server_id y created_time.

4. Los servidores envían a Receptor el mensaje, server_id y created_time.

En un segundo bloque, separado por Android o iOS, llevé a cabo el análisis de:

1. El sistema de archivos que utiliza LINE. En este apartado, se analiza el directorio de instalación, dónde se encuentran las bases de datos, dónde se almacenan los ficheros multimedia enviados/recibidos así como las fotos de perfil de los contactos…

2. Análisis de las bases de datos (donde se almacenan los mensajes).

  • Análisis relacional: Relación entre tablas usando sus registros.
  • Análisis de los registros: Saber qué almacena cada columna de cada tabla de la base de datos.

3. Análisis forense.

  • Ficheros de configuración: Obtención de más información, como el nombre de usuario y la foto de perfil.
  • Bases de datos: Se analiza cómo es la estructura de los mensajes una vez almacenados mediante un editor hexadecimal.

Por último, en un tercer bloque describo las aplicaciones desarrolladas a partir de las que se demuestra que es posible recuperar conversaciones desde una base de datos de LINE:

  • Lector de mensajes: Obtiene las mensajes de la base de datos y los maqueta en una interfaz HTML.
  • Recuperación de mensajes eliminados: Mediante técnicas de data-carving en busca de datos como server_id, quedando al descubierto que sí es posible recuperar mensajes eliminados de la base de datos, tanto de conversaciones normales como secretas.

Comparto a continuación la presentación que utilicé en las II Jornadas de Seguridad y Ciberdefensa de la Universidad de Alcalá, que contiene algunos detalles más del funcionamiento de LINE de los indicados arriba. Seguiré con el proyecto que llevan a cabo las Fuerzas y Cuerpos de Seguridad del Estado, analizando otras aplicaciones de mensajería instantánea y publicando en Security Art Work los avances que haga.