comment
IRC Chat
play_arrow
Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

Analizando malware en Android: primeros pasos

  • 1 Respuestas
  • 1875 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado LucaSthefano

  • *
  • Underc0der
  • Mensajes: 399
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« en: Diciembre 15, 2012, 04:17:44 pm »
En primera instancia, una vez que definimos los objetivos del análisis deberíamos hablar sobre las herramientas que podemos utilizar, donde encontrarlas y como preparar un correcto entorno para el análisis de malware en Android. Para simplificar un poco esta tarea, nos vamos a centrar en una distribución de Linux: Santoku. Esta distribución viene especialmente armada para poder analizar códigos maliciosos, buscar vulnerabilidades u otra gran cantidad de tareas en relación a las plataformas móviles, por lo tanto  cuenta con muchas herramientas útiles y efectivas para analizar malware, actualmente la versión disponible es la 0.3 Alpha.

Herramientas como apktool, dex2jar, Droidbox, Androguard son de gran utilidad al momento de analizar un malware para Android. Cada una de ellas tiene distintas funcionalidades, y sumadas a un poco de trabajo el resultado es óptimo. Una aplicación de Android es en realidad un archivo con extensión ”.apk“, el cual si uno lo intenta abrir de igual manera que a un archivo comprimido ve una estructura como la siguiente:


En el directorio META-INF se encuentran los certificados de la aplicación y otra información acerca de su estructura. La carpeta res contiene los recursos de la aplicación como por ejemplos los iconos, imágenes y otros datos mas que no se encuentran compilados. Luego nos quedan 3 archivos en el directorio raíz,  el archivo resources.arsc contiene todos los recursos pre compilados de la aplicación, classes.dex contiene el código de la aplicación compilado en un el formato que interpreta la maquina virtual de Dalvik y el archivo AndroidManifest.xml es donde se encuentra información acerca de la aplicación como por ejemplo permisos, servicios, receivers y versión de Android con la cual es compatible.

Si extraemos el AndroidManifest.xml e intentamos leer su contenido es posible observar que no se encuentre legible, lo mismo sucede con el archivo classes.dex, para evitar un trabajo engorroso de comprender estos formatos, veremos de que manera llevarlos a un lenguaje mas legible y fácil de entender. Acompanemos el aprendizaje del análisis de malware para Android con un caso real, por lo tanto vamos a analizar el archivo con el MD5: b1ae0d9a2792193bff8c129c80180ab0.

Vamos a utilizar apktool para decodificar el archivo y poder leer su contenido, y de esta manera analizar los permisos que solicita la aplicación para su instalación y ejecución. Es muy importante leer con atención la información provista en el AndroidManifest.xml ya que se pueden identificar características importantes de la aplicación o secciones de su código a las cuales prestar atención a medida que avancemos con el análisis:


Al leer el contenido del archivo se puede identificar su estructura y sus secciones. Dentro de la información que provee este archivo se puede identificar la versión de la aplicación (android:versionCode y android:versionName), en que versiones de Android funciona (android:minSdkVersion) como así también los permisos que requiere para su ejecución. En el caso de la amenaza analizada se puede observar que solicita una gran cantidad de permisos, los cuales debemos analizar en detalle y con el tiempo aprender a identificar cuales son más peligrosos que otros.

Una vez que identifiquemos las principales secciones de la aplicación y los puntos mas importantes llega el momento de analizar el código y ver en detalle cuales son las acciones tomadas en caso de que sucedan los eventos que nos importan. En este momento, es importante entender que es lo que debemos buscar y como hallarlo. Por ejemplo, si se intenta analizar que código se ejecuta cuando llega un mensaje de texto, hay que buscar dentro de la carpeta smali el archivo SecurityReceiver.smali, al abrirlo podemos ver el bytecode de la aplicación y analizar su funcionamiento:


Recapitulemos, al iniciar el análisis de un código malicioso para Android una de las primeras cosas que se deben hacer es entender su estructura, buscar los permisos y para luego investigar en detalle que es lo que hace la aplicación e intentar acceder a su código. Hasta ahora vimos como decompilar el malware con apktool y acceder a los recursos como en AndroidManifest.xml y encontrar el bytecode de la aplicación o de los métodos y clases que queremos analizar, todavía nos queda mucho más por hacer. En la próxima parte veremos la estructura de los componentes mas importantes de una aplicación  y como obtener el código de una manera mas legible, para continuar con el análisis.

Saludos!

Fuente: Laboratorios ESET
Agradecimientos: Pablo Ramos
« Última modificación: Diciembre 15, 2012, 05:11:35 pm por Sthefano02 »

Desconectado Pr0ph3t

  • *
  • Underc0der
  • Mensajes: 443
  • Actividad:
    0%
  • Reputación 0
  • © Underc0de Team
    • Ver Perfil
  • Skype: thebrowfc
« Respuesta #1 en: Diciembre 15, 2012, 04:36:57 pm »
Excelente Sthefano, voy a probarlo.
Twitter: @The_Pr0ph3t
pr0ph3t@hotmail.es

 

¿Te gustó el post? COMPARTILO!



Aprende a instalar Virtual box y Emulador de Android.....Sigue leyendo.

Iniciado por J0k3$

Respuestas: 2
Vistas: 1573
Último mensaje Agosto 13, 2013, 03:21:35 pm
por zoro248
Theola, malware utiliza plugin de Chrome para fraude bancario

Iniciado por LucaSthefano

Respuestas: 0
Vistas: 1405
Último mensaje Marzo 23, 2013, 05:52:03 pm
por LucaSthefano
Extensión de Chrome para análisis online de malware con UrlQuery

Iniciado por ZanGetsu

Respuestas: 0
Vistas: 1296
Último mensaje Mayo 03, 2013, 01:10:23 am
por ZanGetsu
Nuevas versiones del malware de la policia y como eludirlas

Iniciado por Pr0ph3t

Respuestas: 0
Vistas: 1589
Último mensaje Mayo 24, 2012, 03:51:47 pm
por Pr0ph3t
Detectando malware y eliminando de manera Básica y sencilla

Iniciado por Sanko

Respuestas: 1
Vistas: 1468
Último mensaje Marzo 31, 2012, 07:24:37 pm
por baron.power