Beruflich Dokumente
Kultur Dokumente
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?
Q4 11
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
! Comandos de backdoor
! ! ! ! Reenviar SMS a los servidores C&C Instalar software, malware o spyware adicional Reenviar contactos Generacin de trfico
EMBEBIDOS
SMART CARS
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
! ! ! !
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?
! 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/
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:
! ! ! ! ! /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
! 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
! ! ! ! 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
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
! 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
Ismael Valenzuela blog.ismaelvalenzuela.com Open Security Research blog.opensecurityresearch.com @aboutsecurity @fsemea / @foundstone linkedin.com/in/ivalenzuela ismael_valenzuela@mcafee.com