Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Forense Android ISISAndroid
Forense Android ISISAndroid
de sistemas Android
Ismael Valenzuela
Principal Architect, McAfee Strategic Security Services (Foundstone)
El equipo de Foundstone
blog.opensecurityresearch.com
Personal
blog.ismaelvalenzuela.com
@aboutsecurity
CISSP, CISM, GREM, GCFA, GCUX
12 aos en Seguridad IT
De qu hablaremos hoy
Por qu Forense en Android
Tcnicas forenses para:
Adquisicin de evidencia
Anlisis de sistema de ficheros
Anlisis de memoria RAM
Anlisis de malware (esttico y dinmico)
Q3 10 Q4 10
Q1 11 Q2 11
Q3 11
Q4 11
Android/Geinimi.A
Cifrado
Comandos, peticiones URL a C&C
Comandos de backdoor
180.168.68.34
117.135.134.185
google.funimoe.com
www.widifu.com
www.udaore.com
www.frijd.com
www.islpast.com
www.piajesj.com
www.qoewsl.com
www.weolir.com
www.uisoa.com
www.riusdu.com
www.aiucr.com
EMBEBIDOS
SMART CARS
ATM / KIOSCOS
ENTRETENIMIENTO
Desafos
Sistema de Ficheros YAFFS2
Herramientas tradicionales no sirven
Para cada adquisicin lgica del dispositivo la opcin de debugging debe estar
habilitada
Difcil si el telfono est bloqueado con contrasea
Cellebrite
Encase
Oxygen
ViaForensics
etc..
Open Source
Decas algo de que el Kernel estaba
basado en Linux?
Bien documentado
Extensa comunidad
Aqu va la imagen de la arquitectura de
Android que tantas veces has visto
ya
A Continuacin
Recoleccin de Evidencia
Anlisis de Evidencia
Preparando el entorno
Software Development Kit
Herramienta de desarrollo
Incluye libreras de software, APIs, documentacin y
un emulador!
Soporta Linux, Windows y OSX
Imprescindible para anlisis forense!
Android Debug Bridge Interfaz para acceso al
dispositivo
Install APPS, APK Downloader con Google Chrome
adb install <aplicacion.apk>
Dnde consigo muestras?
http://contagioexchange.blogspot.com.es/
http://malc0de.com/database/
El Kernel de Linux en Android proporciona multitud de informacin a travs de logs, debuggers, etc:
$ adb shell dmesg
$ adb shell logcat
$ adb shell logcat -b events
$ adb shell dumpsys
$ adb shell dumpstate
$ adb shell bugreport
Bugreport: combina logcat, dupmsys, dumpstate
Miles de lneas
El anlisis manual es prcticamente imposible
Particularidades de Android
Memoria flash NAND
Telfonos, discos USB y otros dispositivos porttiles
No removibles!
Caractersticas muy particulares (op. escritura y borrado
limitadas)
A diferencia de Apple, fabricantes no estn limitados a un
tipo de memoria NAND especfico.
Para ello Android proporciona Flash Translation Layer
(FTL)
Accesible como un dispositivo de bloques a desarrolladores
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)
$ adb shell
$ mount
mtdblock emula
dispositivos de
bloque
$ ls /dev/mtd*
$ cat /proc/mtd
YAFFS2
Primer sistema de ficheros 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 forense:
- Pocas herramientas que entiendan este sistema de ficheros
- Utiliza un sistema de recoleccin de basura que permite la recuperacin de ficheros borrados
con relativa facilidad
- Esta posibilidad decrece con el tiempo incluso si no se est usando el dispositivo
-
http://www1.informatik.uni-erlangen.de/filepool/thesis/diplomarbeit-2011-zimmermann.pdf
Adquisicin
Tres maneras bsicas
Backup
Lgica
Fsica
Espacio asignado vs No asignado
Utiliza 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)
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 necesitas ROOT
Conecta con ADB y extrae los ficheros que quieres adquirir:
$ adb pull <fichero_a_extraer>
Algunos APK estn cifrados en la SD Card y solo pueden ser adquiridas conectadas
al dispositivo
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
ficheros repartidos por la imagen.
Disco Interno
YAFFS2
Cache.img
userdata.img
userdata-qemu.img
Examinar:
Sistema de Ficheros
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
Calendario
/data/data/com.android.providers.calendar
Navegador
/data/data/com.android.providers.browser
Gmail
/data/data/com.google.android.providers.gmail
Historial Descargas
/data/data/com.android.providers.downloads
En tu estacin forense:
$ nc localhost 4444 > android_ram.dump
En tu estacin forense:
$ adb pull <fichero_creado_en_sdcard>
Anlisis de Aplicaciones
Enfocado en Malware Analysis
Dos maneras de analizar malware
Anlisis Esttico = examinando el cdigo
Anlisis Dinmico = ejecutando y observando
Esttico
Dinmico
Basado en observacin = ms sencillo
Deteccin de emulacin?
No todos queremos contactar con los atacantes
Ficheros APK
No es ms que un fichero ZIP: incluye cdigo y recursos de app.
Lleno de cosas que no son siempre interesantes
META-INF/
Certificados
Fichero manifest lleno de SHA-1 hashes
Assets/
Configuraciones de aplicacin, etc
Manifest/
Fichero XML. Indica los permisos requeridos por la aplicacin.
Realmente un fichero Dbase IV que contiene XML y algn que otro lenguaje.
Afortunadamente tenemos http://code.google.com/android-apktool/
Res/
Otros recursos, principalmente imgenes
Uso de Permisos
Todas las aplicaciones Android deben declarar los permisos que
quieren tener (buena intencin!)
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.
Cdigo de Aplicaciones
Las aplicaciones de Android estn basadas en Java
As que el cdigo debe estar en bytecode, verdad?
mmm no! Est en un fichero ejecutable Dalvik
Ejecutable Dalvik, fichero .dex
Formato diseado para ejecutarse en la mquina virtual que corre en el corazn
de Android
El cdigo bytecode de Java se transforma en Dalvik bytecode antes de la
instalacin
Cdigo de Aplicaciones
El cdigo resultante se parece mucho a ensamblador
Aunque tampoco exactamente.
Puesto que originalmente era Java, por qu no volvemos atrs?
Dex2jar
http://code.google.com/p/dex2jar
Herramienta simple de lnea de comandos, multi-plataforma
Una vez en formato JAR, utiliza tu descompilador de Java favorito
JDGUI: http://java.decompiler.free.fr/?q=jdgui
Smali/Baksmali
APK Tool
Dex2Jar
JD-GUI
Androguard
Understand
IDA (solo para valientes!)
Nueva
APK Inspector, nueva herramienta para anlisis esttico
Ejemplo
HippoSMS
Descargable de servidores Chinos en 2011
Puedes encontrarlo en contagiodump
Comenzamos por descomprimir la applicacin
# unzip hippoSMS.apk
Usamos baksmali para descompilar classes.dex y generar cdigo ms legible en ficheros .smali
# java jar baksmali-1.3.2.jar classes.dex o output
Tambin podemos usar dex2jar y JD-GUI para analizar el fichero .jar resultante
# dex2jar.sh classes.dex
Otras Iniciativas
Entornos virtualizados pre-configurados
ARE
ARE Toolkit (VirtualBox)
http://redmine.honeynet.org/projects/are/wiki
OSAF (Vmware)
Open Source Android Forensics
www.osaf-community.org
Referencias
Android Mind Reading: Memory Acquisition and Analysis with DMD
and Volatility, por Joe Sylve
Analyzing Mobile Malware, labs.snort.org
Android Forensics: Investigation, Analysis and Mobile Security for
Google Android, por Andrew Hoog
DFRWS 2011
Imgenes concurso en http://www.dfrws.org/2011/challenge/
index.shtml
Ismael Valenzuela
blog.ismaelvalenzuela.com
Open Security Research
blog.opensecurityresearch.com
@aboutsecurity
@fsemea / @foundstone
linkedin.com/in/ivalenzuela
ismael_valenzuela@mcafee.com