Contenido
Verificaciones de Seguridad en Aplicaciones Móviles
- M1 - Uso inapropiado de la Plataforma
- M2 - Almacenamiento de Datos Inseguro
- M3 - Comunicación Insegura
- M4 - Autenticación Insegura
- M5 - Criptografía Insuficiente
- M6 - Autorización Insegura
- M7 - Calidad del Código en el Cliente
- M8 - Manipulación de Código
- M9 - Ingeniería Inversa
- M10 - Funcionalidades Extrañas
1. Interacción con la plataforma (M1 - Uso inapropiado de la Plataforma)
| Identificador | Descripción | Ayuda | Severidad | CVSS |
|---|---|---|---|---|
| SEG-1.1 | Verificar que la aplicación solo requiera el conjunto mínimo de permisos necesarios. | La aplicación móvil solicita más permisos de los estrictamente necesarios para su funcionamiento | Alta | 7.4 |
| SEG-1.2 | Verificar que todas las entradas de fuentes externas y el usuario estén validados y, si es necesario, desinfectados. Esto incluye datos recibidos a través de la interfaz de usuario, mecanismos de IPC como intentos, URLs personalizadas y fuentes de red. | La aplicación móvil no valida ni depura adecuadamente la información que recibe desde el usuario, la red u otras fuentes externas | Media | 6.4 |
| SEG-1.3 | Verificar que la aplicación no exporta funcionalidad sensible a través de esquemas de URL personalizados, a menos que estos mecanismos estén protegidos adecuadamente. | La aplicación móvil expone funciones sensibles mediante esquemas de URL personalizados sin protección adecuada | Baja | 3.1 |
| SEG-1.4 | Verificar que la aplicación no exporta funcionalidad sensible a través de las instalaciones de IPC, a menos que estos mecanismos estén protegidos adecuadamente. | La aplicación móvil expone funciones sensibles a través de mecanismos de comunicación interna sin medidas de seguridad | Media | 6.0 |
| SEG-1.5 | Verificar que JavaScript esté deshabilitado en WebViews a menos que se requiera explícitamente. | La aplicación móvil permite la ejecución de JavaScript en WebViews sin que sea necesario | Media | 5.3 |
| SEG-1.6 | Verificar que las WebViews estén configuradas para permitir sólo el conjunto mínimo de handlers de protocolos necesarios (idealmente, solo https). Los handlers potencialmente peligrosos, como archivo, teléfono y aplicación-id, están deshabilitados. | La aplicación móvil permite protocolos o manejadores peligrosos en WebViews en lugar de restringirse a HTTPS | Baja | 3.1 |
| SEG-1.7 | Si los métodos nativos de la aplicación están expuestos a la WebView, verificar que la WebView sólo presente JavaScript dentro del paquete de la aplicación. | La aplicación móvil expone métodos nativos a la WebView sin limitar el uso de JavaScript únicamente al código de la propia aplicación | Baja | 3.5 |
| SEG-1.8 | Verificar que la serialización de objetos, si la hay, se implementa utilizando las API seguras de serialización. | La aplicación móvil utiliza mecanismos inseguros de serialización de objetos | Media | 4.2 |
2. Almacenamiento de datos y privacidad (M2 - Almacenamiento de Datos Inseguro)
| Identificador | Descripción | Ayuda | Severidad | CVSS |
|---|---|---|---|---|
| SEG-2.1 | Verificar que las instalaciones de almacenamiento de credenciales del sistema se utilicen de forma adecuada para almacenar datos confidenciales, como credenciales de usuario o claves criptográficas. | La aplicación móvil no utiliza adecuadamente el almacenamiento seguro del sistema para guardar credenciales y/o claves criptográficas | Media | 5.3 |
| SEG-2.2 | Verificar que no se escriban datos confidenciales en los registros de la aplicación (logs). | La aplicación móvil registra datos confidenciales en los logs | Media | 4.2 |
| SEG-2.3 | Verificar que no se compartan datos confidenciales con terceros a menos que sea una parte necesaria de la arquitectura. | La aplicación móvil comparte información sensible con terceros sin que sea estrictamente necesario | Baja | 2.6 |
| SEG-2.4 | Verificar que la memoria caché del teclado esté desactivada en las entradas de texto que procesan datos confidenciales. | La aplicación móvil permite que el teclado guarde en caché entradas de texto que contienen datos confidenciales | Media | 6.8 |
| SEG-2.5 | Verificar que el portapapeles esté desactivado en los campos de texto que pueden contener datos confidenciales. | La aplicación móvil permite copiar al portapapeles información sensible introducida en campos de texto | Baja | 2.4 |
| SEG-2.6 | Verificar que no haya datos sensibles expuestos a través de los mecanismos de IPC. | La aplicación móvil expone datos sensibles a través de mecanismos de comunicación interna | Media | 4.9 |
| SEG-2.7 | Verificar que no se muestren datos confidenciales, como contraseñas y números de tarjetas de crédito, a través de la interfaz del usuario o que se filtren capturas de pantalla. | La aplicación móvil expone datos sensibles, a través de la interfaz del usuario o que se filtren capturas de pantalla | Media | 4.6 |
| SEG-2.8 | Verificar que no se incluyan datos confidenciales en las copias de seguridad. | La aplicación móvil incluye información confidencial en las copias de seguridad | Media | 5.7 |
| SEG-2.9 | Verificar que la aplicación elimine los datos confidenciales de las vistas cuando están en segundo plano. | La aplicación móvil no elimina la información sensible de las vistas cuando pasa a segundo plano | Baja | 2.4 |
| SEG-2.10 | Verificar que la aplicación no contenga datos confidenciales en la memoria más tiempo de lo necesario y que la memoria se borra explícitamente después de su uso. | La aplicación móvil conserva datos confidenciales en memoria más tiempo del necesario y no los borra de forma segura después de su uso | Media | 4.7 |
| SEG-2.11 | Verificar que la aplicación aplique una política mínima de seguridad de acceso al dispositivo, como solicitar al usuario que establezca un código de acceso del dispositivo. | La aplicación móvil no implementa una política básica de seguridad de acceso en el dispositivo | Baja | 3.8 |
| SEG-2.12 | Verificar que la aplicación eduque al usuario sobre los tipos de información de identificación personal procesada, así como sobre las mejores prácticas de seguridad que el usuario debe seguir para usar la aplicación. | La aplicación móvil no educa al usuario sobre los tipos de información de identificación personal procesada, así como sobre las mejores prácticas de seguridad que éste debe seguir para su uso | Baja | 1.6 |
3. Comunicación de red (M3 - Comunicación Insegura)
| Identificador | Descripción | Ayuda | Severidad | CVSS |
|---|---|---|---|---|
| SEG-3.1 | Verificar que los datos estén encriptados en la red usando TLS. El canal seguro se usa de manera consistente en toda la aplicación. | La aplicación móvil transmite datos sin cifrado adecuado porque no utiliza el protocolo TLS de forma consistente en toda la comunicación | Alta | 7.5 |
| SEG-3.2 | Verificar que la configuración de TLS esté en línea con las mejores prácticas actuales, en la medida en que sean compatibles con el sistema operativo móvil. | La aplicación móvil utiliza una implementación del protocolo TLS débil o desactualizada | Media | 5.9 |
| SEG-3.3 | Verificar que la aplicación comprueba el certificado X.509 del punto extremo remoto cuando se establezca el canal seguro. Sólo se aceptan certificados firmados por una CA válida. | La aplicación móvil no valida correctamente el certificado X.509 del servidor, permitiendo aceptar certificados falsos o no confiables | Alta | 8.5 |
| SEG-3.4 | Verificar que la aplicación utiliza su propio almacén de certificados o fija el endpoint o la clave pública y, posteriormente, no establece conexiones con los puntos finales que ofrecen un certificado o clave diferente, incluso si está firmado por una CA confiable. | La aplicación móvil no implementa verificación estricta de certificados aceptando certificados, aunque no sean los esperados | Baja | 3.7 |
| SEG-3.5 | Verificar que la aplicación no dependa de un solo canal de comunicación inseguro (correo electrónico o SMS) para operaciones críticas, como inscripciones y recuperación de cuentas. | La aplicación móvil depende de canales de comunicación inseguros para operaciones críticas | Alta | 7.1 |
| SEG-3.6 | Verificar que la aplicación solo dependa de bibliotecas actualizadas de conectividad y seguridad. | La aplicación móvil emplea bibliotecas de conectividad y seguridad desactualizadas y/o vulnerables | Media | 6.5 |
4. Autenticación y administración de sesiones (M4 - Autenticación Insegura y M6 -Autorización Insegura)
| Identificador | Descripción | Ayuda | Severidad | CVSS |
|---|---|---|---|---|
| SEG-4.1 | Verificar que, si la aplicación proporciona a los usuarios acceso a un servicio remoto, se realiza una forma de autenticación aceptable, como la autenticación de nombre de usuario / contraseña en el endpoint remoto. | La aplicación móvil permite el acceso a un servicio remoto sin implementar un mecanismo de autenticación adecuado | Alta | 8.1 |
| SEG-4.2 | Verifique que el punto extremo remoto use identificadores de sesión generados aleatoriamente, si se usa la administración clásica de sesiones del lado del servidor, para autenticar las solicitudes del cliente sin enviar las credenciales del usuario. | El servidor emplea identificadores de sesión predecibles en lugar de valores aleatorios | Media | 5.6 |
| SEG-4.3 | Verifique que el punto extremo remoto utilice tokens firmados del lado del servidor, si se utiliza la autenticación sin estado, para autenticar las solicitudes del cliente sin enviar las credenciales del usuario. | El servidor no emplea tokens firmados desde el lado del servidor lo que permite falsificar solicitudes del cliente | Alta | 7.3 |
| SEG-4.4 | Verificar que el punto extremo remoto finaliza la sesión existente cuando el usuario cierra la sesión. | El servidor no finaliza correctamente la sesión cuando el usuario cierra sesión en la aplicación móvil | Media | 6.6 |
| SEG-4.5 | Verificar que exista una política de contraseñas y se aplique en el punto final remoto. | El servidor carece de una política de contraseñas robusta o no la aplica adecuadamente | Media | 5.6 |
| SEG-4.6 | Verificar que el punto extremo remoto implemente un retroceso exponencial o que bloquee temporalmente la cuenta de usuario cuando se envían credenciales de autenticación incorrectas una cantidad excesiva de veces. | El servidor no bloquea ni ralentiza los intentos de autenticación tras múltiples fallos | Alta | 7.3 |
| SEG-4.7 | Verificar que la autenticación biométrica, si la hay, no está unida a un evento (es decir, que utiliza una API que simplemente devuelve "true" o "false"). En cambio, se basa en desbloquear el llavero / almacén de claves. | La aplicación móvil implementa la autenticación biométrica de forma inadecuada | Media | 4.1 |
| SEG-4.8 | Verificar que las sesiones finalicen en el punto final remoto después de un período de inactividad predefinido. | El servidor mantiene sesiones activas indefinidamente y no las expira tras un periodo de inactividad | Media | 5.0 |
| SEG-4.9 | Verificar que exista un segundo factor de autenticación en el punto extremo remoto y que el requisito 2FA se aplique de manera coherente. | El servidor no implementa un segundo factor de autenticación o no lo aplica de manera adecuada | Media | 4.2 |
| SEG-4.10 | Verificar que se requiera autenticación incremental para habilitar acciones que se ocupen de datos o transacciones confidenciales. | El servidor permite ejecutar acciones sensibles sin exigir autenticación adicional (incremental) | Media | 6.2 |
| SEG-4.11 | Verificar que la aplicación informe al usuario de todas las actividades de inicio de sesión con su cuenta. Los usuarios pueden ver una lista de los dispositivos utilizados para acceder a la cuenta y bloquear dispositivos específicos. | El servidor no notifica al usuario sobre accesos a su cuenta ni permite gestionar los dispositivos autorizados | N/A | N/A |
5. Criptografía (M5 - Criptografía Insuficiente)
| Identificador | Descripción | Ayuda | Severidad | CVSS |
|---|---|---|---|---|
| SEG-5.1 | Verificar que la aplicación no dependa de la criptografía simétrica con claves codificadas como único método de encriptación. | La aplicación móvil depende únicamente de criptografía simétrica con claves incrustadas en el código | Media | 4.6 |
| SEG-5.2 | Verificar que la aplicación utiliza implementaciones comprobadas de primitivas criptográficas. | La aplicación móvil emplea primitivas criptográficas propias o no comprobadas en lugar de implementaciones reconocidas y seguras | Media | 5.9 |
| SEG-5.3 | Verificar que la aplicación utiliza primitivas criptográficas que son apropiadas para el caso de uso particular, configuradas con parámetros que se adhieren a las mejores prácticas de la industria. | La aplicación móvil emplea primitivas criptográficas mal configuradas o inadecuadas para el caso de uso | Media | 5.9 |
| SEG-5.4 | Verificar que la aplicación no utiliza protocolos criptográficos o algoritmos que, en general, se consideran obsoletos por motivos de seguridad. | La aplicación móvil utiliza algoritmos o protocolos criptográficos obsoletos considerados inseguros | Media | 5.9 |
| SEG-5.5 | Verificar que la aplicación no vuelva a utilizar la misma clave criptográfica para múltiples propósitos. | La aplicación móvil reutiliza la misma clave criptográfica para diferentes funciones | Baja | 3.1 |
| SEG-5.6 | Verificar que todos los valores aleatorios se generen utilizando un generador de números aleatorios suficientemente seguro. | La aplicación móvil genera valores aleatorios con métodos inseguros en lugar de un generador de números aleatorios criptográficamente fuerte | Baja | 3.7 |
6. Calidad del código y configuraciones de compilación (M7 - Calidad de código en el Cliente)
| Identificador | Descripción | Ayuda | Severidad | CVSS |
|---|---|---|---|---|
| SEG-6.1 | Verificar que la aplicación esté firmada y provista con un certificado válido. | La aplicación móvil no está firmada o utiliza un certificado inválido | Alta | 7.5 |
| SEG-6.2 | Verificar que la aplicación se haya creado en modo de lanzamiento, con las configuraciones apropiadas para una compilación de lanzamiento (p. Ej., non-debuggable). | La aplicación móvil se distribuye en modo depuración exponiendo configuraciones inseguras | Media | 4.3 |
| SEG-6.3 | Verificar que los símbolos de depuración se hayan eliminado de los binarios nativos. | La aplicación móvil conserva símbolos de depuración en los binarios nativos | N/A | N/A |
| SEG-6.4 | Verificar que se haya eliminado el código de depuración y que la aplicación no registre errores detallados ni mensajes de depuración. | La aplicación móvil incluye código o mensajes de depuración detallados que revelan información confidencial | Baja | 2.4 |
| SEG-6.5 | Verificar que todos los componentes de terceros usados por la aplicación, como librerías y frameworks, estén identificados y verificados para detectar vulnerabilidades conocidas. | La aplicación móvil emplea librerías y/o frameworks de terceros con vulnerabilidades conocidas | N/A | N/A |
| SEG-6.6 | Verificar que la aplicación capte y maneje posibles excepciones. | La aplicación móvil no gestiona correctamente excepciones | Baja | 3.7 |
| SEG-6.7 | Verificar que la lógica de manejo de errores en los controles de seguridad niega el acceso por defecto. | La aplicación móvil no implementa una lógica adecuada para el manejo de errores en los controles de seguridad permitiendo acceso en lugar de denegarlo por defecto | Baja | 3.7 |
| SEG-6.8 | Verificar que en el código no administrado, la memoria se asigna, libera y usa de forma segura. | El código no administrado de la aplicación móvil se gestiona de forma insegura | Baja | 1.8 |
| SEG-6.9 | Verificar que las funciones de seguridad gratuitas que ofrece la cadena de herramientas, como byte-code minification, stack protection, PIE support y el conteo automático de referencias, estén activadas. | La aplicación móvil no desactiva las funciones de seguridad del compilador y la cadena de herramientas | Alta | 7.5 |
7. Impedir el análisis dinámico y la manipulación (M8 - Manipulación de Código y M9 - Ingeniería Inversa)
| Identificador | Descripción | Ayuda | Severidad | CVSS |
|---|---|---|---|---|
SEG-7.1 | Verificar que la aplicación implemente dos o más métodos funcionalmente independientes de detección de root y responda a la presencia de un dispositivo rooteado ya sea alertando al usuario o finalizando la aplicación. | La aplicación móvil no detecta si el dispositivo está rooteado | Baja | 3.7 |
| SEG-7.2 | La ofuscación es aplicada a las defensas programáticas, lo que a su vez impide la des-ofuscación mediante el análisis dinámico. | La aplicación móvil no aplica ofuscación a sus defensas, facilitando que un atacante realice ingeniería inversa o análisis dinámico para deshabilitarlas | Baja | 3.9 |
8. Arquitectura, diseño y modelado de amenazas (M10 - Funcionalidades extrañas)
| Identificador | Descripción | Ayuda | Severidad | CVSS |
|---|---|---|---|---|
| SEG-8.1 | Verificar que todos los componentes de la aplicación estén identificados y se sepa que son necesarios. | La aplicación móvil no identifica ni controla sus componentes, lo que permite la inclusión de elementos innecesarios o inseguros | N/A | N/A |
| SEG-8.2 | Verificar que los controles de seguridad nunca se apliquen solo en el lado del cliente, sino en los respectivos enpdpoints remotos. | La aplicación móvil aplica controles de seguridad únicamente en el lado del cliente, sin validación en el servidor | N/A | N/A |
| SEG-8.3 | Verificar que se haya definido una arquitectura de alto nivel para la aplicación móvil y todos los servicios remotos conectados y que la seguridad se haya abordado en esa arquitectura. | La aplicación móvil carece de una arquitectura de alto nivel definida que contemple la seguridad en la integración con servicios remotos | N/A | N/A |
| SEG-8.4 | Verificar que los datos considerados sensibles en el contexto de la aplicación móvil estén claramente identificados. | La aplicación móvil no tiene identificados de forma explícita los datos sensibles que maneja | N/A | N/A |
| SEG-8.5 | Verificar que todos los componentes de la aplicación estén definidos en términos de las funciones de negocio y / o funciones de seguridad que proporcionan. | Los componentes de la aplicación móvil no están descritos en función de su rol de negocio o de seguridad, lo que dificulta su control | N/A | N/A |
| SEG-8.6 | Verificar que existe un mecanismo para aplicar las actualizaciones de la aplicación móvil. | La aplicación móvil no dispone de un mecanismo seguro para aplicar actualizaciones | N/A | N/A |
| SEG-8.7 | Verificar que las pruebas de seguridad se realicen como parte del ciclo de vida de desarrollo. | La aplicación móvil no integra pruebas de seguridad dentro del ciclo de vida de desarrollo | N/A | N/A |
FECHA ACTUALIZACIÓN
25/11/2025
Índice