Android Class Load Hijacking
Secuestro de carga de clases en Android
Descripción
La aplicación carga un archivo jar/apk almacenado en una ubicación insegura.
Este proceso de carga puede ser secuestrado, lo que permite el acceso a datos privados y la ejecución de código arbitrario inesperado por parte de aplicaciones maliciosas.
Recomendación
Si utiliza DexClassLoader para cargar y ejecutar código DEX adicional:
- NO utilice un directorio con permisos de escritura para todos (como la tarjeta SD) para el dexPath.
- NO utilice un directorio con permisos de escritura para todos (como la tarjeta SD) para el ODEX (DEX optimizado, que es el segundo parámetro del constructor de DexClassLoader).
Si utiliza PathClassLoader para cargar y ejecutar recursos/jar adicionales:
- NO utilice un directorio con permisos de escritura para todos (como la tarjeta SD) para la ruta (path).
- NO utilice un directorio con permisos de escritura para todos (como la tarjeta SD) para libpath. Por defecto, el almacenamiento externo se monta con la bandera noexec para evitar la ejecución de cualquier binario nativo en el sistema de archivos montado.
Enlaces
Estándares
- OWASP_MASVS_L1:
- MSTG_PLATFORM_2
- OWASP_MASVS_L2:
- MSTG_PLATFORM_2
- CWE_TOP_25:
- CWE_22
- PCI_STANDARDS:
- REQ_2_2
- REQ_3_5
- REQ_6_2
- REQ_6_3
- REQ_11_3
- OWASP_MASVS_v2_1:
- MASVS_CODE_4
- SOC2_CONTROLS:
- CC_2_1
- CC_4_1
- CC_7_1
- CC_7_2
- CC_7_4
- CC_7_5
- HIPAA_CONTROLS:
- SECURITY251
- SECURITY212
- SECURITY213