Proyecto de Seguridad en Smartphones Pablo Paredes
Proyecto de Seguridad en Smartphones Pablo Paredes
Proyecto de Seguridad en Smartphones Pablo Paredes
Enunciado:
Se pide:
A partir de los contenidos estudiados y tras leer el enunciado anterior, analiza al menos tres
aplicaciones (.apk) en busca de vulnerabilidades.
Para el análisis se deben utilizar tanto herramientas stand-alone como online, de manera que
produzcan resultados complementarios y completen un análisis exhaustivo de las aplicaciones.
En cualquier caso, una vez seleccionadas las herramientas, se puede organizar el trabajo de análisis
siguiendo las siguientes tareas:
Análisis estático (observar recursos de la app, código fuente, ficheros de configuración, etc.).
2.Análisis Estático.
3.Análisis Dinámico.
4.Bibliografia
1.Recolección de información.
Al pedirnos 3 aplicaciones de las que 2 son de sitios fiables, por así decirlo solo tendríamos
que recoger información de la app InsecureBankv2, pero para comprobar lo haremos de las
3.
-Analizar el código fuente: ver el código fuente de una aplicación web para comentarios de
código, nombre de archivos, rutas de recursos secretas y más. Puede relevar información
valiosa.
-Parámetro de inyección: estructura de las bases de datos, nombre de tablas, columnas, etc.
Intentar inyectar parámetros de solicitudes HTTP mediante ataques SQL o inyección de
comandos
2.Análisis Estático.
-Whatsapp
Como podemos ver tiene muchísima más seguridad que la de InsecureBank por lo tanto no hay
vulnerabilidades.
-X
En InsecureBankv2 vemos que hay permisos sin declarar que son usados por Android en la
aplicación.
READ_PHONE_STATE
Permiso usado en Changepassword , que es accesible desde otras aplicaciones, por lo cual
vemos que es una vulnerabilidad clara.
READ_CALL_LOG
Permiso usado en PostLogin, es accesible desde otras activities. Esto puede generar un leak
de datos hacia estas otras activities.
SEND_SMS
Permiso usado en MyBroadCastReceiver, accesible por otras aplicaciones, lo cual lo hace aun
más vulnerable y hace que los atacantes puedan enviar distintos SMS no deseados a la
aplicación.
Trafico
En la activity ChangePassword se puede ver que usa una conexión HTTP, lo que nos dice que
por ese protocolo esta sin cifrar y que se envía información sensible , esto puede desembocar
en ataques MITM y hacerlo mas vulnerable.
-Esto muestra cómo se recuperan y se guardan las credenciales en cada una de las aplicaciones.
En el código fuente de LoginActivty se puede ver que esta aplicación tiene un botón que no
podemos ver. Además, comprobamos que en el archivo strings.xml se puede ver que el
is_admin está como no, lo que quiere decir que está usando setVisibility(8) para configurar el
botón para que no se vea.
Si cambiamos el valor de is_admin de no a sí, y volvemos a usar apktool para reconstruirla se
puede ver cómo nos sale un botón de create user.
Pero si luego vemos el código y vamos donde createUser() nos dice que el botón no deja
crear ningún usuario por lo que es una vulnerabilidad más.
Este método hace que enviase las credenciales de inicio de sesión al servidor, pero como se ve en el
código al meter devadmin , las credenciales se enviaran a un punto final llamado devlogin.
Básicamente que si pones devadmin y cualquier contraseña puedes acceder.
3.Análisis Dinámico.
Usamos la herramienta Docker
Permisos peligrosos
android.permission.ACCESS_COARSE_LOCATION
Acceda a fuentes de ubicación aproximadas, como la base de datos de la red móvil, para determinar
la ubicación aproximada del teléfono, cuando esté disponible.
android.permiso.GET_ACCOUNTS:
android.permission.READ_CONTACTS:
Permite que una aplicación lea todos los datos de contacto (dirección) almacenados en su teléfono.
android.permiso.READ_PROFILE:
Permite que una aplicación lea los datos del perfil personal del usuario.
android.permiso.SEND_SMS:
Permite que la aplicación envíe mensajes SMS. Las aplicaciones maliciosas pueden costarle dinero al
enviar mensajes sin su confirmación.
android.permiso.USE_CREDENTIALS:
android.permission.WRITE_EXTERNAL_STORAGE:
Artemis!5EE482906564: Esto indica que hay malware detectado por McAfee. "Artemis" es el nombre
común que McAfee asigna a los archivos sospechosos.
Una vez terminado el proceso de análisis vemos las vulnerabilidades encontradas en la OWASP
Mobile top 10:
Estos agentes pueden descubrir y hacer un mal uso de las credenciales cifradas o explotar
vulnerabilidades que resulten del mal uso de las credenciales. Ya que explotan credenciales cifradas y
abusan de ellas en aplicaciones móviles pueden incluir ataques automatizados.
Los atacantes pueden inyectar código malicioso en el código base de una aplicación móvil o
modificar el código durante el proceso de compilación para introducir puertas traseras, software
espía u otro código malicioso.
La mayoría de las aplicaciones móviles modernas intercambian datos con uno o más servidores
remotos. Las transferencias de datos, que suelen ocurrir a través de la red del operador de móvil e
Internet, pueden interceptarse y alterarse por amenazas escondidas si los datos se transmiten en
texto claro o usan cifrado obsoleto.
4.Bibliografia
https://github.com/MobSF/docs/blob/master/docker.md
https://github.com/dineshshetty/Android-InsecureBankv2
https://www.python.org/downloads/
https://www.virustotal.com/gui/file/b18af2a0e44d7634bbcdf93664d9c78a2695e050393fcfbb5e8b9
1f902d194a4/detection
https://www.joesandbox.com/analysis/403615/0/html
https://owasp.org/www-project-mobile-top-10/
https://www.virtualbox.org/