El análisis de aplicaciones móviles se ha convertido en un requisito indispensable. Los smartphone forman ya parte de nuestras vidas. Y es por eso que los criminales centran su esfuerzo en este tipo de plataforma.
En este caso nos centraremos en los smartphone con sistema operativo Android.
Los troyanos bancarios por ejemplo ya incluyen el apartado para el móvil además de infectar la máquina de la víctima.
En el POST de hoy usaremos un framework para el análisis de apk maliciosas.
El framework es ASEF - Android Security Evaluation Framework, es open source y lo puedes encontrar en Code Google.
Recomiendo leer antes el PDF que hay en el proyecto. Explica el funcionamiento del framework y como trabaja para realizar el análisis dinámico de los apk. El PDF lo puedes encontrar directamente aquí.
El funcionamiento de ASEF es el siguiente, usando los AVD que puedes crear con el SDK de Android, instalará los apk que le pasemos como parámetro, capturará el tráfico con tcpdump y nos mostrará por pantalla los resultados.
El esquema de funcionamiento de ASEF es este:
Con ASEF realizaremos la parte de análisis dinámico. Para usar ASEF deberemos de cumplir con ciertos requisitos: El primero de todos es el SDK de Android y el segundo, la API de Google Safe Browsing
Necesitaremos también tres módulos de perl, en concreto:
- Getopt::Std;
- URI::Find;
- URI::Encode
Por último necesitaremos tener instalado tcpdump y un dispositivo con Android o bien un AVD donde hacer las pruebas.
Con estos requisitos ya podemos trabajar con ASEF, una vez descargado lo colocamos en la carpeta de android-sdk.
Revisamos el fichero configuración de ASEF y rellenamos los datos:
#Configurator file will allow you to configure all the parameters required by apkeval.pl (core part of A S E F) so user doesn't need to re-enter every time test is run
#Please follow each of the sample format and provide the parameters
#Name of the virtual device created by user on which all the tests will be run
#Default AVD = avd_test
Default AVD =
#Google Safe Browsing API Key
#Google Safe Browsing API = ABQIAAAAo85Inuxqqg6th2Wo1234yxR6oJp44IDGFsHRDnasTNl3gDmneG
Google Safe Browsing API =
#IP address of the local machine on which A S E F is running, given by an interface on which packets will be captured
#Host IP = 10.0.0.4
Host IP =
#Interface on which packets will be captured
#interface = en1
interface =
#If user choose to bypass virtual device and run all tests on physical device, please provide device ID on which all tests will run
#AD = 3441F11B71E600EC
AD =
#Marination time Tm in seconds for tuning the test cycle
#Tm = 10
Tm =
#No of gestures to be sent to an app during activity mode inside a test cycle
#RGC = 75
RGC =
Rellenamos los datos como la API de Google Safe Browsing, la IP donde correremos ASEF, la interfaz de red, además de el nombre del AVD en el caso de que lo usemos o el ID del device con Android que usemos para las pruebas. Además le indicamos el tiempo que dedicará a cada análisis e incluso gestos random que se ejecutarán en el dispositivo.
Una vez que ejecutamos la herramienta nos aparecen ciertos datos interesantes:
ASEF ==> Running a configurator for ASEF .............
Using default AVD = android2.2
Using Google Safe Browsing API key = MI API SAFE BROWSING
Using packet capturing tool 'tcpdump' on 192.168.1.129 at interface en1
Tm is set to be 10 seconds
Will send 75 number of gestures to each app inside the activity mode of a test cycle
Location of the Directory :- apk
1) be_social_plugin.apk
2) com.mediawoz.gotq.apk
3) de.mehrmannd.sdbooster-GAMEX.apk
4) il.co.egv-3.apk
5) seguridad.apk
6) Update.apk
7) zitmo.apk
Total number of apk files found = 7
Nos indica que está ASEF corriendo, y además nos da información sobre los APK que ha encontrado para analizar.
ASEF también nos proporciona información sobre los APK en si,
application name :- seguridad.apk
packagename :- 'com.android.security'
launcher activity :- 'com.android.security.MainActivity'
version code :- '1'
version name :- '4.3'
app lable :- 'Android Security Suite Premium'
application name :- de.mehrmannd.sdbooster-GAMEX.apk
packagename :- 'de.mehrmannd.sdbooster'
launcher activity :- 'de.mehrmannd.sdbooster.SDboost'
version code :- '714152'
version name :- '1.5.2'
app lable :- 'SD-Booster'
Como resultado del test también nos creará una carpeta con los APK que ha analizado:
---- Creating the master TEST RESULT DIRECTORY :- TEST_08_20_12-10:10:13 ----
1) TEST_08_20_12-10:10:13/"be_social_plugin.apk"
2) TEST_08_20_12-10:10:13/"com.mediawoz.gotq.apk"
3) TEST_08_20_12-10:10:13/"de.mehrmannd.sdbooster-GAMEX.apk"
4) TEST_08_20_12-10:10:13/"il.co.egv-3.apk"
5) TEST_08_20_12-10:10:13/"seguridad.apk"
6) TEST_08_20_12-10:10:13/"Update.apk"
7) TEST_08_20_12-10:10:13/"zitmo.apk"
Done creating the Test result hierarchy .......
ASEF irá analizando cada uno de los apk, pongo un ejemplo de lo que se mostraría en el terminal cuando analiza uno de los apk.
Starting to capture all network traffic for the application be_social_plugin.apk at location :- /usr/local/Cellar/android-sdk/r20.0.1/ASEF_OSP/TEST_08_20_12-10:10:13/"be_social_plugin.apk"/network_traffic.txt
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on en1, link-type EN10MB (Ethernet), capture size 65535 bytes
Getting ready to install Application be_social_plugin.apk from the location ..........apk/"be_social_plugin.apk"
Installing be_social_plugin.apk now :-
469 KB/s (16098 bytes in 0.033s)
pkg: /sdcard/tmp/be_social_plugin.apk
Success
Una de las partes mas importantes es poder capturar el tráfico que puedan llegar a generar los apk, un ejemplo de lo que capturaría ASEF:
! be_social_plugin.apk accessed --> " 111.221.74.34 " and it is - <!DOCTYPE html>
<html lang=en>
<meta charset=utf-8>
<meta name=viewport content="initial-scale=1, minimum-scale=1, width=device-width">
<title>Error 400 (Bad Request)!!1</title>
<style>
*{margin:0;padding:0}html,code{font:15px/22px arial,sans-serif}html{background:#fff;color:#222;padding:15px}body{margin:7% auto 0;max-width:390px;min-height:180px;padding:30px 0 15px}* > body{background:url(//www.google.com/images/errors/robot.png) 100% 5px no-repeat;padding-right:205px}p{margin:11px 0 22px;overflow:hidden}ins{color:#777;text-decoration:none}a img{border:0}@media screen and (max-width:772px){body{background:none;margin-top:0;max-width:none;padding-right:0}}
</style>
<a href=//www.google.com/><img src=//www.google.com/images/errors/logo_sm.gif alt=Google></a>
<p><b>400.</b> <ins>That’s an error.</ins>
<p>Your client has issued a malformed or illegal request. <ins>That’s all we know.</ins>
En este caso nos ha dado un error 400!
Para la parte de análisis dinámico nos sirve perfectamente, además si desarrollan mas features para el framework será una herramienta que deberemos tener para los análisis de apk.
---------------------------------------------------------------
Artículo cortesía de Marc Rivero López
4 comments :
Interesante framework, pero, ¿se limita a capturar los paquetes de red?
Para eso ya existe la opción del emulador -tcpdump, filtramos por trafico/puerto/ip etc. y obtenemos el mismo resultado, no?
saludos,
Terrorismo android http://www.elmundo.es/elmundo/2012/08/27/navegante/1346044348.html?cid=GNEW970103
jajajaja
He encontrado estos errores durante el escaneo del móvil
I tried to scan my device but only I get that:
ASEF ==> Running a configurator for ASEF .............
Using default AVD =
Using Google Safe Browsing API key = ABQIAAAAo85Inuxqqg6th2Wo1234yxR6oJp44IDGFsHRDnasTNl3gDmneG
Using packet capturing tool 'tcpdump' on 158.42.55.55 at interface eth0
Found an android scan device listed in the configurator file :- HT08WPY07480
Tm is set to be 10 seconds
Will send 75 number of gestures to each app inside the activity mode of a test cycle
Calling a converter module :-
Inside converter module
Print local path for :-
./aapt: 1: ./aapt: Syntax error: "(" unexpected
Calling Organizer module to organize test results
Inside Organizer
---- Creating the master TEST RESULT DIRECTORY :- TEST_02_20_13-13:37:38 ----
1) TEST_02_20_13-13:37:38/""mkdir: no se puede crear el directorio «TEST_02_20_13-13:37:38/»: El archivo ya existe
Done creating the Test result hierarchy .......
./adb: 1: ./adb: Syntax error: ")" unexpected
scanning device not found / couldn't detect ... going to exit now... please reconnect the scanning device and start the tool again...
Alguna idea de porque no funciona??
......esa ip de la UPV (politecnica de Valencia).......
Publicar un comentario