Esta noticia desde ESET Latinoamérica es interesante debido a que se habla normalmente del malware que afecta a los terminales pero nunca sobre las metodologías de análisis, las técnicas o herramientas que se pueden utilizar para este cometido.
A lo largo del presente año, hemos compartido con ustedes una gran
cantidad de análisis y situaciones en las cuales un código malicioso
para dispositivos móviles afectaron a los usuarios de
Android, no solo a nivel mundial sino también en
Latinoamérica. Por otro lado, si bien hemos comentado acerca de los resultados de las investigaciones que realizamos en el
Laboratorio de ESET Latinoamérica, no habíamos compartido mucho con ustedes acerca de las
metodologías de análisis, las técnicas o herramientas que se pueden utilizar para este cometido.
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, d
ex2jar,
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, si quieren conocer mas información acerca
del código malicioso que estamos analizando pueden acceder a
Troyanos en Android: Vulnerando sistemas de doble autenticacion y Botnets en Android: robo de mensajes de texto.
¡Manténganse atentos porque estaremos continuando el análisis de malware en Android en las próximas semanas!
ليست هناك تعليقات:
إرسال تعليق