General
La siguiente lista muestra los requisitos generales de seguridad que la aplicación debe seguir.
Usar la variante Release del SDK de Thales para aplicaciones publicadas
Antes de publicar la aplicación en la App Store de iOS y en Google Play Store, asegúrese de que la aplicación esté configurada para usar la variante release del SDK.
El uso de una variante de SDK de depuración en una aplicación de producción puede conllevar graves implicaciones de seguridad, potencialmente exponiendo datos sensibles relacionados con los usuarios finales.
Eliminación de símbolos de depuración
La aplicación no debe contener símbolos de depuración. Esta práctica aumenta la complejidad de los esfuerzos de ingeniería inversa y evita la identificación fácil de variables, estructuras y lógica sensibles.
Prevención de fugas de datos sensibles
Es necesario un manejo cuidadoso del ciclo de vida de la aplicación para evitar que los datos sensibles se filtren mientras está en segundo plano. Se recomienda eliminar cualquier dato sensible mostrado en la interfaz de usuario antes de pasar a un estado en segundo plano. Todos los datos sensibles deben borrarse o cifrarse hasta que la aplicación se restaure al primer plano. Se debe evitar el registro (logging) de cualquier dato sensible.
Ofuscación de código
Para aumentar la dificultad de la ingeniería inversa de la aplicación:
Para aplicaciones Android, deben someterse a una ofuscación suficiente para ocultar nombres de clases, nombres de funciones y APIs públicas del SDK de Thales. Además, las cadenas sensibles utilizadas dentro de la aplicación deben estar ofuscadas.
Para aplicaciones iOS, se recomienda la ofuscación, pero no es obligatoria, debido a herramientas menos maduras en esta área.
Comunicación de red
Se recomienda encarecidamente que la aplicación use HTTPS para todas las comunicaciones de red con sus servidores. Se deben evitar los certificados autofirmados. Estas son las pautas recomendadas para el pinning de certificados:
Asegúrese de que el nombre de host coincida con el nombre Subject del certificado final (leaf).
Verifique que cada certificado en la cadena de certificados no esté caducado.
Verifique que la cadena de confianza sea válida y que la cadena de certificados se valide con el almacén de confianza del sistema.
Verifique que el SHA256 del hash del CA raíz o del certificado final coincida con el hash codificado (hardcoded) dentro de la aplicación.
Para datos confidenciales que contengan información de identificación personal (PII), se emplea una capa adicional de cifrado y mecanismos de autenticación al enviar los datos por TLS.
Protección RASP
Se recomienda encarecidamente que la aplicación utilice herramientas comerciales para habilitar la Protección de Aplicaciones en Tiempo de Ejecución (Runtime Application Self Protection). RASP. Esto ayudará a detectar root o jailbreak, intentos de hooking en la aplicación, depuración, manipulación de la aplicación y detección de emuladores.
Limitar el uso de logs
Hay que tener precaución al imprimir logs en el dispositivo, ya que pueden proporcionar información útil a los atacantes. Evite revelar información crítica en los registros, como PII o cualquier información sensible del usuario, para prevenir que los atacantes las exploten. Eliminar logs de la aplicación móvil puede lograrse mediante varios métodos, como usar herramientas de ofuscación o encapsular condicionalmente los registros con banderas de compilación para asegurarse de que se excluyan en las compilaciones de producción.
En Android, los logs son un recurso compartido que es accesible con el READ_LOGS permiso, y el registro inapropiado de información sensible del usuario puede conducir a fugas de datos no intencionadas hacia otras aplicaciones.
Adopción de prácticas de codificación segura
Siga prácticas establecidas de codificación segura como validación de entradas, gestión adecuada de la memoria, uso de funciones C seguras y evitar el uso de contenedores inmutables para almacenar datos sensibles. Se recomienda referirse a la Guía de referencia rápida de prácticas de codificación segura de OWASP para más detalles. Estas prácticas pueden hacerse cumplir utilizando herramientas de análisis estático de código como PMD o HP Fortify.
Auditorías y pruebas de penetración
Realice auditorías de arquitectura y del código fuente para evaluar a fondo la seguridad de la aplicación. Además, realice pruebas de penetración para simular ataques contra la aplicación y el dispositivo, así como otras capas del sistema. Esto ayudará a identificar vulnerabilidades y a evaluar la postura de seguridad general de la aplicación.
Evalúe la resiliencia de la seguridad de la aplicación
El Estándar de Verificación de Seguridad para Aplicaciones Móviles de OWASP MASVS establece los requisitos de seguridad básicos para aplicaciones móviles. Se recomienda encarecidamente usar esta lista de verificación para evaluar el estado de seguridad de su aplicación.
Última actualización
¿Te fue útil?