Análisis Forense en Android (Parte I)

Llevo un tiempo queriendo hacer una mini-guía de cómo realizar un análisis forense a un terminal Android, al menos los puntos básicos, y hoy me he decidido a empezar :D (Nunca es tarde, no).

Como publicaba, a groso modo, en una entrada anterior , donde se describía el proceso de análisis forense, esa parte me la voy a saltar. No obstante publicaré con detalle todo el proceso de análisis forense.

Lo primer que hay que tener en cuenta, cuando nos encontramos en un análisis de un terminal Android es aislarlo de la red, vamos, cortarle toda comunicación con cualquier tipo de red. Lo idea sería disponer de una Jaula de Farady, y qué es esto os preguntaréis, pues básicamente un habitáculo que aísla el terminal de campos electromagnéticos. Por qué hacemos esto? Fácil, queremos conservar la información del teléfono tal cual está en el momento que se nos hace entrega. Lo ideal sería ponerlo en "Modo Avión" pero si tiene patrón de bloqueo, pin o cualquier otro patrón de acceso nos sería, prácticamente, imposible. Eso si, desde aquí es donde tenemos que empezar a documentar nuestra intervención.

Volviendo a la Jaula de Faraday, si no podemos poner el terminal en Modo Avión y tampoco disponemos de una Jaula de Faraday (lógico ya que son caras) yo os recomiendo que envolváis el terminal con Papel Albal, si si, como suena y leéis, Papel de Aluminio, nos hará el mismo efecto que una Jaula de Farady :) (qué cosas verdad :D), con esto tendremos el terminal aislado y podemos empezar a trabajar. (Probad a llamaros, dará que el terminal está apagado). NO le conectéis el cable y luego lo envolváis, ya que el mismo cable hará de antena, así que toca esperar hasta que podamos aislarlo completamente o activar el modo avión.


Por regla general, y desde la versión 2.2 de Android, Froyo, el modo Depuración USB viene activado al conectar el terminal, si esto no fuera así o estuviera desactivado poco podremos hacer, se podría intentar otra cosilla pero vamos a dar por echo de que está activado, de esta forma podríamos empezar con el análisis.

Creo que no es necesario mencionar que necesitamos el SDK de Android, pero por si acaso lo comento, es requisito casi indispensable, por no decir que Imprescindible, así que si no lo tenéis ya podéis descargarlo desde aquí.

Hasta ahora ya tenemos el terminal aislado y con el cable conectado, nos queda conectarlo a nuestro equipo, donde tendremos el SDK de Android y ponernos manos a la obra.

Lo primero que haremos es comprobar que tenemos acceso al terminal, os recomiendo familiarizados con la herramienta ADB (Android Debug Bridge)que incluye el propio SDK.

Una vez conectado el terminal, lo primero que haremos es verificar si está disponible para conectarlo por ADB:


Pues ya sabemos que el terminal tiene el modo depuración activado, vamos a ver si está rooteado o no:


Pues parece ser que no, nos tocará rootearlo (lo veremos en el siguiente post), pero de momento hay una serie de datos que podemos obtener sin ser root.

De todos es bien sabido que Android trabaja con un Kernel de Linux, bien, sabemos que el kernel es la capa más baja del sistema operativo y la cual provee acceso al hardware del dispositivo. Así que tenemos la posibilidad de consultarlo, al igual que en Linux, mediante el comando dmseg.  

¿Qué información podemos obtener?
Básicamente lo que podemos obtener, al ejecutar el comando, es un detalle a bajo nivel de la actividad del dispositivo, sellos de tiempo (arranque, apagado, etc.), e incluso tenemos la posibilidad de volcar el resultado a nuestro equipo para realizar un análisis más detallado:

#adb dmesg >dmesg.log

Android tiene varias técnicas de depuración adicionales disponibles. Otra aplicación interesante es el comando LOGCAT  que nos devuelve una lista permanentemente actualizada de los mensajes del sistema. Un análisis rápido de log devuelto nos puede proporcionar:

-          Datos sobre Longitud y Latitud del Teléfono
-          Información Fecha/Hora
-          Detalles de Aplicaciones

El registro es muy detallado. Es interesante conocer que cada mensaje del registro comienza con un indicador, siendo estos:

-          V: verbose
-          D: debug
-          I: information
-          W: warning
-          E: error
-          F: fatal
-          S: silent

Además, con logcat podemos obtener información detallada de la “radio” del dispositivo mediante el comando:

#adb logcat –b radio

Aunque el detalle del comando es bastante detallado, la exploración de esos registros nos puede proporcionar información muy interesante en nuestro análisis (la cual deberemos documentar), tales como:
-          Hora de los eventos
-         AT commands (radio) usados por el módem interno del terminal para establecer comunicaciones
-          Receptor, tamaño, hora y codificación de los mensajes de texto SMS
-          Ip del dispositivo e información de su localización
-          Información del proveedor de la red WiFi

Podemos decir que una de las características principales de logcat es la visualización de eventos:

#adb logcat –b events

Otra de las herramientas interesantes en nuestro análisis, es dumpsys

Dumpsys  nos ofrece información de los servicios, memoria, y otros detalles del sistema que nos puede proporcionar gran información. Alguna de la información interesante que podemos encontrar es:
-          Servicios actualmente en ejecución
-          Volcados de los servicios
-          Etc.
No sólo podemos obtener los programas utilizados, sino que nos puede revelar, en muchas ocasiones, las cuentas del usuario del teléfono (gmail, Exchange, facebook, twitter, …)

Normalmente todos los códigos de tiempo que podemos obtener se encuentra en milisegundos.

El último comando, pero no menos interesante es bugreport el cual combina todos los anteriores:

#adb bugreport > bugreport.log
#wc –l bugreport.log
42575 bugreport.log

Si te ha gustado comparte, no cuesta nada :)
Nos vemos en la siguiente entrada!!

Things Up!!



Publicar un comentario

0 Comentarios