Las mejores prácticas para desarrollar una app móvil segura

Usar criptografía fuerte, establecer mecanismos de autenticación sólidos, verificar los datos entrantes… Repasamos las mejores prácticas para desarrollar una app móvil segura.
Infectar millones de móviles es «fácil» gracias a las apps
Infectar 11 millones de móviles. Esto es lo que consiguieron, hace unos meses, los delincuentes detrás del malware Necro. ¿Cómo lo lograron? Mediante ataques a la cadena de suministro de kits de desarrollo de software (SDK por sus siglas en inglés) empleados por dos aplicaciones móviles legítimas usadas por millones de usuarios en todo el mundo.
Este caso no es anecdótico. Los actores maliciosos tienen a las apps móviles en su punto de mira. Y no nos estamos refiriendo solo a aplicaciones particularmente sensibles como las de índole financiero o las ligadas a comunicaciones personales y profesionales (mensajería instantánea, emails…) ¿Por qué? Las aplicaciones móviles juegan un papel cada vez más relevante en nuestro día a día.
Además, en nuestros teléfonos móviles se van acumulando apps que, en muchos casos no usamos de forma habitual y a las que concedemos permisos desproporcionados como poder acceder a nuestros contactos, carrete de fotos o geolocalización.
¿Qué podemos hacer para reducir los riesgos en el desarrollo de apps?
Ante el crecimiento exponencial de las apps móviles y las malas prácticas de gran parte de los usuarios, ¿qué pueden hacer los desarrolladores?
La fundación OWASP, un referente en la elaboración de metodologías en materia de ciberseguridad, ha elaborado un listado de buenas prácticas para desarrollar una app móvil segura y prevenir los ciberataques.
Partiendo de lo establecido en MASVS, el estándar de verificación de la seguridad de aplicaciones móviles de OWASP, vamos a listar las mejores prácticas para desarrollar una app móvil segura que se deben tener en cuenta para proteger estos activos críticos para las empresas y los usuarios que las emplean.
Almacenar de manera segura los datos sensibles y evitar la fuga de información
La forma en que una aplicación móvil almacena la información es una cuestión de vital importancia. ¿Por qué? Las apps manejan datos particularmente sensibles como información personal o claves API.
Entre las mejores prácticas para desarrollar una app móvil segura se encuentra la necesidad de que los datos almacenados estén debidamente protegidos, sin importar si se almacenan de forma interna o la ubicación de almacenamiento es pública y pueden tener acceso a ellos otras apps instaladas en el móvil.
Igualmente, es fundamental que los desarrolladores implementen mecanismos para evitar fugas de información como consecuencia de que los datos confidenciales que maneja la app se expongan.
Usar criptografía para encriptar los datos sensibles y gestionar las claves criptográficas a lo largo de su ciclo de vida
Otra de las mejores prácticas para desarrollar una app móvil segura consiste en emplear mecanismos criptográficos robustos para proteger la información sensible empleada por la aplicación.
El uso de la criptografía es crítico a la hora de desarrollar apps porque la probabilidad de que un actor hostil tenga acceso físico a un móvil es mayor que la de acceder a otra clase de dispositivos.
Asimismo, los desarrolladores deben ser conscientes de que la criptografía más potente puede verse comprometida si no se lleva a cabo una gestión integral y eficaz de las claves criptográficas. Por eso, entre las mejores prácticas para desarrollar una app móvil segura se encuentra una gestión de claves integral que abarque desde su generación hasta su protección, pasando por su almacenamiento seguro.
Implementar protocolos de autenticación y autorización seguros para prevenir accesos indebidos a la app
Como apuntamos antes, los móviles presentan, a nivel de seguridad, una particularidad que los desarrolladores deben tener siempre en cuenta: pueden extraviarse o ser sustraídos con relativa facilidad.
Por eso, la implementación de protocolos de autenticación y autorización en las apps móviles en general, y en las que se conectan a un servicio remoto en particular, es fundamental para prevenir accesos no autorizados a las funcionalidades de las aplicaciones o a datos sensibles de los usuarios.
¿Qué buenas prácticas en materia de autenticación y autorización deben seguir los desarrolladores?
- Las aplicaciones que se conectan a un endpoint remoto deben garantizar el uso adecuado de los protocolos.
- Las apps en las que se realiza una autenticación local de los usuarios deben contar con mecanismos de autenticación bien implementados como datos biométricos o PIN.
- Es recomendable que se establezca un mecanismo de autenticación adicional para realizar acciones sensibles dentro de la aplicación. Por ejemplo, establecer la autenticación multifactor.
Garantizar que la aplicación establece conexiones seguras mediante protocolos como TLS
Dentro del catálogo de las mejores prácticas para desarrollar una app móvil segura se deben incluir el uso de protocolos y mecanismos que garanticen la seguridad de los datos en tránsito entre la app y el endpoint remoto.
Así, es recomendable que los desarrolladores implementen los protocolos necesarios para cifrar los datos y autenticar el endpoint remoto, como el protocolo TLS.
Además, deben asegurarse de no emplear bibliotecas de terceros que puedan provocar que la aplicación establezca conexiones inseguras.
Comprobar que todas las interacciones de la aplicación con la plataforma móvil son seguras
Para fortalecer la seguridad de las apps móviles es imprescindible tener en cuenta la forma en que interaccionan con la plataforma móvil. ¿Por qué? Mediante estas interacciones se exponen datos y funcionalidades sensibles, lo que puede ser explotado por actores maliciosos para comprometer la seguridad de una aplicación.
A ello debemos sumar que las aplicaciones a menudo gestionan datos especialmente sensibles como contraseñas o información financiera.
Por ello, la misión de los desarrolladores es garantizar que la aplicación usa de manera segura:
- Los mecanismos IPC.
- Los WebViews.
- La interfaz de usuario.
De esta forma se puede evitar la fuga de datos críticos, la exposición de funciones confidenciales de la app o la exfiltración de información a través de mecanismos de la plataforma móvil como capturas de pantalla.

Verificar los datos entrantes, usar solo componentes de software sin vulnerabilidades conocidas e instaurar mecanismos de actualización forzosa
Al abordar las mejores prácticas para desarrollar una app móvil segura debemos tener en cuenta que es imprescindible que los desarrolladores lleven a cabo prácticas de desarrollo de código seguro para evitar vulnerabilidades provocadas por la entrada de datos alterados por actores maliciosos o el uso de componentes de software con vulnerabilidades conocidas, los cuales pueden tener un CVE con exploit público.
¿Qué buenas prácticas recomienda OWASP para garantizar la calidad del código de la aplicación, evitar ataques de inyección y la explotación de vulnerabilidades conocidas?
- Establecer que la aplicación no pueda soportar versiones desactualizadas del sistema operativo del móvil. ¿Por qué? Cada nueva versión del sistema operativo incorpora protecciones de seguridad.
- Implementar un mecanismo para que los usuarios no puedan emplear una aplicación móvil hasta que la actualicen con la última versión. De tal forma que se instalen los parches de seguridad lanzados para subsanar vulnerabilidades conocidas.
- Usar solo componentes de software que no presenten vulnerabilidades conocidas.
- Validar y sanear todos los datos que llegan desde los diversos puntos de entrada antes de emplearlos y, así, prevenir ataques de inyección SQL o XSS.
Añadir capas de controles de seguridad para dificultar la ingeniería inversa y el robo de propiedad intelectual y datos sensibles
OWASP recomienda a los desarrolladores poner en marcha medidas de seguridad como la ofuscación de código o el uso de mecanismos antimanipulación. ¿Con qué fin?
- Incrementar la resistencia de las apps móviles frente a ataques de ingeniería inversa.
- Evitar las graves consecuencias económicas, legales y reputacionales derivadas de que los actores maliciosos puedan acceder a propiedad intelectual y datos sensibles.
- Dificultar que los actores hostiles puedan comprender cómo funciona la aplicación realizando análisis estáticos y dinámicos.
- Prevenir la manipulación de la aplicación mientras es ejecutada y salvaguardar la integridad de sus funcionalidades.
Minimizar el acceso de la aplicación a datos sensibles, evitar la identificación del usuario y permitir que este tenga control sobre sus datos
La protección de datos es una de las grandes problemáticas de la era digital. Por ello, el Reglamento General de Protección de Datos (RGPD) es extraordinariamente garantista en lo que respecta a la información privada de ciudadanos y empresas. Y esto, evidentemente, afecta al desarrollo de aplicaciones móviles que emplean datos críticos: información personal, datos de tarjetas de crédito o cuentas bancarias, contraseñas, datos de contacto…
Por eso, entre las mejores prácticas para desarrollar una app móvil segura no podían faltar prácticas centradas en prevenir la exfiltración de información de los usuarios:
- Minimizar el acceso de la aplicación a información sensible, de tal forma que solo solicite el acceso a los datos y recursos que necesite para funcionar de manera óptima.
- Usar técnicas como anonimizar los datos para evitar que se pueda identificar a los usuarios.
- Facilitar a los usuarios toda la información sobre cómo la aplicación usa sus datos.
- Implementar mecanismos para que los usuarios puedan gestionar, borrar y modificar sus datos, así como cambiar las configuraciones de privacidad.
¿Cómo se puede comprobar que se han seguido las mejores prácticas para desarrollar una app móvil segura y la aplicación no es vulnerable?
Si bien llevar a cabo las mejores prácticas para desarrollar una app móvil segura resulta crítico a la hora de construir aplicaciones seguras desde el diseño, es fundamental que las compañías lleven a cabo una auditoría de aplicaciones móviles de forma periódica.
¿En qué consiste esta clase de análisis? Expertos en ciberseguridad realizan un amplio abanico de pruebas para verificar la seguridad y la privacidad de las aplicaciones y detectar todas las vulnerabilidades que puedan llegar a afectar a las apps.
Así, mediante una auditoría de aplicaciones móviles es posible detectar:
- Debilidades con respecto al almacenamiento de datos sensibles.
- Vulnerabilidades en los mecanismos de autenticación.
- Deficiencias relacionadas con el uso de WebViews y los mecanismos IPC en los sistemas Android.
- Malas prácticas en las conexiones de red de la aplicación.
- Evasión de restricciones de la aplicación.
- Uso deficiente de algoritmos de cifrado.
Además, claro está, los profesionales a cargo de una auditoría de aplicaciones móviles también elaboran un informe con recomendaciones para mitigar las vulnerabilidades encontradas durante la realización de las pruebas.
Conclusiones: seguir las mejores prácticas es imprescindible
En definitiva, ante la relevancia que han adquirido las apps móviles en nuestro día a día y la sensibilidad de los datos que manejan, es imprescindible que las compañías que ya tengan aplicaciones o que desean lanzar aplicaciones al mercado sigan las mejores prácticas para desarrollar una app móvil segura. En juego está la seguridad de los usuarios, pero también las finanzas y reputación de las propias empresas.