Saltar a contenido

La lista de verificación de seguridad de aplicaciones móviles 2025 para iOS y Android

Asegurar el código fuente

  • Control de acceso al código con privilegios mínimos; ramas protegidas y revisiones obligatorias.
  • Análisis estático y escaneo de secretos integrados en CI/CD; bloquear fusiones ante hallazgos de alta gravedad.
  • Higiene de la estación de trabajo de los desarrolladores y prevención de pérdida de datos (DLP) para repositorios y artefactos de compilación.
  • Higiene de dependencias y de la cadena de suministro (bloquear versiones, monitorear).
  • Utilizar herramientas dedicadas de gestión de secretos (ej. HashiCorp Vault, AWS Secrets Manager o GitHub Secrets) en lugar de almacenar secretos en archivos .env o archivos de configuración.
  • Asegurar los artefactos de compilación en repositorios de artefactos, controlar quién puede acceder y promover las compilaciones a producción.
  • Cero secretos codificados de forma rígida, cero valores predeterminados de criptografía insegura, cobertura consistente de revisión de código.

Autenticación (MFA) y seguridad de sesiones

  • Autenticación multifactor (MFA), con preferencia por factores basados en aplicaciones o notificaciones push en lugar de SMS cuando sea posible.
  • Bloqueo de cuenta y autenticación reforzada (step-up) para acciones sensibles.
  • Higiene de sesión: tokens de corta duración, almacenamiento seguro para los tokens de actualización (refresh tokens) y flujos sólidos de cierre de sesión/rotación.
  • Protecciones contra la reutilización de OTP, umbrales de bloqueo consistentes y resistencia a la fuerza bruta y los ataques de repetición.

Cifrar las comunicaciones de extremo a extremo (TLS + fijación de certificado)

  • Forzar TLS moderno; no permitir endpoints en texto claro y la degradación de protocolos.
  • Implementar la fijación de certificados SSL/TLS para reducir el riesgo de MITM en redes no confiables.
  • Validar todos los certificados y fallar por defecto (fail closed) en caso de errores de verificación.
  • Cero contenido mixto o respaldos (fallbacks) a transportes inseguros; rotación planificada de fijaciones y una ruta de desfijación de emergencia.

Pruebas de penetración y pruebas de seguridad continuas

  • Combinar el escaneo automatizado con pruebas manuales dirigidas por expertos para fallas de lógica empresarial.
  • Incluir vectores de ataque específicos de móviles: ataques de canal lateral (side-channel), volcados de memoria (memory dumps), escalada de privilegios locales y exploits de comunicación entre procesos (IPC).
  • Incluir pruebas para funciones específicas de la aplicación, como enlaces profundos (deep linking), esquemas de URL personalizados y manejadores de intenciones (intent handlers en Android) para identificar desvíos de autorización o fugas de datos.
  • Incluir fuerza bruta, fuzzing y pruebas de inyección que reflejen el comportamiento real de los atacantes.
  • Tratar los hallazgos como elementos del backlog con SLAs de corrección; re-probar y capturar la evidencia de su cierre.
  • Cobertura de pruebas sobre autenticación, gestión de sesiones, almacenamiento, llamadas a API y protecciones del lado del cliente.

Gobernanza de la seguridad de las API

  • Mantener un inventario de todas las API consumidas por dispositivos móviles, con documentación y propietarios.
  • Forzar una autenticación y autorización sólidas; aplicar el principio de mínimo privilegio (PoLP).
  • Añadir mediación (políticas de puerta de enlace), limitación de velocidad (rate limiting), validación de entradas y registro/monitoreo consistentes.
  • Prevención de autorizaciones defectuosas a nivel de objeto (IDOR), fallas de inyección y configuraciones erróneas.

Protección en tiempo de ejecución (RASP) y resistencia a la manipulación

  • Detectar jailbreak/root, frameworks de hooking, la conexión de depuradores y el uso de emuladores. (Tenga en cuenta que las comprobaciones en tiempo de ejecución para jailbreak/root son imperfectas; los atacantes sofisticados pueden eludir las comprobaciones estáticas).
  • Responder de forma adaptativa: bloquear, degradar la funcionalidad o solicitar una nueva autenticación; registrar siempre las señales.
  • Las comprobaciones en tiempo de ejecución no se pueden eludir trivialmente; las respuestas no dañan la UX en condiciones benignas.

Almacenamiento seguro de datos (Keychain/Keystore)

  • Nunca almacenar secretos en texto claro; usar los almacenes de claves (keystores) de la plataforma para las credenciales y las claves.
  • Hashear y salar las contraseñas del lado del servidor con algoritmos modernos; cifrar los registros sensibles en reposo.
  • Proteger las copias de seguridad y el almacenamiento transitorio; implementar el borrado seguro de datos sensibles.
  • Ningún dato sensible aparece en registros, capturas de pantalla, cachés o copias de seguridad sin cifrar.

Registros, monitoreo y preparación ante incidentes

  • Crear pistas de auditoría para acciones sensibles y cambios de estado; centralizar la telemetría.
  • Alertar sobre comportamientos anómalos y comprobaciones de seguridad fallidas; investigar y ajustar regularmente.
  • Mantener manuales (runbooks) y practicar simulacros de incidentes para reducir el tiempo de detección/respuesta.
  • Los registros evitan exponer datos sensibles pero conservan suficiente contexto para investigar.

Actualizaciones, dependencias y política de SO mínimo

  • Integrar herramientas de Análisis de Composición de Software (SCA) en el CI/CD para detectar dependencias vulnerables en el momento de la confirmación (commit). Utilizar archivos de bloqueo (Podfile.lock, package-lock.json, gradle.lock) para garantizar compilaciones reproducibles y evitar sorpresas de dependencias transitivas.
  • Enviar actualizaciones frecuentes; parchear rápidamente SDKs y dependencias de terceros vulnerables.
  • Definir y revisar una política de versión mínima del SO; descontinuar las versiones inseguras del SO con mensajes claros al usuario.
  • Proporcionar avisos dentro de la aplicación para actualizaciones de seguridad importantes.
  • Cero uso de APIs obsoletas que debiliten la seguridad; el riesgo de las dependencias se monitorea y se toman medidas.

Protecciones contra la ingeniería inversa

  • Aplicar ofuscación de código, eliminación de símbolos y comprobaciones contra manipulaciones.
  • Detectar los intentos comunes de instrumentación dinámica y responder en consecuencia.
  • Cifrar los activos locales sensibles; validar la integridad de la aplicación al inicio y durante el tiempo de ejecución.
  • Las protecciones se superponen para ralentizar a los atacantes y aumentar el esfuerzo sin perjudicar el rendimiento.

Cumplimiento y preparación para auditorías

  • Mapear su lista de verificación a los requisitos reconocidos de seguridad móvil y a las necesidades del sector.
  • Mantener evidencia: políticas, informes de pruebas, confirmaciones de re-pruebas y registros de cambios.
  • Considerar las obligaciones de la industria cuando corresponda (privacidad y directrices del sector financiero).
  • Demostrar la cobertura de los controles y el cierre de los hallazgos durante auditorías o evaluaciones.

Hoja de ruta de fortalecimiento de seguridad de 90 días

graph TD H1["<b>Semanas 1-2: Línea base y Política</b>"] A1["Inventariar apps, SDKs, APIs<br/>Documentar flujos de datos y rutas de amenaza"] A2["Publicar políticas de código, secretos y criptografía<br/>Habilitar SAST y escaneo de secretos"] H2["<b>Semanas 3-6: Fortalecimiento Central</b>"] B1["Forzar TLS y fijación de certificados<br/>Documentar la rotación y desfijación de emergencia"] B2["Fortalecer autenticación y gestión de sesiones<br/>Bloqueos y manejo de OTP"] B3["Centralizar registros y habilitar comprobaciones en tiempo de ejecución<br/>Detección de Root/jailbreak/hooking"] H3["<b>Semanas 7-10: Profundidad y Cobertura</b>"] C1["Pruebas de API: autorización, inyección, IDOR"] C2["Fortalecer almacenamiento: Keystore/Keychain<br/>Registros cifrados y borrado seguro"] C3["Fuzzing y pruebas negativas<br/>Iniciar cadencia trimestral de pentesting"] H4["<b>Semanas 11-13: Aseguramiento y Escala</b>"] D1["Ofuscación y comprobaciones contra manipulación"] D2["Re-probar hallazgos y mantener evidencias<br/>Revisar política de SO mínimo"] D3["Publicar registro de cambios y marcador de última actualización"] H1 --> A1 --> A2 --> H2 --> B1 --> B2 --> B3 --> H3 --> C1 --> C2 --> C3 --> H4 --> D1 --> D2 --> D3 classDef phase fill:#D5E4F2,stroke:#333,stroke-width:2px,color:#000,font-weight:bold classDef task fill:#E8F4F8,stroke:#666,stroke-width:1px,color:#000 class H1,H2,H3,H4 phase class A1,A2,B1,B2,B3,C1,C2,C3,D1,D2,D3 task

Errores comunes a evitar

  • Almacenar tokens o PII en texto claro (registros, cachés, copias de seguridad).
  • Confiar únicamente en la validación del lado del cliente; sin autorización en el lado del servidor.
  • Descuidar las auditorías de SDKs de terceros.
  • Fijar (pinning) sin rotación segura ni desfijación de emergencia.
  • Autorización débil → IDOR / escalada de privilegios.
  • Dependencia excesiva en una única comprobación en tiempo de ejecución versus defensas superpuestas.
  • Tratar un pentest como terminado sin re-pruebas y sin evidencias.

Tabla de comprobación rápida

Área Requisitos
Código y CI Análisis estático + escaneo de secretos; ramas protegidas y revisiones obligatorias
Auth y Sesión MFA más allá de los SMS cuando sea posible; bloqueos; tokens de corta duración y almacenamiento seguro
Transporte TLS moderno forzado; fijación de certificados con rotación planificada y respaldo seguro
APIs Inventario; PoLP; limitación de velocidad; middleware de autorización; registros consistentes
Pruebas Escaneos automatizados + pentests por expertos; fuzzing; re-pruebas con evidencia
Tiempo de ejecución Detección Root/jailbreak/hooking/depuradores; respuestas adaptativas
Almacenamiento Uso de Keystore/Keychain; registros cifrados; borrado seguro; protección de copias de seguridad
Observabilidad Registros centralizados; alertas; runbooks; simulacros regulares
Actualizaciones Higiene de dependencias y SDKs; política clara de SO mínimo
Ing. Inversa Ofuscación; contra manipulación; comprobaciones de integridad; activos cifrados
Cumplimiento Controles mapeados, repositorio de evidencias, registro de cambios y etiqueta de "última actualización"