Una de las consultas y trabajos más frecuentes a los que se enfrenta un perito informático es al análisis forense de un teléfono móvil, con objeto de detectar si dicho terminal ha sido hackeado. Un terminal hackeado podría enviar información al exterior, como mensajes de WhatsApp, fotografías tomadas con el terminal sin el permiso del usuario, audios o vídeos grabados con el micrófono o la cámara de vídeo sin el permiso del usuario, etc. Este tipo de información, lógicamente, es confidencial y el usuario, habitualmente, no desea que dicha información sea enviada hacia el exterior del terminal y, muchos menos, a terceras personas.
El proceso para detectar si un terminal Android ha sido hackeado se divide en dos partes: la adquisición forense del terminal (extracción física) y el análisis forense del mismo, con las herramientas adecuadas. Si no es posible realizar una extracción física al terminal, se debe realizar una extracción lógica de las aplicaciones, aunque dicho procedimiento que no será objeto del presente artículo, para posteriormente ser analizadas una por una.
Adquisición de la evidencia
La adquisición forense del terminal es la extracción de su contenido. Con objeto de poder tener acceso y analizar el contenido completo del terminal, es necesario practicar una extracción física del mismo. En este punto, el perito informático puede valerse de diversas técnicas y herramientas. El laboratorio de este perito informático está equipado con la herramienta Cellebrite UFED Touch 2, la mejor y más utilizada del mundo para realizar extracciones forenses de dispositivos móviles.
Sin embargo, existen ocasiones en las que es imprescindible utilizar técnicas más avanzadas de extracción, como JTAG o “chip-off”.
JTAG
JTAG, acrónimo de Joint Test Action Group, es un estándar avanzado de adquisición forense que implica la conexión a los Test Access Ports (TAPs) del dispositivo y la instrucción al procesador para transferir la información en crudo almacenada en el terminal, a la memoria conectada. JTAG es una técnica muy efectiva para extraer una imagen física de un terminal desde dispositivos cuya memoria no puede ser adquirida con herramientas más comunes.
La utilización de JTAG es pertinente cuando las opciones comerciales de extracción forense no pueden adquirir una imagen física o cuando un dispositivo está dañado lógicamente o “bloqueado”. La mayoría de las ocasiones en las que se utilizan técnicas JTAG, es sobre teléfonos Android que están bloqueados por patrones y no pueden ser accedidos por otros medios.
Los pasos que debe ejecutar un perito informático para efectuar una extracción con técnicas JTAG son los siguientes:
Paso 1: identificar los puertos TAP investigando dispositivos documentados. Cuando se desconocen los puertos TAP, inspeccione la PCB (Placa del Circuito Impreso) del dispositivo, en busca de TAP potenciales, rastreando o sondeando manualmente para identificar los pines del conector apropiados.
Paso 2: el cable de soldadura debe conectarse a los pines del conector o utilizar una plantilla sin soldadura.
Paso 3: conectar los cables a un emulador JTAG apropiado con soporte para el dispositivo cuya extracción va a ejecutarse.
Paso 4: leer la memoria flash después de seleccionar el perfil de dispositivo apropiado o configurar manualmente la configuración correcta de procesador/memoria.
Paso 5: analizar los datos extraídos utilizando herramientas forenses estándar de la industria y utilidades personalizadas.
Existen herramientas capaces de ejecutar extracciones JTAG en algunos dispositivos, como Cellebrite UFED Touch 2.
Chip-off
La recuperación de datos mediante la técnica chip-off es el proceso de extraer el chip de memoria de un teléfono de su placa lógica para leer los datos directamente. Este método es la forma más confiable de recuperar datos porque funciona incluso cuando un teléfono no puede encenderse o está dañado sin posibilidad de reparación. El método de recuperación de datos mediante chip-off siempre tiene éxito si se realiza correctamente y si el chip de memoria está intacto.
La recuperación de datos mediante chip-off funciona para cualquier teléfono Android que originalmente venía con el sistema operativo Android 5.1 o anterior, donde el sistema de archivos del usuario no está encriptado. Esto incluye cualquier Samsung Galaxy S3, S4, S5 y S6, Samsung Note 5 y versiones anteriores, LG G4 y LG V10, Motorola Droid Turbo y Turbo 2, HTC One M8 y muchos otros. Los teléfonos que no son adecuados para el proceso de extracción mediante la técnica chip-off, pero que son adecuados para otras técnicas de recuperación de datos, incluyen todos los iPhone y teléfonos Android más nuevos como el Samsung Galaxy S8, S8 Plus y Samsung Note 8.
Los pasos que debe ejecutar un perito informático para efectuar una extracción mediante técnica chip-off son los siguientes:
- Paso 1: desarmar el teléfono y ubica el chip de memoria.
- Paso 2: precalentar la PCB.
- Paso 3: retirar el chip de memoria con aire caliente.
- Paso 4: limpiar el chip de memoria con un soldador, pasta fundente y alcohol.
- Paso 5: leer el chip de memoria en un lector de socket.
- Paso 6: analizar los datos usando herramientas forenses de software.
Análisis forense del terminal
Una vez el perito informático ha realizado la extracción forense del terminal, es necesario efectuar el análisis forense de dicha extracción. Para ello, es necesario ayudarse de herramientas forenses muy útiles para el perito informático que, en el caso del análisis forense de terminales móviles, pueden ser herramientas como UFED Physical Analyzer (de Cellebrite), o Autopsy (que posee un módulo para el análisis forense de Android), siendo esta última la utilizada en el ejemplo de este artículo (existen otras herramientas, como OsForensics).
Lo primero que se debe realizar es el cálculo de la huella digital de la extracción, utilizando algoritmos hash conocidos como MD5 y SHA-1 (que deben ser combinados, ya que individualmente se ha demostrado que tienen colisiones), o SHA-256. La extracción forense quedará plenamente identificada con su huella digital. Utilizando Autopsy y ejecutando el módulo “Data Source Integrity”, se puede obtener la huella digital de una imagen forense (una fuente de datos), mostrándose a continuación la huella digital de la extracción forense del ejemplo que se estudiará en este artículo.
El objetivo último del análisis forense será identificar y analizar todos los ficheros de tipología APK (que son los susceptibles de ejecutar código malicioso), existentes en la extracción y, por tanto, en el terminal.
A continuación, se deberán ejecutar los módulos “PhotoRec Carver” (para encontrar los ficheros borrados en el espacio vació y desasignado), “Hash Lookup” (para identificar con su huella digital cada uno de los ficheros), “File Type Identification” (que determina la tipología o MIME Type de cada fichero, a través de la cabecera del mismo e independientemente de su extensión), y “Extension Mismatch Detector” (capaz de determinar si la extensión de un fichero no coincide con la cabecera que debería corresponderle).
El módulo “File Type Identification” identificará todos los ficheros con extensión APK (cuya cabecera comienza con la numeración hexadecimal 0x504B0304, que es la cabecera correspondiente a los ficheros de tipología ZIP, categoría superior en la que se hallan incluidos los ficheros de tipología APK), clasificando todos estos ficheros bajo la categoría MIME Type “application/vnd.android.package-archive”, dentro de la sección “Views->File Types->By MIME Type->application->application/vnd.android.package-archive”.
Lógicamente, en la pestaña “File Extension Mismatch”, debe adicionarse una nueva extensión de tipo APK en la categoría “application/zip” de la pestaña “File Extension Mismatch” del menú “Options” de Autopsy (al objeto de que el módulo pueda discriminar entre un fichero con extensión “zip” y un fichero con extensión “apk”, ficheros que comienzan por la misma cabecera 0x504B0304), tal y como se observa a continuación.
Es importante reseñar que, si se posee un fichero de hashes notables con, por ejemplo, un conjunto de hashes conocidos de malware de Android que pueda importarse en Android, el módulo “Hash Lookup” los encontrará en la fuente de datos y los reseñará bajo la sección “Results->Hashed Hits” del árbol de Autopsy.
Una vez ejecutados los módulos de Android señalados, los ficheros de tipo APK colgarán, tal y como se ha indicado, bajo la sección “Views->File Types->By MIME Types->application->application/vnd.android.package-archive”, donde se observa que existen un total de 635 ficheros encontrados.
Es importante determinar, asimismo, que no existe ningún fichero con MIME Type “application/zip” o “vnd.android.package-archive” y con extensión distinta a ZIP o a APK, que pueda haber pasado desapercibido, es decir, se debe determinar que no existe ningún fichero ejecutable “camuflado” u “oculto”. Para ello, se pueden examinar los resultados que cuelgan de la sección “Results->Extracted Contents->Extension Mismatch Detected”, donde se puede comprobar que sólo existe un fichero con MIME Type “application/zip” (se ha ordenado la tabla por la columna MIME Type), que en este caso corresponde a un fichero de datos comprimido y no a un fichero ejecutable (se trata de un falso positivo).
Tampoco existe ningún fichero con MIME Type “vnd.android.package-archive”, ya que, como se puede observar en la siguiente captura de pantalla, gracias al scroll a la derecha de la imagen, el último fichero del listado tiene MIME Type “text/plain”.
Análisis forense de aplicaciones
En primer lugar, los ficheros de tipología APK deben exportarse a un directorio externo. Para ello, se debe seleccionar el conjunto de los ficheros y pulsar con el botón derecho en el conjunto, para inmediatamente seleccionar la opción “Extract File(s)”, como se observa a continuación.
Una vez seleccionada la carpeta deseada, es necesario comprobar, uno por uno, si los ficheros APK son susceptibles de ser catalogados como “malware”. Para ello, el perito informático puede ayudarse de una plataforma como VirusTotal, que contiene la base de datos más amplia de Internet sobre ficheros “malware”. Esta empresa, que es española, es propiedad de Google.
En Autopsy, existe un módulo que puede ejecutar peticiones contra VirusTotal, enviando todos los archivos a su servidor, para lo cual es necesario poseer una “API Key”, que viene a ser un “token” privado, con el que VirusTotal identifica desde qué cuenta se están realizando las peticiones. La versión gratuita permite sólo unas pocas decenas de peticiones al día, mientras que la versión de pago permite el uso ilimitado de la plataforma.
En cualquier caso, la plataforma VirusTotal puede utilizarse de forma libre y gratuita, subiendo los archivos uno a uno, como puede observarse a continuación.
Se selecciona el primer archivo APK y se carga en el servidor de VirusTotal, con el siguiente resultado.
El sistema calcula el hash del fichero y lo identifica en caso de que ya haya sido previamente cargado (en este caso, la primera vez que se cargó fue hace ocho meses, como se puede comprobar en la parte superior central derecha de la imagen). El resultado para este fichero APK, como puede observarse, es negativo, ya que ningún sistema antivirus y antimalware de los consultados por VirusTotal, reconoce al archivo como de tipo “malware”.
Se debe continuar cargando los ficheros uno a uno, hasta que se encuentre un fichero que sea detectado como “malware”. En este caso, el fichero detectado como “malware” (por un único sistema antivirus), es una APK denominada “SamsungCalendar_SEP85_GreatUX”.
Cuando alguno de los sistemas antivirus consultados por VirusTotal determina que existen posibilidades de que un fichero sea de tipo “malware”, el perito informático debe estudiar más a fondo este fichero, con técnicas como la ingeniería inversa, la descompilación, etc. Es importante reseñar también que muchas de las ocasiones en que VirusTotal detecta un fichero como “malware”, se trata de falsos positivos, como las ocasiones en que detecta ficheros de tipo PUP (Potentially Unwanted Program, Programa Potencialmente No Deseado).
Análisis forense de bases de datos
Finalmente, para determinar si existe un programa de tipo “malware” en el terminal, que se encuentre enviando información al exterior, el perito informático debe analizar las bases de datos encontradas en el terminal. Las bases de datos en un terminal móvil son, en su inmensa mayoría de tipo SQLite y, por tanto, los ficheros tendrán un MIME Type “application/x-sqlite3”, aunque también pueden existir bases de datos con MIME Type “application/octet-stream”, o incluso “text/plain”. En Autopsy, las bases de datos aparecen filtradas por extensión, bajo la sección “Views->File Types->By Extension->Databases”, como se observa a continuación.
Lógicamente, también se deberá comprobar si existen ficheros de bases de datos no catalogados específicamente como tal debido a su extensión, pero con MIME Type “application/x-sqlite3”, bajo la sección “Results->Extracted Contents->Extension Mismatch Detected”. Como se observa, no existe ninguna base de datos no catalogada como tal (se muestra la citada sección, ordenada por el campo MIME Type).
De vuelta a los ficheros de bases de datos catalogados como tal por Autopsy, éstos pueden ser exportados a una localización externa del mismo modo que se exportaron los ficheros de tipo APK (pulsando en el botón derecho sobre el conjunto). Una vez exportados, pueden analizarse con aplicaciones de análisis de bases de datos, como SQLiteStudio o SQLite Forensic Explorer.
Es importante, asimismo, prestar atención a artefactos como el journal de las bases de datos, para determinar la información que ya ha sido eliminada de las tablas.
Por otra parte, para ayudar en el análisis de las bases de datos del terminal, es importante indexar la imagen forense con objeto de realizar búsquedas ciegas de la información que se desea encontrar (por ejemplo, mensajes de WhatsApp que se encuentren en una base de datos diferente a la propia de la aplicación WhatsApp, etc.). En Autopsy, se puede ejecutar el módulo “Keyword Search”, que indexa todas las palabras, direcciones de correo electrónico, teléfonos, direcciones IP, etc., indexando asimismo el archivo al que pertenecen, para que se puedan ejecutar búsquedas de manera rápida, accediendo a los índices en lugar de a la imagen forense. En herramientas como X-Ways y OsForensics se pueden ejecutar opciones similares.
Redacción de peritaje informático
En caso de encontrar un programa espía o de “malware” que se halle enviando información al exterior, es necesario redactar un informe pericial informático. Para ello, será muy importante tratar de determinar hacia dónde se envía la información (número de teléfono móvil, dirección de correo electrónico, etc.). El peritaje informático deberá recoger todo el procedimiento de adquisición forense de la evidencia, cálculo de su huella digital y análisis de las aplicaciones y bases de datos del terminal, señalando la aplicación espía y, si es posible, el destino de la información espiada.
Agradecimiento a Buenaventura Salcedo Santos-Olmo.