¿Qué esconde tu teléfono? Adquisición forense de dispositivos Android

51
¿Qué esconde tu teléfono? Adquisición forense de dispositivos Android Vte. Javier García Mayén (@neosysforensics)

Transcript of ¿Qué esconde tu teléfono? Adquisición forense de dispositivos Android

Page 1: ¿Qué esconde tu teléfono? Adquisición forense de dispositivos Android

¿Qué esconde tu teléfono? Adquisición forense de dispositivos Android

Vte. Javier García Mayén (@neosysforensics)

Page 2: ¿Qué esconde tu teléfono? Adquisición forense de dispositivos Android

Agenda

• Introducción y objetivos

• Conexión del dispositivo

• Proceso de adquisición

Page 3: ¿Qué esconde tu teléfono? Adquisición forense de dispositivos Android

Agenda

• Introducción y objetivos

• Conexión del dispositivo

• Proceso de adquisición

Page 4: ¿Qué esconde tu teléfono? Adquisición forense de dispositivos Android

Evaluar y valorar la incidencia

Adquisición de evidencias

Análisis de las evidencias

Informe con las conclusiones

Procedimiento de investigación forense

Warren G. Kruse II y Jay G. Heiser, Computer Forensics: Incident Response Essentials

Page 5: ¿Qué esconde tu teléfono? Adquisición forense de dispositivos Android

Procedimiento de investigación forense

Warren G. Kruse II y Jay G. Heiser, Computer Forensics: Incident Response Essentials

Page 6: ¿Qué esconde tu teléfono? Adquisición forense de dispositivos Android

Tipos de adquisición forense de datos: • Adquisición física

Obtención y copiado de los datos bit a bit accediendo para ello directamente al medio físico.

• Adquisición lógica

Obtención y copiado de los datos desde la capa de abstracción proporcionada por el sistema de ficheros.

Page 7: ¿Qué esconde tu teléfono? Adquisición forense de dispositivos Android

Factores que determinan el tipo de adquisición en dispositivos Android

1. Finalidad de la investigación

2. Características del terminal

3. ¿Está habilitada la depuración USB?

4. ¿Somos o no somos root?

5. Versión de Android

Page 8: ¿Qué esconde tu teléfono? Adquisición forense de dispositivos Android

Factores que determinan el tipo de adquisición en dispositivos Android

1. Finalidad de la investigación

2. Características del terminal

3. ¿Está habilitada la depuración USB?

4. ¿Somos o no somos root?

5. Versión de Android

Page 9: ¿Qué esconde tu teléfono? Adquisición forense de dispositivos Android

Factores que determinan el tipo de adquisición en dispositivos Android

1. Finalidad de la investigación

2. Características del terminal

3. ¿Está habilitada la depuración USB?

4. ¿Somos o no somos root?

5. Versión de Android

Page 10: ¿Qué esconde tu teléfono? Adquisición forense de dispositivos Android

Factores que determinan el tipo de adquisición en dispositivos Android

1. Finalidad de la investigación

2. Características del terminal

3. ¿Está habilitada la depuración USB?

4. ¿Somos o no somos root?

5. Versión de Android

Page 11: ¿Qué esconde tu teléfono? Adquisición forense de dispositivos Android

Factores que determinan el tipo de adquisición en dispositivos Android

1. Finalidad de la investigación

2. Características del terminal

3. ¿Está habilitada la depuración USB?

4. ¿Somos o no somos root?

5. Versión de Android

Page 12: ¿Qué esconde tu teléfono? Adquisición forense de dispositivos Android

Imagen propiedad de Google Inc. http://www.android.com/history/

Android Donut Released at september 2009

Version: 1.6

Page 13: ¿Qué esconde tu teléfono? Adquisición forense de dispositivos Android

Android Eclair Released at november 2009

Versions: 2.0, 2.01, 2.1

Imagen propiedad de Google Inc. http://www.android.com/history/

Page 14: ¿Qué esconde tu teléfono? Adquisición forense de dispositivos Android

Android Froyo Released at june 2010

Versions: 2.2, 2.2.1 - 2.2.3

Imagen propiedad de Google Inc. http://www.android.com/history/

Page 15: ¿Qué esconde tu teléfono? Adquisición forense de dispositivos Android

Android Gingerbread Released at november 2010

Versions: 2.3.1 - 2.3.7

Imagen propiedad de Google Inc. http://www.android.com/history/

Page 16: ¿Qué esconde tu teléfono? Adquisición forense de dispositivos Android

Android Honeycomb Released at february 2011

Versions: 3.0, 3.1, 3.2, 3.2.1 - 3.2.6

Imagen propiedad de Google Inc. http://www.android.com/history/

Page 17: ¿Qué esconde tu teléfono? Adquisición forense de dispositivos Android

Android Ice Cream Sandwich Released at october 2011

Versions: 4.0, 4.0.1 - 4.0.4

Imagen propiedad de Google Inc. http://www.android.com/history/

Page 18: ¿Qué esconde tu teléfono? Adquisición forense de dispositivos Android

Android Jelly Bean Released at june 2012

Versions: 4.2, 4.2.1, 4.2.2, 4.3, 4.3.1

Imagen propiedad de Google Inc. http://www.android.com/history/

Page 19: ¿Qué esconde tu teléfono? Adquisición forense de dispositivos Android

Android KitKat Released at october 2013

Versions: 4.4, 4.4.1 - 4.4.4

Imagen propiedad de Google Inc. http://www.android.com/history/

Page 20: ¿Qué esconde tu teléfono? Adquisición forense de dispositivos Android

Android Lollipop Released at november 2014

Version: 5.0

Imagen propiedad de Google Inc. http://www.android.com/history/

Page 21: ¿Qué esconde tu teléfono? Adquisición forense de dispositivos Android
Page 23: ¿Qué esconde tu teléfono? Adquisición forense de dispositivos Android

Agenda

• Introducción y objetivos

• Conexión del dispositivo

• Proceso de adquisición

Page 24: ¿Qué esconde tu teléfono? Adquisición forense de dispositivos Android

Conexión del dispositivo

Page 25: ¿Qué esconde tu teléfono? Adquisición forense de dispositivos Android

Autorizar la conexión USB desde el PC

Restricción

• Capa de seguridad para adb desde Android 4.2.2

• Es necesario “Aceptar” para permitir la conexión

• Impide conectar un terminal bloqueado a un pc

Vulnerabilidad

• Android 4.4.2 Secure USB Debugging Bypass

• Reportada por MWRLabs http://tinyurl.com/ktnqf6r

• Afecta a sistemas Android 4.2.2 a 4.4.2

• Solucionada en Android 4.4.3 y posteriores

¡Desde la llamada de emergencia o la cámara veremos el mensaje y podremos autorizar la conexión!

Page 26: ¿Qué esconde tu teléfono? Adquisición forense de dispositivos Android

Instalar apk para desbloquear terminal

adb install unlockandroid.apk

adb shell "am start -n com.rohit.unlock/.MainActivity"

• Desarrollada por Rohit (@rorot333), http://tinyurl.com/q7sell5

• Solicita el permiso de sistema “android.permission.DISABLE_KEYGUARD”

• Si se termina el proceso vuelve a activarse el bloqueo del terminal

Page 27: ¿Qué esconde tu teléfono? Adquisición forense de dispositivos Android

CVE-2013-6237: Remove device locks

adb shell am start -n

com.android.settings/com.android.settings.ChooseLockGeneric

--ez confirm_credentials false

--ei lockscreen.password_type 0

--activity-clear-task

• Reportada por curesec, http://blog.curesec.com/article/blog/26.html

• Afecta a todas las versiones de Android desde la 4.0 a la 4.3

• Puede lanzarse desde un apk o directamente desde adb

• Error en el código de la clase “com.android.settings.ChooseLockGeneric.class”

Page 28: ¿Qué esconde tu teléfono? Adquisición forense de dispositivos Android

Evasión o cracking del bloqueo (requiere root)

Evasión o cracking del método de bloqueo por patrón

• Eliminamos el fichero con el patrón lanzando una shell de root con adb:

adb shell “rm /data/system/gesture.key”

• Descargamos el fichero con el patrón y lo crackeamos con Android Pattern Lock Cracker, https://github.com/sch3m4/androidpatternlock:

adb pull /data/system/gesture.key gesture.key

python crack.pattern.py gesture.key

...

[+] Gesture:

----- ----- -----

| 1 | | 2 | | |

----- ----- -----

----- ----- -----

| 4 | | 3 | | |

----- ----- -----

----- ----- -----

| 5 | | 6 | | 7 |

----- ----- -----

Page 30: ¿Qué esconde tu teléfono? Adquisición forense de dispositivos Android

Smudge attack

• Smudge Attacks on Smartphone Touch Screens http://tinyurl.com/oeorhqm

• Publicado por un grupo de investigadores de la

Universidad de Pensilvania • Permite evadir el método de bloqueo de

pantalla mediante patrón • Se toman fotografías desde distintos ángulos

modificando las propiedades de luz y color

Foto obtenida de Gizmodo http://tinyurl.com/259whg9

Page 31: ¿Qué esconde tu teléfono? Adquisición forense de dispositivos Android

Instalar apk desde el Play Store

Screen Lock Bypass Pro http://tinyurl.com/7hj7gnp

• Desarrollada por Thomas Cannon

• Tiene un coste de 3,20€

• Necesario conocer user y pass de Gmail

• Para activarla hay que conectar el cargador

Page 32: ¿Qué esconde tu teléfono? Adquisición forense de dispositivos Android

Multiplexed Wired Attack

http://greatscottgadgets.com/infiltrate2013/

• Presentado en Infiltrate 2013 por Michael Ossmann y Kyle Osborn

• Ataque basado en el desarrollo de un conector MicroUSB 2.0 especial

• Resultados variables en función del terminal y de la versión de software

• Galaxy Nexus con Cyanogenmod: acceso a interfaz de debug desde la que es posible lanzar una consola y habilitar adb

• Samsung Galaxy SIII con Cyanogenmod: acceso a interfaz de debug desde la que es posible lanzar una consola de root

Page 33: ¿Qué esconde tu teléfono? Adquisición forense de dispositivos Android

Agenda

• Introducción y objetivos

• Conexión del dispositivo

• Proceso de adquisición

Page 34: ¿Qué esconde tu teléfono? Adquisición forense de dispositivos Android

Adquisición lógica: AFLogical™ OSE

Características

• Herramienta desarrollada por viaForensics • Obtención de datos vía Content Providers • Los datos se vuelcan en ficheros de tipo csv

Restricciones

• Requiere activar la depuración USB • Datos obtenidos muy limitados • Genera el volcado en la sdcard

Ventajas

• No requiere ningún tipo de privilegio especial • Puede instalarse y ejecutarse mediante adb

(com.viaforensic.android.ExtractAllData)

AFLogical™, http://tinyurl.com/q8o9lfj

Howto (Santoku), http://tinyurl.com/of27flo

Page 35: ¿Qué esconde tu teléfono? Adquisición forense de dispositivos Android

Adquisición lógica: AFLogical™ OSE

adb devices

adb install AFLogical-OSE_1.5.2.apk

adb shell "am start com.viaforensics.android.aflogical_ose/com.viaforensics.

android.ExtractAllData"

adb pull /sdcard/forensics aflogicalose

Page 36: ¿Qué esconde tu teléfono? Adquisición forense de dispositivos Android

Adquisición lógica: adb backup

adb backup -apk -shared -all -system -f file.bak

Ventajas

• No requiere privilegios de root

• Formato de fichero resultante conocido

• Acceso a directorios internos y “seguros”:

/system/app/*.apk

/data/app/*.apk

/data/data/*

Restricciones

• Requiere activar la depuración USB

• Android ≥ 4.0 (Ice Cream Sandwich)

• El terminal tiene que estar desbloqueado*

Unpacking Android backups, http://tinyurl.com/ltcz7le

Intecure Internal Storage in Android, http://tinyurl.com/kogot63

Page 37: ¿Qué esconde tu teléfono? Adquisición forense de dispositivos Android

Adquisición lógica: adb backup

Problema

• Si el terminal está bloqueado no podremos iniciar el proceso

Solución

• Simular la pulsación de la tecla capturando antes los eventos correspondientes:

adb shell sendevent /dev/input/event1 3 57 598

adb shell sendevent /dev/input/event1 3 48 14

adb shell sendevent /dev/input/event1 3 58 86

adb shell sendevent /dev/input/event1 3 53 537

adb shell sendevent /dev/input/event1 3 54 1127

adb shell sendevent /dev/input/event1 0 0 0

adb shell sendevent /dev/input/event1 3 58 72

adb shell sendevent /dev/input/event1 3 54 1130

adb shell sendevent /dev/input/event1 0 0 0

adb shell sendevent /dev/input/event1 3 57 4294967295

adb shell sendevent /dev/input/event1 0 0 0

Documentation for adb shell getevent/sendevent, http://tinyurl.com/p42cy2c

Page 38: ¿Qué esconde tu teléfono? Adquisición forense de dispositivos Android

Adquisición lógica: adb pull

adb pull /device_directory /workstation_directory

Ventajas:

• Técnica muy simple que obtendrá el contenido de forma recursiva

• Directorio local conserva la estructura del directorio adquirido

Restricciones:

• Los datos obtenidos dependen de los privilegios de adb (shell user por defecto)

• El comando puede fallar en mitad del proceso, por lo que es mejor dividirlo en varios

Page 39: ¿Qué esconde tu teléfono? Adquisición forense de dispositivos Android

Demo 1

Adquisición lógica

Page 40: ¿Qué esconde tu teléfono? Adquisición forense de dispositivos Android

Métodos hardware de adquisición física

• Extracción de la NAND (chip-off)

• Técnica destructiva, el móvil queda inservible

• Se retira el chip de la PCB aplicando calor a las soldaduras

• El chip puede dañarse durante el proceso

• Una vez retirado se extrae su contenido

• Conexión mediante la interfaz JTAG

• Interfaz para testear la PCB

• Variaciones entre los distintos fabricantes

• No todos los fabricantes publican sus especificaciones

Page 41: ¿Qué esconde tu teléfono? Adquisición forense de dispositivos Android

Método software de adquisición física

• Es imprescindible contar con acceso adb al terminal

• Pasos genéricos para el proceso de adquisición:

1. Obtener privilegios de root

2. Identificar las particiones a clonar

3. Copiar las herramientas en el terminal

4. Lanzar el proceso de clonado

5. Eliminar los restos del proceso

Page 42: ¿Qué esconde tu teléfono? Adquisición forense de dispositivos Android

Adquisición física: obtener privilegios de root

• Si el dispositivo no está rooteado utilizaremos un exploit para rootearlo de forma temporal

• El exploit dependerá del terminal (marca y modelo), versión de Android, versión del kernel, etc

• Algunas herramientas/exploits para obtener root temporal:

• SuperOneClick: incluye zergrush y psneuter

• CVE-2012-0056: mempodroid.c

• CVE-2012-6422: exynox-abuse.c

• CVE-2013-4254: arm_perf_exploit.c

• CVE-2013-6282: ptrace_test.c, 31574.c (exploit-db)

• CVE-2014-3153: cube-towel.c, getroot.c, newroot.c

Page 43: ¿Qué esconde tu teléfono? Adquisición forense de dispositivos Android

$ adb shell "ls -l /dev/block/platform/omap/omap_hsmmc.0/by-name"

ls -l /dev/block/platform/omap/omap_hsmmc.0/by-name

lrwxrwxrwx root root 2014-11-14 13:37 boot -> /dev/block/mmcblk0p7

lrwxrwxrwx root root 2014-11-14 13:37 cache -> /dev/block/mmcblk0p11

lrwxrwxrwx root root 2014-11-14 13:37 dgs -> /dev/block/mmcblk0p6

lrwxrwxrwx root root 2014-11-14 13:37 efs -> /dev/block/mmcblk0p3

lrwxrwxrwx root root 2014-11-14 13:37 metadata -> /dev/block/mmcblk0p13

lrwxrwxrwx root root 2014-11-14 13:37 misc -> /dev/block/mmcblk0p5

lrwxrwxrwx root root 2014-11-14 13:37 param -> /dev/block/mmcblk0p4

lrwxrwxrwx root root 2014-11-14 13:37 radio -> /dev/block/mmcblk0p9

lrwxrwxrwx root root 2014-11-14 13:37 recovery -> /dev/block/mmcblk0p8

lrwxrwxrwx root root 2014-11-14 13:37 sbl -> /dev/block/mmcblk0p2

lrwxrwxrwx root root 2014-11-14 13:37 system -> /dev/block/mmcblk0p10

lrwxrwxrwx root root 2014-11-14 13:37 userdata -> /dev/block/mmcblk0p12

lrwxrwxrwx root root 2014-11-14 13:37 xloader -> /dev/block/mmcblk0p1

Adquisición física: identificar las particiones

Galaxy Nexus con sistema de ficheros EXT4 e interfaz eMMC*:

Particiones más relevantes: cache, system y userdata

*Managing flash storage with Linux, http://free-electrons.com/blog/managing-flash-storage-with-linux/

Page 44: ¿Qué esconde tu teléfono? Adquisición forense de dispositivos Android

Adquisición física: copia de herramientas

Utilizaremos BusyBox, un ejecutable que integra muchas utilidades de UNIX (ls, df, dd, nc, etc):

NOTA: si el sistema de ficheros es YAFFS2 subiremos nanddump, en las mtd-utils, para el proceso de clonado

$ adb shell "mkdir /dev/tools"

$ adb push busybox-armv4l /dev/tools

$ adb shell "ls -l /dev/tools"

-rw-rw-rw- root root 1072032 2013-07-09 04:02 busybox-armv4l

$ adb shell "chmod 755 /dev/tools/busybox-armv4l“

$ adb shell "ls -l /dev/tools"

-rwxr-xr-x root root 1072032 2013-07-09 04:02 busybox-armv4l

Page 45: ¿Qué esconde tu teléfono? Adquisición forense de dispositivos Android

NOTA: si utilizamos la sdcard como destino el clonado es más rápido

Adquisición física: proceso de clonado

Creamos un puerto tcp a la escucha para conectar con el terminal:

Ejecutaremos el clonado bit a bit mediante dd redirigiendo la salida al puerto tcp utilizando nc:

$ adb forward tcp:5555 tcp:5555

$ adb shell "/dev/tools/busybox-armv4l dd if=/dev/block/mmcblk0p12 |

/dev/tools/busybox-armv4l nc -l -p 5555"

En otra consola nos conectamos al puerto tcp y redirigimos los datos a un fichero; mediante pv mostramos el progreso:

$ nc 127.0.0.1 5555 | pv -i 0.5 > userdata.img

Page 46: ¿Qué esconde tu teléfono? Adquisición forense de dispositivos Android

NOTA: si hemos utilizado la sdcard del terminal eliminamos la imagen o imágenes; si hemos insertado una sdcard para el volcado apagamos el terminal y la retiramos

Adquisición física: limpiar los restos

Una vez terminado el proceso eliminamos el binario de busybox:

Por último, si hemos obtenido root temporal eliminamos el fichero del exploit y demás restos asociados y reiniciamos el terminal

$ adb shell "rm -Rf /dev/tools"

Page 47: ¿Qué esconde tu teléfono? Adquisición forense de dispositivos Android

Método software de adquisición física: recovery

• Proceso ejecutado mediante un recovery personalizado para el terminal

• Secuencia simplificada de pasos a seguir para completar el proceso:

1. Flashear bootloader con recovery personalizado

2. Reiniciar el terminal provocando el arranque del recovery

3. Lanzar el proceso de clonado

4. Restaurar el bootloader original

• Referencias:

Towards a general collection methodology for Android devices http://dfrws.org/2011/proceedings/07-339.pdf

A study of user data integrity during acquisition of Android devices http://dfrws.org/2013/proceedings/DFRWS2013-3.pdf

Page 48: ¿Qué esconde tu teléfono? Adquisición forense de dispositivos Android

Demo 2: Adquisición física

Demo

Page 49: ¿Qué esconde tu teléfono? Adquisición forense de dispositivos Android

Conclusión

El método de adquisición depende de:

1. El tipo de investigación

2. Las limitaciones técnicas

Page 50: ¿Qué esconde tu teléfono? Adquisición forense de dispositivos Android

¿Preguntas?

Photo credit: WingedWolf (creative commons)

https://www.flickr.com/photos/wingedwolf/

Page 51: ¿Qué esconde tu teléfono? Adquisición forense de dispositivos Android

Bibliografía