Eko Party 2012

Embed Size (px)

Citation preview

  • Julin Zarate

    Forense en Android

    19 de Septiembre 2012

  • WHOAMI

    Analista de seguridad Articulos relacionados a movilidad @JulianZarate [email protected] 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 Ubicacion

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

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

    SMS&MMS /data/data/com.android.providers.telephony/

    DownloadHistory /data/data/com.android.providers.downloads/

    BrowserData /data/data/com.android.providers.browser/

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

    LocationCache /data/data/com.google.android.location/

    WIFi /data/misc/wifi/wpa_supplicant/

    Use pass browser /data/data/com.android.browser/databases/webview.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 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/

  • 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??