Vous êtes sur la page 1sur 44

Forense en Android

19 de Septiembre 2012

Julin Zarate

WHOAMI
Analista de seguridad

Articulos relacionados a movilidad


@JulianZarate Julian.m.zarate@gmail.com

http://computacionmovil-ar.blogspot.com.ar/

Porque Forense??
Por que mediante el analisis forense podemos ver diversos aspectos del sistema operativo, como file system, almacenamiento y seguridad.
Y tambien podemos ver alguna que otra vulnerabilidad

Forense
El objetivo del anlisis forense ser obtener evidencias que puedan certificar lo ocurrido. Principio de Locard Siempre que dos objetos entran en

contacto transfieren parte del material que incorporan al otro objeto.


Aspectos tiles de una investigacin:

El mtodo utilizado por el atacante para introducirse en el sistema. Las actividades ilcitas realizadas por el intruso en el sistema. El alcance y las implicaciones de dichas actividades. Las puertas traseras(backdoors) instaladas por el intruso.

Forensebuenas practicas
El conocimiento de la arquitectura de lo que se est investigando es la primera base del anlisis forense. Qu evidencia se necesita capturar? Puntos clave de la recogida de evidencias: Estudio preliminar de la situacin

Qu hacer con los equipos afectados


Utilizacin de herramientas para el anlisis Tipo de copia del sistema

ForenseEtapas

Porque Android??
Es el sistema operativo mas vendido Esta presente en casi todas las marcas. Es Open Source y... Es Linux 500 millones de Devices activados 1.3 millones por dia Los Carriers son responsables de actualizaciones (es muy lento)

Porque Android??

Porque Android??

Almacenamiento en Android
Memoria flash NAND Mas econmicas que las NOR No removibles! NOR escritura y borrado mas rpido - NOR acceso secuencial A diferencia de Apple, fabricantes no estn limitados a un tipo de memoria NAND especfico. Para ello Android proporciona Flash Translation Layer (FTL) Implementado en software mediante el subsistema Linux Memory Technology Devices (MTD) MTD es Open Source Nuevos sistemas Android (Samsung) estn migrando a eMMC donde el controlador FTL est integrado en la memoria (similar a discos USB y SSD) - Cada particin basada en MTD se puede exportar de forma unitaria

Sistema de Archivos
MTD divide la memoria en bloques de 132 KB con 64 bytes Out of Band (OOB) por cada trozo de 2 KB OOB guarda YAFFS2 etiquetas, metadatos, bloques errneos, etc. (132 KB = 64 trozos de 2 KB + 64 trozos de 64 bytes = 128 KB + 4096 bytes)

YAFFS2
Primer sistema de archivo diseado especficamente para memorias Flash NAND - Open Source - Robusto - Reduce la sobrecarga de la RAM y los tiempos de inicio Lo que le interesa saber al analista: - Pocas herramientas que entiendan este sistema de archivos - Utiliza un sistema de garbage collector que permite la recuperacin de archivos borrados con relativa facilidad - Esta posibilidad baja con el tiempo incluso si no se est usando el dispositivo

OS Android
Preferencias compartidas XML files Almacenamiento interno - YAFFS /EXT2 como sistema de archivos Archivos creados por el dispositivo, no accesibles por ninguna aplicacin ni por el usuario (sino es root) Almacenamiento externo Generalmente formateado en FAT32 (sin seguridad) $ adb shell $ mount $ ls /mnt/sdcard SQLite Permite almacenar una base de datos entera en un solo archivo Multi plataforma

Adquisicin
Tres maneras bsicas Backup Lgica Fsica

Espacio asignado vs No asignado Utilizar un Bloqueador de Escritura Pueden dar fallos, a veces no exponen todos los dispositivos conectados Acceso directo a la evidencia?
El investigador debe estar suficientemente formado Debe proporcionar razones vlidas para seguir ese proceso Detallar el impacto y la consecuencia de sus acciones Mantener la trazabilidad (los pasos deben ser reproducibles)

Herramientas Comerciales
UFED (Universal Forensic Extraction Device)
Es la mas completa y universal del mercado, su mayor limitacin es su precio.

Herramientas Comerciales

Herramientas Comerciales

Herramientas Comerciales

Adquisicin Lgica
Habitualmente suficiente, aunque tiene sus limitaciones (solo se extrae espacio asignado). Tres mtodos:

Backup
Content Providers Informacin compartida entre aplicaciones. AFLogical Open Source Edition (viaExtract comercial) http://code.google.com/p/android-forensics

A partir de aqu se necesita ROOT

Adquisicin Lgica
A travs de ADB (Android Debug Bridge) Es una herramienta que viene con el Android SDK, y permite controlar la interfaz con el dispositivo Android, se instala en la carpeta \android-sdk\platform-tools

Proporciona shell interactiva con el dispositivo


Muchos comandos especficos Copiar Archivos Procesos Disposivitos Etc

Adquisicin Fsica
Adquisicin bit a bit, rplica exacta, recupera espacio no asignado - Android viene con DD -Va a darte la mayor parte de la memoria interna (incluyendo unallocated space, pero no puede leer los trozos OOB de las particiones YAFFS2 MTD) $ dd if=/dev/mtd/mtd2 of=/sdcard/cache.img bs=2048 - Imagen NAND completa - Incluye OOB - Utilidad nandump - Extrae todo los datos de YAFFS2 - Muchas posibilidades de recuperar datos borrados - Si se ha producido recoleccin de basura se pueden encontrar fragmentos de archivos repartidos por la imagen.

File System
SDCard FAT32 Sdcard.img Disco Interno YAFFS2 Cache.img userdata.img userdata-qemu.img Examinar: /proc (utilizar cat) /data or /data/data and /data/system /cache /mnt/sdcard /mnt/emmc

File System
Tcnicas Tradicionales File Carving (scalpel) Magic files (cabeceras conocidas) Usar firmas especficas para Android Strings (--all radix) | egrep Hex Editor Sqllite (o sqlbrowser si prefieres GUI) Timelines (en desarrollo) The Sleuth Kit (mactime) Log2timeline from Kristinn Gudjonsson

Informacin Importante
Datos Contactos Calendario SMS&MMS DownloadHistory BrowserData Gmail LocationCache WIFi Use pass browser
Ubicacion

/data/data/com.android.providers.contacts/ /data/data/com.android.providers.calendar/

/data/data/com.android.providers.telephony/
/data/data/com.android.providers.downloads/ /data/data/com.android.providers.browser/ /data/data/com.google.android.providers.gmail/ /data/data/com.google.android.location/ /data/misc/wifi/wpa_supplicant/ /data/data/com.android.browser/databases/web view.db

Adquisicin y Anlisis de Memoria


Hasta ahora muy poca investigacin Poca informacin disponible Debera ser el primer elemento a adquirir (orden de volatilidad) Informacin estructurada y no estructurada Strings: datos de aplicaciones, fragmentos de comunicaciones, claves de cifrado, etc. Estructuras de kernel: procesos, archivos abiertos, sockets, etc. Mtodos para adquirir memoria fsica en Linux no funcionan /dev/fmem: dispositivo que soporta lectura de RAM para herramientas como DD Funcin page_is_ram no existe en arquitectura ARM. DD no tendra forma de saber si una pgina es RAM o memoria de un dispositivo hardware (ver /proc/iomem) DD en Android tiene un problema de integer overflow que lo hace inutilizable en la mayora de los dispositivos Android.

Adquisicin y Anlisis de Memoria


Hay varias formas de extraccin
El ms cmodo es usar la funcionalidad pull de ADB Extrae toda la carpeta de datos al equipo Los datos pueden guardarse en varias extensiones segn como se vayan a leer luego. Las ms usadas son img y dd Disponiendo de un SSH o un servidor FTP se pueden recuperar los archivos a travs de esos protocolos

Adquisicin y Anlisis de Memoria


Extraccin de datos de la imagen
Foremost Se pasa el archivo a procesar y se genera una carpeta llamada output con los archivos encontrados y otro archivo de texto llamado audit.txt que es el resumen del proceso. Tiene varios parmetros opcionales.

Adquisicin y Anlisis de Memoria


Extraccin con Foremost

Adquisicin y Anlisis de Memoria


Cmo adquirirla? Live acquisition Adb shell Adb shell Adb shell Dalvik Debugging $ ddms 1 Selecciona un proceso 2 Selecciona DUMP HPROF file para guardar un volcado del proceso en disco

ps netstat logcat Monitor Server: proceso por proceso

Adquisicin y Anlisis de Memoria


DMD ahora Lime Forensics (Linux Memory Extractor) Primera herramienta que permite captura completa de RAM

Loadable Kernel Module


Minimiza los cambios entre espacio usuario/kernel = ++ forense

Vuelca la memoria directamente a la tarjeta SD o a la red a travs de adb


Open Source, disponible desde el 5 de Abril en http://code.google.com/p/lime-forensics/

Adquisicin y Anlisis de Memoria


Analisis Strings, grep y tu editor de Hex. Volatility, anlisis de memoria para plataformas Windows (Linux en beta) Volatilitux Equivalente a Volatility para Linux y Android Necesitas un archivo de perfil para Android Limitaciones actuales en este rea Carga de mdulos requiere permisos de Root Compilacin especfica para cada dispositivo Requiere la obtencin y preparacin del cdigo fuente del Kernel del dispositivo Requiere compilacin cruzada (cross-compiling) del mdulo de Kernel

Pin, password y patron


Patron
/data/system/gesture.key. /data/data/com.android.providers.settings/databases/settings.db lock_pattern_autolock'lockscreen.lockedoutpermanently

SHA1 - Rainbow table

Pin, password y patron


Pass: Sal /data/data/com.android.providers.settings/databases/ settings.db SELECT * FROM secure WHERE name = 'lockscreen.password_salt PIN / password /data/system/password.key union de password en SHA1 concatenado con la sal en MD5

Analisis de Malware
Dos maneras de analisis: Esttico Requiere conocimientos de programacin Se pueden manejar los daos Lento, ms complejo Vulnerable a los mtodos de ofuscacin Dinmico Basado en observacin = ms sencillo Ambiente bien armados Contacto directo con el atacante

Analisis de Malware

Analisis de Malware
Siempre es necesario poder analizar el codigo fuente de las aplicaciones para observarlo que realmente hacen. Requisitos Eclipse DEX2JAR JD-GUI - APK a analizar

Analisis de Malware
Estructura de un archivo APK Es un archivo zip. META-INF/ Certificados manifest lleno de SHA-1 hashes Assets/ Configuraciones de aplicacin, etc Manifest/ Archivo XML. Indica los permisos requeridos por la aplicacin. Realmente un archivo Dbase IV que contiene XML y algn que otro lenguaje. tenemos http://code.google.com/android-apktool/ Res/ Otros recursos, principalmente imgenes

Analisis de Malware
Modelo de seguridad de Android Separacin de Privilegios - Cada aplicacin tiene su propio uid: gid - Distintos componentes del sistema tienen su propio uid: gid Permisos de Aplicaciones El manifiesto se basa en Lista Blanca Tiene que ser aceptado por el usuario Estadstica de permisos en 1.400 aplicaciones legtimas vs 760 maliciosas. Nmero medio de peticiones 7 para las maliciosas (algunas llegaron a pedir 39!!) 3 para las legtimas No es un indicador definitivo pero es algo a tener en cuenta.

Analisis de Malware

Analisis de Malware
Vamos a ver analizaremos a un viejo conocido Android.Fake.Player

Analisis de Malware
1)File > New > Java Proyect 2) Project > Properties > Java Build Path. Libraries. Dex2jar 3) Agregar .APK

Analisis de Malware
4) Run As > Run Configurations y hacemos doble click en Java application

Analisis de Malware
5) Arguments colocamos el nombre de nuestro fichero APK con la extensin

6) Apply y Run.

Dudas??
Quejas ??

Amenazas??

Vous aimerez peut-être aussi