malware intelligence ppt-slides

32
Jorge Mieres jamieres@malwareint.com Show me your Kung-Fu Sebastián Guerrero [email protected] http://blog.seguesec.com @0xroot

Upload: sebastian-guerrero-selma

Post on 27-May-2015

3.681 views

Category:

Technology


0 download

DESCRIPTION

Slides de la conferencia sobre android dada en la NCN 2011

TRANSCRIPT

Page 1: Malware intelligence ppt-slides

@jorgemieres Jorge Mieres [email protected]

Show me your

Kung-Fu

Sebastián Guerrero

[email protected] http://blog.seguesec.com

@0xroot

Page 2: Malware intelligence ppt-slides

Contenido

• Introducción

• Análisis Estático

• Análisis Dinámico

• Análisis Forense

• Nickispy

• Protecciones

• Vulnerabilidades

• Conclusión

Page 3: Malware intelligence ppt-slides

Estructura del sistema

Page 4: Malware intelligence ppt-slides

Ficheros APK

• Usado para empacar las aplicaciones

• Todo APK incluye:

• classes.dex

• resources.asc

• /res

• /META-INF

• AndroidManifest.xml

Page 5: Malware intelligence ppt-slides

Formato de ficheros DEX

Page 6: Malware intelligence ppt-slides

Android Manifest

Page 7: Malware intelligence ppt-slides

Ejemplo de código

• java/Fuente (Compiler) – dex/dexdump

• dex/dex2jar (jdgui) – java/jd-gui

• dex/dexdump (basksmali) - smali/basksmali

Page 8: Malware intelligence ppt-slides

Análisis Estático

Page 9: Malware intelligence ppt-slides

Análisis Dinámico

1. Creamos una máquina virtual usando el SDK.

2. Lanzamos el emulador y almacenamos las conexiones en un pcap: • emulator –port n @device-name –tcpdump foo.pcap

3. Instalamos la aplicación • adb install appname.apk

4. Lanzamos pruebas sobre el dispositivo y la aplicación • adb shell monkey –v –p package.app n

5. Leemos los logs • adb shell logcat –d

6. Podemos apoyarnos en Wireshark para leer los logs de conexiones.

Page 10: Malware intelligence ppt-slides

Simular Eventos

• Llamadas de teléfono • gsm call p-n

• gsm accept p-n

• gsm cancel p-n

• SMS • sms send prefix-number text

• Emular velocidad de red

• netspeed gsm n

• netspeed umts n

• Cambiar coordenadas GPS

• geo fix -13… 21…

Page 11: Malware intelligence ppt-slides

Modus Operandi

1. AXMLPrinter2 – Extraemos la información del

AndroidManifest.xml

2. Dex2jar – Convertimos el fichero .dex en un fichero

de clases .jar.

JAD – Transformamos los ficheros .class en ficheros .jad

3. JDgui – Leemos el código almacenado en el fichero

.jar.

4. Understand – Análisis estático del código.

5. Wireshark – Análisis dinámico del código.

Page 12: Malware intelligence ppt-slides

Técnicas antianálisis

• Noob • Nombrar ficheros de clases con el mismo nombre en minúscula/mayúscula.

Esto ocultará los ficheros en sistemas que no distingan entre minúsculas/mayúsculas:

N.class ~ n.class

• Cifrar las conexiones que realiza el malware (DES) dificultando su análisis.

• Rookie

• Introducir técnicas para comprobar si se está ejecutando en un emulador.

• Mejorar la eficiencia del código y ofuscarlo con alguna aplicación como ProGuard.

• Master of Universe

• Modificar el propio bytecode para inutilizar las herramientas de reversing.

Page 13: Malware intelligence ppt-slides

Forensics

• Android está basado en el núcleo de Linux.

• Se usa MTD para interactuar con la memoria flash. • Sigue la nomenclatura /dev/mtd*

• Puntos de montura para /system, /data, /cache están asociados a diferentes mtdblocks.

• Cada dispositiva está asociado a un dispositivo ro (Read Only).

• Es necesario ser usuario root para poder realizar un análisis forense. • Exploits.

• Aplicaciones específicas

• A la hora de traernos los ficheros al disco podemos usar:

• Comando PULL del SDK para descargar/subir ficheros.

• Instalar un servidor SSH en el teléfono como DropBear.

• Instalar un servidor FTP.

• Hacer correlaciones de los diferentes puntos de montaje.

• Tener acceso a los datos y bases de datos.

Page 14: Malware intelligence ppt-slides

Encrip… What da fuck?

Page 15: Malware intelligence ppt-slides

Si pierdes tu teléfono prepárate para…

Page 16: Malware intelligence ppt-slides

NickiSpy

• Alerta de seguridad - 19 julio

• Detectado por Symantec ~ 20apps

• Procedencia – Fujian (China)

• Nombre – com.nicky.lyyws.xmall

• Desarrollado por – 56mo http://www.56mo.com

• Descargar desde – http://user.c5005.com/DownList.aspx

Page 17: Malware intelligence ppt-slides

Estadísticas

• No se distribuyó nunca por el Market.

• Se puede descargar desde la página de la compañía:

• Elegir marca de Smartphone.

• Elegir modelo concreto.

• Acto seguido fue distribuido por varios Markets chinos

• CamangiMarket - camangimarket.com

• GoAPK - goapk.com

MD5 Ratio Fecha

ad4dbe34853f1d58543b0b8db133eb5b 10/44 2011.08.31

a21ae2802a0ee460ca2d17a9102ff7b1 14/44 2011.09.04

15afe9bfa1b3139b5727112aa12b8f70 19/44 2011.08.31

426cedcf268bdf556aa405e0c8e03c16 20/44 2011.08.31

0d2d9504649a97e7afee2caca61e277e 15/44 2011.09.02

0d2d9504649a97e7afee2caca61e277e 15/44 2011.09.02

83a98eabf044826622db7c211764cdf4 13/44 2011.08.23

298446914e6c845fb331bfbfd2176d9d 26 /44 2011.08.23

f6cea3c1c0e9d2cf0ec373f142852399 12/44 2011.08.23

f4514598c47658e513888ae6cb3fd8b1 23 /44 2011.08.14

1cbb2e45356bad1f3ecb103ed76dffdd 9 /44 2011.08.11

a72adce41ea55c239ef04fbda446ceb1 2/44 2011.09.02

edf5d97f1d47bdb3ca9c414f33337a87 7/44 2011.08.12

0e7989aac352df525e5ebb077c786072 9/44 2011.08.11

5664e00084e949b07227459d8bdaf9f3 13/44 2011.08.10

a21ae2802a0ee460ca2d17a9102ff7b1 14/44 2011.09.04

18 muestras ~ 1ª muestra (19.07) ~ Detectadas (11.08-04.09)

Page 18: Malware intelligence ppt-slides

Autor

Page 19: Malware intelligence ppt-slides

Lista de permisos

•android.permission.CALL_PHONE

•android.permission.PROCESS_OUTGOING_CALLS

•android.permission.INTERNET

•android.permission.ACCESS_GPS

•android.permission.ACCESS_COARSE_LOCATION

•android.permission.ACCESS_COARSE_UPDATES

•android.permission.ACCESS_FINE_LOCATION

•android.permission.READ_PHONE_STATE

•android.permission.READ_CONTACTS

•android.permission.WRITE_CONTACTS

•android.permission.ACCESS_WIFI_STATE

•android.permission.SEND_SMS

•android.permission.READ_SMS

•android.permission.WRITE_SMS

•android.permission.WAKE_LOCK

•android.permission.RECORD_AUDIO

•android.permission.WRITE_EXTERNAL_STORAGE

Page 20: Malware intelligence ppt-slides

Proceso de infección

• Inicializamos el emulador (podemos especificar el puerto, seleccionar la VM, almacenar las conexiones, entre otras opciones).

• Instalamos la aplicación.

• Árbol inicial (Antes de la infección).

• Simulamos actividad

• Árbol final (Después de la infección)

Page 21: Malware intelligence ppt-slides

Fichero de configuración

• Obtiene el IMEI del dispositivo.

• Crea un fichero de configuración • Ruta: com.nicky.lyyws.xamll/lib/shared_prefs

• Nombre fichero: XM_All_Setting

Page 22: Malware intelligence ppt-slides

Servidor C&C

• Servidor C&C: jin.56mo.com

• Puerto: 2018

Page 23: Malware intelligence ppt-slides

Análisis I

Page 24: Malware intelligence ppt-slides

Servicio de grabación

• /sdcard/shangzhou/callrecord/

• setAudioSource(1) • public static final int MIC

• Microphone audio source

• Constant Value: 1 (0x00000001)

• setOutputFormat(1) • public static final int THREE_GPP

• 3GPP media file format

• Constant Value: 1 (0x00000001)

• setAudioEncoder(1)

• public static final int AMR_NB

• AMR (Narrowband) audio codec

• Constant Value: 1 (0x00000001)

Page 25: Malware intelligence ppt-slides

Servicio SMS

• Número SMS Premium: 15859268161.

• Envía un SMS con el IMEI.

• El número premium pertenece a Fujiance.

• Comprueba que la aplicación no corra en un emulador.

Page 26: Malware intelligence ppt-slides

Formato “AMR”

• Formato AMR • AMR (Adaptative Multi-Rate) es un formato de compresión de audio

optimizado para la codificación de voz.

• El malware almacena el audio grabado en: • /sdcard/shangzhou/callrecord

•El fichero creado tiene como nombre la fecha y hora en que fue creado: • 20110907184158001 – año//mes/día– hora/minutos

Page 27: Malware intelligence ppt-slides

¿Protección en las aplicaciones?

• Se basa en una simple condición de estado

• Usa dos simples métodos de autentificación • checkAccess para comprobar que tenemos los suficientes permisos para ejecutar

la aplicación.

• handleServiceConnectionError para manejar los errores.

Page 28: Malware intelligence ppt-slides

Rompiendo la protección

1. Desempacar el APK usando la herramienta Baksmali.

2. Realizar el cambio de código en los métodos checkAccess y handleServiceConnectionError .

3. Generar la clave privada con la que firmar el paquete.

4. Empacar el APK usando APKTool

5. Firmar la aplicación con jargsigner

6. Usar zipalign

7. Instalar y disfrutar.

Proceso manual

Proceso automatizado

• Sólo es necesario revertir la librería encargada de veriticar las licencias (License

Verification Library)

• Usar la herramienta anti-lvl:

Page 29: Malware intelligence ppt-slides

TapJacking

• Vulnerabilidad “Touch-Event Hijacking” • Podemos mostrar al usuario una interfaz tapadera.

• Hacer compras, click en banners de publicidad, instalar aplicaciones,

saltarnos los permisos, o incluso robar cualquier tipo de información

del teléfono

• ¿Cómo funciona? • A través de Toasts , que permiten pasar los eventos a las capas

inferiores

• ¿Qué versiones se ven afectadas? • Según Google ninguna, esta vulnerabilidad está corregida.

• Remitiéndonos a las pruebas, a día de hoy <= 2.3.4

• ¿Qué piensa Google de todo esto?

Page 30: Malware intelligence ppt-slides

¿Cómo está organizado?

• Se han diseñado un total de 4 payloads

• CallPayload.java – Realiza llamadas al número de indicado.

• MarketPayload.java – Descarga e instala aplicaciones del market.

• ResetPayload.java – Devuelve al estado de fábrica el teléfono.

• SMSPayload.java – Envía un mensaje de texto al número indicado.

• Está diseñado para que se puedan añadir payloads por el usuario de forma sencilla.

• La estructura interna es la siguiente:

• Main.java – Ejecuta el servicio y carga los payloads.

• MalwarePayload.java – Abstracción para implementar más fácilmente los payloads.

• MalwareService.java – Crea el toast e inicia el proceso de tap-jack.

• main.xml – Tiene el layout de la aplicación, lanzando con un evento onClick cada payload.

• strings.xml – Contiene las cadenas que son utilizadas en la aplicación.

• El código puede descargarse desde: • http://code.google.com/p/tap-android/

Page 31: Malware intelligence ppt-slides

Conclusiones

Page 32: Malware intelligence ppt-slides

@jorgemieres Jorge Mieres [email protected]

@jorgemieres

¡MUCHAS GRACIAS! Sebastián Guerrero

[email protected] http://blog.seguesec.com

@0xroot