Forense Smarthpone

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 44

Seguridad en Smartphones

Actividad 2
CLAUDIA FERNÁNDEZ GUTIÉRREZ
ÍNDICE DE CONTENIDOS
OBJETIVOS 2

SELECCIÓN DE APKS 2

HERRAMIENTAS USADAS 2

 MASTG ANDROID 4

- ALCALCE 4
- RECOLECCIÓN DE INFORMACIÓN 5
- ANÁLISIS ESTÁTICO 6
- ANÁLISIS DINÁMICO 15

 LUCKY PATCHER 21

- ALCALCE 21
- RECOLECCIÓN DE INFORMACIÓN 22
- ANÁLISIS DINÁMICO 29

 UPTODOWN 31

- ALCALCE 31
- RECOLECCIÓN DE INFORMACIÓN 33
- ANÁLISIS DINÁMICO 40
OBJETIVOS

Analizar al menos tres aplicaciones (.apk) en busca de vulnerabilidades:

 Una apk no oficial, con vulnerabilidades deliberadamente introducidas, y que se


publican en internet para prácticas de entrenamiento.
 Una descargada de algún repositorio no oficial de apks.
 Una descargada desde una tienda oficial.

Para el análisis se han de utilizar tanto herramientas stand-alone como online, de manera
que produzcan resultados complementarios y completen un análisis exhaustivo de las
aplicaciones. Una vez seleccionadas las herramientas se puede organizar el trabajo de
análisis siguiendo las siguientes tareas:

1. Definir el alcance.
2. Recolección de información, como especificaciones técnicas,
3. Análisis estático (observar recursos de la app, código fuente, ficheros de
configuración…)
4. Análisis dinámico (ejecutar la app y monitorizar la actividad)

SELECCIÓN DE APKS

A continuación, se enumeran las apks seleccionadas :

- MASTG Android Java App, como apk no oficial con vulnerabilidades


deliberadamente introducidas.
- Lucky Patcher, como apk de un repositorio no oficial de apks, una herramienta
para modificar apps y obtener acceso sin límites a aplicaciones Android. Debido
a su naturaleza no está disponible en Google Play.
- UpToDown, como apk descarga desde una tienda oficial, se trata de un simple
juego de móvil.

HERRAMIENTAS USADAS

Las herramientas que han sido usadas para realizar el análisis completo de la aplicación
son las siguientes:

- Web OWASP, se ha empleado para obtener información acerca de las


vulnerabilidades más comunes en aplicaciones móviles y manuales de testing.
- ADB (Android Debug Bridge), herramienta principal para conectarse a un
dispositivo Android ya sea emulad o físico.
- ApkTool, para la descompresión de la apk.
- JADX, decompilador Java.
- AVD (Android Virtual Device), a través de Android Studio se pueden ejecutar
máquinas virtuales Android donde probar las apks.
- Virus Total, sitio web que proporciona análisis de archivos y páginas web a
través de antivirus.
- MobSF (Mobile Security Framework), se trata de una aplicación de código
abierta dedicada a analizar aplicaciones móviles capaz de realizar tanto análisis
estático como dinámico.
- Wireshark, analizador de protocolos utilizado para realizar análisis y solucionar
problemas en redes de comunicaciones, para análisis de datos y protocolos.
- BurpSuite, conjunto de herramientas especializadas para realizar pruebas de
penetración.
**Mi intención era capturar el tráfico tanto, mediante Wireshark como
BurpSuite sin embargo, no he sido capaz de llevarlo a cabo. Ya que no he
encontrado la manera de poder capturar el tráfico.
MASTG ANDROID

ALCALCE

OBJETIVO

El presente análisis tiene como objetivo identificar los posibles riesgos y


vulnerabilidades asociadas a la aplicación MASTG Android.

Se va a llevar a cabo un Gray-box testing, al contar con información parcial de la


estructura interna de la aplicación (wiki).

ASPECTOS A EVALUAR

Los aspectos que van a evaluarse se describen a continuación:

1. Recolección previa de información de la aplicación. Que nos proporcionará


contexto y ayudará a guiar el enfoque del análisis. Aquí se incluye la revisión de
cualquier tipo de documentación disponible sobre la aplicación, información
acerca del desarrollador…
2. Análisis estático, empleando un enfoque híbrido automático/manual:
- Código fuente. Se llevará a cabo una revisión del código fuente de la aplicación
en busca de posibles vulnerabilidades, exposición de datos sensibles…
- Permisos. Se realizará un análisis de los permisos usados por la aplicación,
llegando a determinar si resultan excesivos o innecesarios al igual que aquellos
que impliquen acceso a funcionalidades críticas del dispositivo o datos sensibles.
3. Análisis dinámico, es decir la prueba y evaluación de la aplicación en tiempo de
ejecución real. Como principal objetivo está el encontrar vulnerabilidades de
seguridad y puntos débiles, además de verificar que los mecanismos de
seguridad brindan la protección suficiente contra los tipos de ataques más
frecuentes.

ENTREGABLES

- Reporte de la aplicación MobSF (mobsfv_MASTG.pdf)


- Análisis de Virus Total.
RECOLECCIÓN DE INFORMACIÓN

El activo a analizar es MASTG perteneciente al entorno de “MASTG HACKING


PLAYGROUND”, una colección de aplicaciones educativas (Android e IOS), que son
intencionalmente inseguras para brindar orientación a desarrolladores, investigadores y
pentesters.

ESPECIFICACIONES TÉCNICAS

 Plataforma de desarrollo: Android Studio


 Lenguaje de programación: Java
 Nombre del Paquete: sg.vp.owasp_mobile.omtg_android
 Compatibilidad: Android 4.4
 Minimum SDK Version: 21
 Target SDK Version: 26

MÁS INFORMACIÓN

La aplicación está compuesta por un total de 25 activities. La actividad MyActivity es


la MAIN y LANCHER. Además cuenta con:

- un servico (org.acra.sender.SenderService), servicio probablemente empleado


por la aplicación para la gestión de informes de errores utilizando ACRA
(Application Crash Report for Android)
- y un provider
(OMTG_CODING_003_SQL_Injection_Content_Provider_Implementation
).

Puesto que se trata de una aplicación orientada a fines educativos su wiki cuenta con
información acerca de los diferentes casos de pruebas existentes:

01. Bad Encryption 02. KeyChain


03. Keystore 04. Internal/External Storage
05. SharedPreferences 06. SQLite Not Encrypted/Encrypted
07. Logging 08. Keyboard cache
09. Memory 10. Webview Remote/Local
11. Best practice 12. Sql Injection
13. Code Injection 14. Secure Channel
ANÁLISIS ESTÁTICO

VIRUS TOTAL

La web Virus Total no ha encontrado nada especial a destacar:

MOBSF

La herramienta de MobSF ha calificado la aplicación con una puntuación de 41 sobre


100, encontrándose en el grado B (riesgo medio) de riego.
MANIFEST

Severida
Nº Vulnerabilidad
d
1 Versión vulnerable de Android Alta

La aplicación puede ser instalada en una versión vulnerable de Android (Android 5.0-
5.0.2, [minSDK=21]

2 Aplicación depurable Alta

Una APK de producción no debería serlo, ya que implica poder adjuntar un depurador de
Java a la aplicación en ejecución, inspeccionarla en tiempo real, establecer puntos de
interrupción, avanzar paso a paso, recompilar valores de variables e incluso cambiarlos:

3 Atributo backup Warning

El atributo backup define si los datos de la aplicación pueden ser respaldados y


restaurados por un usuario que ha habilitado la depuración USB. Si está configurado
como true, permite a un atacante tomar el respaldo de los datos de la aplicación a través
de adb incluso si el dispositivo no está rooteado. Esta configuración debe estar
establecida a false en aplicación que manejen información sensible:

4 Permisos peligrosos Warning

Tanto el permiso de Internet (conexión a Internet) como el de Read_external_storage


(acceder y almacenar en el almacenamiento externo del dispositivo), son permisos
considerados peligrosos. La presencia de estos permisos no implica necesariamente que
haya brechas de seguridad, sin embargo se ha de tener en cuenta, ya que se puede abusar
de dichos permisos.
ANÁLISIS DE CERTIFICADO

Al realizar el análisis de certificados se ha encontrado lo siguiente:

Severida
Nº Vulnerabilidad Descripción
d

Certificado de Aplicación firmada con el certificado de


1 depuración. Una aplicación no debe ser Alta
depuración
enviada con un certificado de depuración.

La aplicación está firmada con el esquema


de firma v1, lo que la hace vulnerable a la
2 Vulnerable a Janus vulnerabilidad Janus en Android 5.0-7.0. Warning
Las aplicaciones firmadas con esquemas v1
y v2/v3 también son vulnerables

La aplicación está firmada con


Certificado vulnerable SHA1withRSA. SHA1 tiene problemas de
3 Warning
a colisión hash. colisión. El archivo de manifiesto indica que
SHA256 está en uso

ANÁLISIS DE ARCHIVOS

Se han encontrado los siguientes archivos

- Archivos de certificado y clave incrustado directamente en el código, en lugar


de ser gestionados de manera segura. (assets/server.p12
res/raw/certificate.pem)
- Archivos Keystore, empleado para almacenar claves criptográficas lo que puede
comprometer la seguridad de la aplicación y los datos que maneja.
(res/raw/mykeystore.bks)
ANÁLISIS DE CÓDIGO

Resultado del análisis de código hemos obtenido lo siguiente:

N Vulnerabilidad Standard Severidad

CWE: CWE-919: Weaknesses in Mobile


Configuración de Applications
1 depuración OWASP Top 10: M1: Improper Platform Alta
habilitada Usage
OWASP MASVS: MSTG-RESILIENCE-2

En ambientes de producción está variable debería estar desactivada.

Clase: BuildConfig

CWE: CWE-532: Insertion of Sensitive


Logeo de información
2 Information into Log File Alta
sensible OWASP MASVS: MSTG-STORAGE-3

Se está logando información sensible como el usuario y contraseña en plaintext. Todo el


código de registro y depuración deben eliminarse antes de crear una versión de
producción.

Clase: OMTG_DATAST_002_Logging
OWASP Top 10: M5: Insufficient
3 Encriptación débil Alta
Cryptography

Se deben utilizar bibliotecas y funciones de cifrado adecuados ya que algoritmos débiles


pueden someterse fácilmente a ingeniera inversa.

Clase: OMTG_DATAST_002_Logging

CWE: CWE-89: Improper Neutralization of


Special Elements used in an SQL Command
4 Inyección SQL ('SQL Injection')
Alta
OWASP Top 10: M7: Client Code Quality

En ambos casos , la query SQL y el content provider son propensos a ataques de


inyección SQL

Clase: OMTG_CODING_003_SQL_Injection

Clase: OMTG_CODING_003_SQL_Injection_Content_Provider

5 Almacenamiento de OWASP Top 10: M1: Improper Credential Alta


credenciales en Usage
SharedPreferences

Las credenciales de usuario se están guardando en un clave-valor. Esto debe evitarse ya


que se almacenan por defecto en texto plano.

Clase: OMTG_DATAST_001_SharedPreferences

CWE: CWE-749: Exposed Dangerous Method


Implementación or Function
6 insegura de WebView OWASP Top 10: M1: Improper Platform Alta
Usage
OWASP MASVS: MSTG-PLATFORM-7

En ambos casos se ha realizado una implementación insegura de WebView lo que


puede hacer posible ejecutar métodos java a través de JavaScript.
Clase: OMTG_ENV_005_WebView_Local

Clase: OMTG_ENV_005_WebView_Remote
Canal de comunicación
7 OWASP: Insecure Communication Alta
inseguro

El canal de comunicación empleado es inseguro ya que se está empleando http, lo que


puede llevar a la monitorización de todo el tráfico.

Clase: OMTG_NETW_001_Secure_Channel

CWE: CWE-276: Incorrect Default Permissions


Lectura/escritura en
8 OWASP Top 10: M2: Insecure Data Storage Warning
almacenamiento externo OWASP MASVS: MSTG-STORAGE-2

Almacenar información sensible tanto en el almacenamiento interno como externo


puede llevar a fugas de información, ya que dicha información se guarda en archivos
que pueden ser fácilmente encontrados en el dispositivo.

Clase: OMTG_DATAST_001_InternalStorage

Clase: OMTG_DATAST_001_ExternalStorage

9 Sql not encrypted CWE: CWE-312: Cleartext Storage of Sensitive Warning


Information
OWASP Top 10: M9 Reverse Engineering
OWASP MASVS: MSTG-STORAGE-14
No se debe guardar información sensible en SQLite ya que por defecto se almacena en
texto plano.

Clase: OMTG_DATAST_001_SQLite_Not_Encrypted

CWE: CWE-312: Cleartext Storage of Sensitive


Información sensible Information
10 Warning
hardcodeada OWASP Top 10: M9 Reverse Engineering
OWASP MASVS: MSTG-STORAGE-14

Clase : MyApplication.java

CWE: CWE-327: Use of a Broken or Risky


Cryptographic Algorithm
11 Uso de SHA1 OWASP Top 10: M5: Insufficient Warning
Cryptography
OWASP MASVS: MSTG-CRYPTO-4

Este algoritmo es vulnerable a colisiones de hash.


CWE: CWE-330: Use of Insufficiently Random
Values
Generador de números
12 OWASP Top 10: M5: Insufficient Info
aleatorios inseguro Cryptography
OWASP MASVS: MSTG-CRYPTO-6

La librería empleada para generar números aleatorios en insegura.


ANÁLISIS DINÁMICO

EJECUCIÓN DE LA APLICACIÓN

1. Aplicación Debugeable

Puesto que la aplicación es debugeable podemos, por ejemplo, extraer información


del directorio privado data de la aplicación (acceso al shell no rooteado). También
puede llegar a ejecutarse código arbitrario.

Si tratamos de acceder a otra aplicación empleando el mismo método vemos que no


es posible.

2. Backup

Puesto que la aplicación presenta el atributo de allowBackup = true, podemos


realizar una copia backup de la aplicación, sin necesidad de tener el dispositivo
rooteado
3. Bad Encryption

Si observamos el código podemos dar con la contraseña.

Con el siguiente método podemos obtener la cadena desencriptada:


4. Internal Storage:

Para poder acceder a la carpeta donde se encuentra los archivos del almacenamiento
interno debemos acceder al shell del dispositivo. Una vez ahí nos dirigimos a la
siguiente ruta data/data/{nombre_paquete}/files:

- En el directorio data/data se almacenan los datos de las aplicaciones instaladas.


Cada aplicación tiene su propio directorio nombrado por el nombre de su
paquete.
- La carpeta files pertenece al almacenamiento interno.

Encontramos un archivo (test_file) que como podemos ver contiene información


sensible:

5. External Storage

Al igual que el almacenamiento interno el almacenamiento externo guarda su


información en una carpeta. Sin embargo no he sido capaz de acceder a ella.
A continuación podemos ver el log del error:

6. Shared Preferences,

La aplicación crashea al intentar acceder a la Activity. Sin embargo, la intención es


crear un archivo de clave valor (key.xml) con credenciales, como podemos ver a
través del código:

Para acceder al archivo hemos de acceder a la siguiente ruta:


data/data/{nombre_paquete}/shared_prefs

7. SqLite

Se crea una base de datos SQLite sin ningún tipo de encriptación, por lo que se
puede acceder a ella y ver sus contenidos. Para acceder a las bases de datos debemos
ir a la siguiente ruta data/data/{nombre_paquete}/databases:

8. Logging

Al iniciar sesión se realiza un logeo de las credenciales:


9. SqlInyection

Fácilmente podemos hacer Login, al hacer una inyección de SQL:


10. SqlInyection content provider
El content provider también puede ser vulnerable a ataques de inyección.

11. Code Inyection

Esta actividad simula una inyección de código a través de la clase DexClassLoader,


tratando de cargar dinámicamente archivos JAR externos.

Pero como podemos ver ha saltado una excepción por lo que no se ha completado:
LUCKY PATCHER

ALCALCE

OBJETIVO

El presente análisis tiene como objetivo identificar los posibles riesgos y


vulnerabilidades asociadas a la aplicación Lucky Patcher.

Se va a llevar a cabo un Gray-box testing, al contar con información parcial de la


estructura interna de la aplicación.

ASPECTOS A EVALUAR

Los aspectos que van a evaluarse se describen a continuación:

1. Recolección previa de información de la aplicación. Que nos proporcionará


contexto y ayudará a guiar el enfoque del análisis. Aquí se incluye la revisión de
cualquier tipo de documentación disponible sobre la aplicación, información
acerca del desarrollador…
2. Análisis estático, empleando un enfoque híbrido automático/manual:
- Código fuente. Se llevará a cabo una revisión del código fuente de la aplicación
en busca de posibles vulnerabilidades, exposición de datos sensibles…
- Permisos. Se realizará un análisis de los permisos usados por la aplicación,
llegando a determinar si resultan excesivos o innecesarios al igual que aquellos
que impliquen acceso a funcionalidades críticas del dispositivo o datos sensibles.
3. Análisis dinámico, es decir la prueba y evaluación de la aplicación en tiempo de
ejecución real. Como principal objetivo está el encontrar vulnerabilidades de
seguridad y puntos débiles, además de verificar que los mecanismos de seguridad
brindan la protección suficiente contra los tipos de ataques más frecuentes.

ENTREGABLES

- Reporte de la aplicación MobSF (mobsfv_LuckyPatcher.pdf)


- Análisis de Virus Total
RECOLECCIÓN DE INFORMACIÓN

El activo a analizar es Lucky Patcher es una herramienta para modificar apps y obtener
acceso sin límites a aplicaciones y juegos Android.

ESPECIFICACIONES TÉCNICAS

Las especificaciones técnicas encontradas:

Plataforma de desarrollo Android Studio


Lenguaje de programación Java
Compatibilidad Android 4.0
Versión Actual 9.20.6.1
Target SDK 25
Min SDK 16

MÁS INFORMACIÓN

En su sitio web podemos ver más información sobre ella. Se trata de una aplicación que
esta desactivada en el Play Store, por lo que la única forma de instalarla es mediante
webs no oficiales. Según la web, se trata de una app completamente segura a pesar de
que el dispositivo la detecte como virus o malware. Su funcionamiento se basa en
acceder a diferentes aplicaciones y modificarlas según las necesidades del usuario.

Cuenta con un total de 11 activities, 10 servicios, 14 receivers y 6 providers.


ANÁLISIS ESTÁTICO

VIRUS TOTAL

Si nos fijamos en el resultado de Detección de VirusTotal podemos ver que uno de los
proveedores de seguridad la ha calificado como Malware:

Y ha destacado con un Warning las siguientes reglas de IDS colaborativas.:

- ET INFO Android Device Connectivity Check, relacionada con la detección de


algún tipo de actividad o comportamiento vinculado a la conectividad de
dispositivos Android.
- SURICATA STREAM PACKET with Invalid timestamp, indica la detección
de un paquete de red con una marca de tiempo invalidad por parte de Suricata, lo
que puede indicar un comportamiento anómalo en la comunicación de red, ya sea
algo malicioso o un error de protocolo de red.

La activación de ambas reglas no tiene por qué estar relacionado con un problema
graves simplemente han sido identificadas como sospechosas.
MOBSF

Los resultados del análisis estático realizado por MobSF la califica con un riesgo alto
(37/100) y un grado C.

MANIFEST

En el manifest podemos ver que hay un total de 20 permisos de los cuales 11 son
considerados como peligrosos:

- Authenticate_Accounts, que permite a la aplicación utilizar las capacidades de


autentificación de cuentas del Administrador de cuentas, incluida la creación de
cuentas, así como la obtención y configuración de sus contraseñas.
- Camera: permite a una aplicación tomar fotos y videos con la cámara.
- Get_Accounts: acceso a la lista de cuenta en el servicio de Cuentas.
- Manage_Accounts, permite a la aplicación realizar operaciones como agregar y
eliminar cuentas e incluso sus respectivas contraseñas.
- Use_credential, permite usar las contraseñas de una cuenta, solicitando tokens
de autentificación
- Write_External_Storage, permite leer, modificar y eliminar contenidos del
almacenamiento externo.
- Install_packages, permite instalar paquetes de aplicación sin la intervención
directa del usuario. Se trata de un permiso crítico ya que concede a la aplicación
un alto nivel de control, pudiendo ser utilizado para instalar aplicaciones sin el
consentimiento del usuario.
Severida
Nº Vulnerabilidad
d
1 Versión vulnerable de Android Alta

La aplicación puede ser instalada en una versión anterior de Android con múltiples
vulnerabilidades no corregidas.

2 Task Hijacking/StrandHogg (cm.aptoide.pt.view.MainActivity) Alta

La activity no debería tener el atributo modo de inicio de establecido en singleTask, ya


que es posible que otras aplicaciones coloquen una actividad maliciosa encima de la pila
de aplicaciones, resultando en un secuestro de tareas.

3 StrandHogg 2.0 Alta


La activity es vulnerable a la StrandHogg 2.0 , lo que hace posible que otras aplicaciones
coloquen actividad maliciosa encima de la pila de actividades de la aplicación vulnerable.

(com.facebook.CustomTabActivity/ cm.aptoide.pt.DeepLinkIntentReceive)

4 App Link assests.json not found Alta


La url de verificación de activos de App Link no se encontró o se configuró
incorrectamente. Los enlaces de aplicaciones permiten a los usuarios redirigir desde una
URL web/correo electrónico a la aplicación. Si este archivo falla o está configurado
incorrectamente para el host/dominio , una aplicación maliciosa puede secuestrar dichas
URL.

[android:name=cm.aptoide.pt.DeepLinkIntentReceiver]
[android:host=http://webservices.aptoide.com]
[android:host=http://become-a-power-gamer.aptoide.com]

5 El Launch Mode no es estándar (cm.aptoide.pt.view.MainActivity) Warning

Una actividad no deber tener el atributo de modo de inicio establecido en


“singleTask/singleInstance”, ya que se convierte en Activity Root y es posible que otras
aplicaciones lean el contenido de la intención de llamada.

6 TaskAffinity is set for activity Warning


Si se configura TaskAffinity, entonces otra aplicación podría leer los Intents enviados a
las actividades que pertenecen a otra tarea.

cm.aptoide.pt.wallet.WalletInstallActivity, cm.aptoide.pt.view.MainActivity
7 Component not Protected Warning
Se han encontrado componentes que comparte con otras aplicaciones en el dispositivo, por
lo que lo deja accesible para cualquier otra aplicación en esta. La presencia de intent-filter
indica que el servicio se exporta explícitamente. (Service, Content Provider, Activity,
Broadcast Receiver)

cm.aptoide.pt.toolbox.ToolboxContentProvider, cm.aptoide.pt.account.AccountAuthenticatorService
com.facebook.CustomTabActivity, cm.aptoide.pt.DeepLinkIntentReceiver,
cm.aptoide.pt.notification.NotificationReceiver, cm.aptoide.pt.install.CheckRootOnBoot,
m.aptoide.pt.widget.SearchWidgetProvider, cm.aptoide.pt.DeepLinkIntentREceiverr
cm.aptoide.pt.install.InstalledBroadcastReceiver

9 High Intent Priority Warning

Al establecer una prioridad de intención más alta que otra, la aplicación anula de manera
efectiva otras solicitudes

ANÁLISIS DE CERTFICADO

Al realizar el análisis de certificados se ha encontrado lo siguiente:

Severida
Nº Vulnerabilidad Descripción
d

La aplicación está firmada con el esquema


de firma v1, lo que la hace vulnerable a la
2 Vulnerable a Janus vulnerabilidad Janus en Android 5.0-7.0. Warning
Las aplicaciones firmadas con esquemas v1
y v2/v3 también son vulnerables

La aplicación está firmada con


Certificado vulnerable SHA1withRSA. SHA1 tiene problemas de
3 Warning
a colisión hash. colisión. El archivo de manifiesto indica que
SHA256 está en uso

ANÁLISIS DE ARCHIVOS

Se han encontrado los siguientes archivos

- Archivos de certificado y clave incrustado directamente en el código, en lugar


de ser gestionados de manera segura. (res/raw/vanilla_certificate.pem)
ANÁLISIS DE CÓDIGO

El análisis de código es el siguiente:

Severida
N Vulnerabilidad Standard
d

CWE: CWE-200: Information Exposure


1 Divulgación de Ip OWASP MASVS: MSTG-CODE-2 Warning

Se produce una divulgación de la ip 224.0.0.251.

CWE: CWE-89: Improper Neutralization of Special


2 Raw Query Elements used in an SQL Command ('SQL Injection') Warning
OWASP Top 10: M7: Client Code Quality

La aplicación usa raw SQL query, por lo que puede ser vulnerable a SQL Injection.
CWE: CWE-312: Cleartext Storage of Sensitive
Information
5 Sensitive information OWASP Top 10: M9: Reverse Engineering
Warning
OWASP MASVS: MSTG-STORAGE-14

La aplicación puede contener archivos que tengan información sensible hardcodeada


como contraseñas, usuarios, claves…

CWE: CWE-327: Use of a Broken or Risky


Cryptographic Algorithm
4 Md5/sha1 OWASP Top 10: M5: Insufficient Cryptography
Info
OWASP MASVS: MSTG-CRYPTO-4

Ambos algoritmos criptográficos tienden a tener colisión de hashes:

CWE: CWE-330: Use of Insufficiently Random Values


5 Random Generator OWASP Top 10: M5: Insufficient Cryptography Info
OWASP MASVS: MSTG-CRYPTO-6

Se emplea una librería de generación de números aleatorios no segura.


TRACKERS

Tiene un total de 6 trackers:

Nombre Categoría

Facebook Login Identificación


Estadísticas sobre compartición de
Facebook Share
contenido
Flurry Add y Analíticas

Google AdMob Add

Google Firebase Analitycs Analíticas

Sentry Reportar crashes

ANÁLISIS DINÁMICO

EJECUCIÓN DE LA APLICACIÓN

Algunas capturas dentro de la aplicación, podemos ver que aparecen todas las
aplicaciones instaladas en el dispositivo con diversas opciones que pueden realizarse
sobre ellas.
También puede modificarse el archivo APK:
Desde la propia aplicación podemos acceder a la carpeta de almacenamiento del
dispositivo:

UPTODOWN

ALCALCE

OBJETIVO

El presente análisis tiene como objetivo identificar los posibles riesgos y


vulnerabilidades asociadas a la aplicación Uptodown.

Se va a llevar a cabo un Gray-box testing, al contar con información parcial de la


estructura interna de la aplicación.

ASPECTOS A EVALUAR

Los aspectos que van a evaluarse se describen a continuación:

1. Recolección previa de información de la aplicación. Que nos proporcionará


contexto y ayudará a guiar el enfoque del análisis. Aquí se incluye la revisión de
cualquier tipo de documentación disponible sobre la aplicación, información
acerca del desarrollador…
2. Análisis estático, empleando un enfoque híbrido automático/manual:
- Código fuente. Se llevará a cabo una revisión del código fuente de la aplicación
en busca de posibles vulnerabilidades, exposición de datos sensibles…
- Permisos. Se realizará un análisis de los permisos usados por la aplicación,
llegando a determinar si resultan excesivos o innecesarios al igual que aquellos
que impliquen acceso a funcionalidades críticas del dispositivo o datos sensibles.
3. Análisis dinámico, es decir la prueba y evaluación de la aplicación en tiempo de
ejecución real. Como principal objetivo está el encontrar vulnerabilidades de
seguridad y puntos débiles, además de verificar que los mecanismos de
seguridad brindan la protección suficiente contra los tipos de ataques más
frecuentes.

ENTREGABLES

- Reporte de la aplicación MobSF (mobsfv_Uptodown.pdf)


- Análisis de Virus Total.
RECOLECCIÓN DE INFORMACIÓN

El activo a analizar es Uptodown se trata de una herramienta gratuita que permite


instalar aplicaciones

ESPECIFICACIONES TÉCNICAS

Las especificaciones técnicas encontradas:

Plataforma de desarrollo Android Studio


Versión Actual 5.68
Target SDK 21
Min SDK 33

MÁS INFORMACIÓN

Uptodown permite instalar aplicaciones de Android que usen formatos no detectados


por el instalador de paquetes incluido por defecto en el sistema operativo.

La aplicación está formada por un total de 51 activities, 14, services, 14 receivers, 4


providers.
ANÁLISIS ESTÁTICO

VIRUS TOTAL
Ninguno de los proveedores de seguridad de la web Virus Total ha considerado esta aplicación como
maliciosa:

Sin embargo, hay un Warning en la siguiente regla del IDS colaborativo:

- ET INFO Android Device Connectivity Check, relacionada con la detección de


algún tipo de actividad o comportamiento vinculado a la conectividad de
dispositivos Android.

MOBSF

La herramienta MobSF ha calificado la aplicación con una puntuación de 49 sobre


100, encontrándose en el grado B, correspondiente a grado medio.
MANIFEST

En el manifest podemos ver observar que hay un total de 7 permisos, sobre los cuales no
hay mucho que destacar.

Severida
Nº Vulnerabilidad
d
1 Versión vulnerable de Android Alta

La aplicación puede ser instalada en una versión anterior de Android con múltiples
vulnerabilidades no corregidas (Android 5.0-5.0.2, [minSDK =21]).

2 App Link assests.json not found Alta

La url de verificación de activos de App Link no se encontró o se configuró


incorrectamente. Los enlaces de aplicaciones permiten a los usuarios redirigir desde una
URL web/correo electrónico a la aplicación. Si este archivo falla o está configurado
incorrectamente para el host/dominio , una aplicación maliciosa puede secuestrar dichas
URL.
android:name=com.uptodown.activities.MainActivity, android:host=https://dw.uptodown.com

3 BackUp Warning

Esto permite que cualquiera pueda hacer una copia de seguridad de los datos de la
aplicación a través de adb. Permite a los usuarios que han habilitado la depuración USB
copiar datos de la aplicación fuera del dispositivo.

4 Protection level should be checked Warning


Si se configura TaskAffinity, entonces otra aplicación podría leer los Intents enviados a
las actividades que pertenecen a otra tarea.

cm.aptoide.pt.wallet.WalletInstallActivity, cm.aptoide.pt.view.MainActivity

5 Component not Protected Warning


Se han encontrado componentes que comparte con otras aplicaciones en el dispositivo, por
lo que lo deja accesible para cualquier otra aplicación en esta. La presencia de intent-filter
indica que el servicio se exporta explícitamente. (Service, Content Provider, Activity,
Broadcast Receiver)

com.uptodown.tv.ui.activity.TvMainActivity, com.uptodown.core.activities.InstallerActivity,
com.uptodown.activities.SearchActivity, com.uptodown.receivers.BootDeviceReceive,
com.uptodown.receivers.MyAppUpdatedReceiver,
com.google.android.gms.auth.api.signin.RevocationBoundService,
com.google.firebase.iid.FirebaseInstanceIdReceiver,
androidx.work.impl.background.systemjob.SystemJobService,
androidx.work.impl.diagnostics.DiagnosticsReceiver, androidx.profileinstaller.ProfileInstallReceiver,
com.google.firebase.iid.FirebaseInstanceIdReceiver,
com.google.android.gms.auth.api.signin.RevocationBoundService,
ndroidx.profileinstaller.ProfileInstallReceiver, androidx.work.impl.diagnostics.DiagnosticsReceiver,
androidx.work.impl.background.systemjob.SystemJobService

6 High Intent Priority Warning

Al establecer una prioridad de intención más alta que otra, la aplicación anula de manera
efectiva otras solicitudes

ANÁLISIS DE CERTIFICADO

Al realizar el análisis de certificados se ha encontrado lo siguiente:

Severida
Nº Vulnerabilidad Descripción
d

La aplicación está firmada con el esquema


de firma v1, lo que la hace vulnerable a la
2 Vulnerable a Janus vulnerabilidad Janus en Android 5.0-7.0. Warning
Las aplicaciones firmadas con esquemas v1
y v2/v3 también son vulnerables

La aplicación está firmada con


Certificado vulnerable SHA1withRSA. SHA1 tiene problemas de
3 Warning
a colisión hash. colisión. El archivo de manifiesto indica que
SHA256 está en uso
ANÁLISIS DE CÓDIGO
Severida
N Vulnerabilidad Standard
d
Archivo CWE: CWE-276: Incorrect Default Permissions
1 SharedPreferences es OWASP Top 10: M2: Insecure Data Storage Alta
OWASP MASVS: MSTG-STORAGE-2
leíble.

Cualquier aplicación puede leer el archivo.

Lectura en CWE: CWE-89: Improper Neutralization of Special


2 almacenamiento Elements used in an SQL Command ('SQL Injection') Warning
externo OWASP Top 10: M7: Client Code Quality

Cualquier aplicación puede acceder a la información escrita en el almacenamiento


externo.

CWE: CWE-312: Cleartext Storage of Sensitive


Information
5 Sensitive information OWASP Top 10: M9: Reverse Engineering
Warning
OWASP MASVS: MSTG-STORAGE-14
La aplicación puede contener archivos que tengan información sensible hardcodeada
como contraseñas, usuarios, claves…
CWE: CWE-89: Improper Neutralization of Special
Raw SQL
6 Elements used in an SQL Command ('SQL Injection') Warning
Querys OWASP Top 10: M7: Client Code Quality

La aplicación usa raw SQL query, por lo que puede ser vulnerable a SQL Injection.

CWE: CWE-749: Exposed Dangerous Method or


Implementación Function
7 OWASP Top 10: M1: Improper Platform Usage
Warning
Insegura de WebView
OWASP MASVS: MSTG-PLATFORM-7

La ejecución de Código controlador por el usuario en WebView es un agujero de


seguridad crítico.

CWE: CWE-327: Use of a Broken or Risky


Cryptographic Algorithm
4 Md5/SHA1 OWASP Top 10: M5: Insufficient Cryptography
Info
OWASP MASVS: MSTG-CRYPTO-4

Ambos algoritmos criptográficos tienden a tener colisión de hashes:


CWE: CWE-330: Use of Insufficiently Random Values
5 Random Generator OWASP Top 10: M5: Insufficient Cryptography Info
OWASP MASVS: MSTG-CRYPTO-6

Se emplea una librería de generación de números aleatorios no segura.

TRACKERS

Tiene un total de 2 trackers:

Nombre Categoría

Google CrahLytics Reporte de crashes

Google Firebase Analitycs Analytics


ANÁLISIS DINÁMICO

EJECUCIÓN DE LA APLICACIÓN

Podemos ver que se trata de una aplicación similar al Google Play de Android, donde
poder descargar aplicaciones (apks)
Contiene incluso una opción donde muestra aplicaciones potencialmente peligrosas:

Algunas capturas más de dentro de la aplicación:

También podría gustarte