Sie sind auf Seite 1von 42

ltimos avances en Anlisis Forense de sistemas Android

Ismael Valenzuela Principal Architect, McAfee Strategic Security Services (Foundstone)

El equipo de Foundstone
! ! ! ! ! ! Fundada en 1999, parte de McAfee desde 2004 Herramientas gratuitas Whitepapers Presente en BlackHat desde 2003 Open Research Security Blog:
! blog.opensecurityresearch.com

Hacking Exposed Series ! @Foundstone / @FSEMEA 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)

! Resumen de Herramientas (no exhaustivo) ! Demos ! Referencias para investigar ! Por qu forense en Android?

Malware mvil - Acumulativo


El malware mvil se ha convertido en la categora con ms crecimiento a medida que se experimentan nuevos ataques dirigidos principalmente a la plataforma Android.
2,000 1,500 1,000 500 0 Q1 10 Q2 10 Q3 10 Q4 10 Q1 11 Q2 11 Q3 11

Q4 11

Muestras nuevas de malware Android / trimestre


En el ltimo trimestre de 2011 el nmero de muestras de malware de Android recibidas se cuadruplic. La mayora del malware Android est dirigido al envo de mensajes SMS a nmeros premium. El rooting de dispositivos Android se ha convertido cada vez en tarea ms fcil. 500 400 300 200 100 0 Q1 10 Q2 10 Q3 10 Q4 10 Q1 11 Q2 11 Q3 11 Q4 11

Tendencia clave: recuperacin en Botnets


Las infecciones de Botnets repuntaron fuertemente en Diciembre, aunque estn lejos de sus mximos histricos. Brasil, Bielorrusia, Colombia, India, Espaa, Turqua y Estados Unidos experimentaron crecimientos significativos.

Global Botnet Infections per Month


6,000,000 5,000,000 4,000,000 3,000,000 2,000,000 1,000,000 -

Android/Geinimi.A
! Cifrado
! Comandos, peticiones URL a C&C
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

! Escucha en puerto 5432 el handshake, hi,are you online?


! ! ! Responde con yes,Im online! Cambia a puertos 4501 o 6543 Puerta trasera local en puerto 9547

! Comandos de backdoor
! ! ! ! Reenviar SMS a los servidores C&C Instalar software, malware o spyware adicional Reenviar contactos Generacin de trfico

Qu informacin guardan estos dispositivos?


DISPOSITIVOS MDICOS

EMBEBIDOS

SMART CARS

ATM / KIOSCOS ENTRETENIMIENTO

Forensics & Android


! Preservacin, Adquisicin, Anlisis, Reporte ! Principio de Locard ! Evidencia Digital ! Orden de volatilidad ! Investigaciones internas, criminales, litigios civiles, seguridad nacional, anlisis de malware, etc.

Desafos
! Sistema de Ficheros YAFFS2
! Herramientas tradicionales no sirven

! Acceso como ROOT al dispositivo


! Lagunas legales ! Invalida la garanta

! Para cada adquisicin lgica del dispositivo la opcin de debugging debe estar habilitada
! Difcil si el telfono est bloqueado con contrasea

! ! ! !

Difcil obtener duplicados bit a bit Dificultad para utilizar Write Blockers Extraemos el disco duro? Violacin de la cadena de custodia y principio de integridad
! Guardamos volcados de memoria en SD Card?

Soluciones Comerciales vs Open Source


! Comerciales
! ! ! ! ! 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/

Dnde est la evidencia?


! Preferencias compartidas ! XML files ! Almacenamiento interno ! Ficheros 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 fichero ! Multi plataforma ! Ejemplo: $ adb shell $ ls /data/data/com.android.email/databases

Dnde est la evidencia


! Red ! Android proporciona APIs de bajo nivel para interactuar con la red. ! Ejemplo: ! Instala DROPBOX y busca el fichero files/log.txt ! Capturas de trfico ! Wireshark ! O desde el emulador con la opcin -tcpdump ! ! 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

Forensics & Android


! 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 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.

Anlisis de Sistema de Ficheros


! 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

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

Artefactos en Aplicaciones Android


! Contactos
! /data/data/com.android.providers.contacts

! Calendario
! /data/data/com.android.providers.calendar

! Navegador
! /data/data/com.android.providers.browser

! SMS & MMS


! /data/data/com.android.providers.telephony

! Gmail
! /data/data/com.google.android.providers.gmail

! Historial Descargas
! /data/data/com.android.providers.downloads

! Muchos otros: Youtube, Google Maps, Facebook

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, ficheros 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


! Cmo adquirirla?
! Live acquisition ! Adb shell ps ! Adb shell netstat ! Adb shell logcat ! Dalvik Debugging Monitor Server: proceso por proceso $ ddms 1 Selecciona un proceso 2 Selecciona DUMP HPROF file para guardar un volcado del proceso en disco

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/ ! Paper Acquisition and analysis of volatily memory from android devices de Digital Investigation (2012)

Adquisicin y Anlisis de Memoria


! Lime via TCP
$ adb push lime.ko /sdcard/lime.ko $ adb forward tcp:4444 tcp:4444 $ adb shell $ su # insmod /sdcard/lime.ko path=tcp:4444

! En tu estacin forense:
$ nc localhost 4444 > android_ram.dump

Adquisicin y Anlisis de Memoria


! Lime via SD Card
$ adb push lime.ko /sdcard/lime.ko $ adb shell $ su # insmod /sdcard/lime.ko path=/sdcard

! En tu estacin forense:
$ adb pull <fichero_creado_en_sdcard>

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

Anlisis de Aplicaciones
! Enfocado en Malware Analysis ! Dos maneras de analizar malware
! Anlisis Esttico = examinando el cdigo ! Anlisis Dinmico = ejecutando y observando

! Esttico
! ! ! ! Completa visibilidad de todos los posibles caminos de ejecucin Es ms difcil de que te hagas dao a ti mismo Lento, ms complejo Vulnerable a los mtodos de ofuscacin

! 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

! Podemos descompilar los archivos .dex


! Apktool ! Smali/baksmali

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

Anlisis de Malware Esttico


! Resumen de herramientas tiles:
! ! ! ! ! ! ! ! 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

! Ver sms/MessageService y network/ServerStub

Anlisis de Malware Dinmico


! Dos mtodos
! Utilizando un Sandbox tipo Cuckoo para Android ! Por ejemplo: ! Droidbox - http://code.google.com/p/droidbox/ ! Instalando y observando el comportamiento manualmente ! Captura de trazas de Red ! Tcpdump ! Wireshark ! Interceptacin de DNS y servicios HTTP, IRC, FTP, etc ! Recuerda: evita contactar directamente con el atacante ! Dale lo que el malware pida! ! Utiliza Remnux: http://zeltser.com/remnux/ ! Distribucin Linux para Ingeniera Inversa de Malware

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

Quieres aprender ms?


! Imgenes Android gratuitas con propsito educacional. 10 dispositivos (5 imgenes: 3 YASSF2/2 FAT)
http://viaforensics.com/products/tools/sleuth-kit-yaffs2/

! Honeynet Forensics Challenge 9 Mobile Malware


! https://www.honeynet.org/node/751

! DFRWS 2011 ! Imgenes concurso en http://www.dfrws.org/2011/challenge/


index.shtml

! My ERP Got Hacked ! Introduccin al anlisis forense: metodologas y herramientas


http://blog.ismaelvalenzuela.com/papers-presentations/

Ismael Valenzuela blog.ismaelvalenzuela.com Open Security Research blog.opensecurityresearch.com @aboutsecurity @fsemea / @foundstone linkedin.com/in/ivalenzuela ismael_valenzuela@mcafee.com

Das könnte Ihnen auch gefallen