Mejores prácticas para desarrollar apps seguras.

¿Desarrollar aplicaciones móviles? Claro... ¿Hacerlas seguras? Eso ya es otro tema.


No es un secreto que actualmente, la tecnología ha cambiado la forma en la que hacemos las cosas. Así como lo decíamos la semana pasada en nuestro artículo "Las 7 razones principales de contar con una aplicación móvil para tu negocio", las aplicaciones móviles ofrecen más que entretenimiento y son utilizadas por las empresas, entre otras cosas  para la monitorización y gestión de procesos, así como para planificación y coordinación de estrategias y actividades clave para las mismas. Las aplicaciones permiten al usuario ser más productivos, comunicarse, capacitarse, interactuar con las demás personas al instante, o incluso educarse.

Sin embargo, al ser utilizadas por una gran cantidad de usuarios, las apps se han convertido en el objetivo de muchos hackers que buscan infectar nuestros dispositivos con software malicioso con distintos fines, uno de ellos y el más peligroso, robar data sensible.

De lo anterior, surge la necesidad de crear apps que sean 100% seguras, es decir, que no puedan ser vulneradas por los atacantes. Hoy te daremos algunos consejos que debes considerar al momento de desarrollar una aplicación móvil realmente segura.

Cuando iniciamos el desarrollo de un software, se deben definir las etapas del ciclo de vida para el desarrollo, en este caso, el desarrollo de aplicaciones seguras que debe estar compuesto, como mínimo, por las siguientes:

Photo by Maximilian Weisbecker / Unsplash

Requerimientos de seguridad.

Se deben definir y establecer lineamientos que nos ayudarán a prever los riesgos a los que diariamente estará expuesta la app que desarrollaremos. Para esto, se deben tomar en cuenta algunos factores tales como:

  • El tipo de información y datos que se van a procesar y almacenar (datos personales y/o financieros).
  • El perfil de los usuarios que utilizarán la app.
  • Las funciones específicas y casos de uso.
  • Requerimientos legales, regulatorios y contractuales con clientes (complejidad de contraseñas, cifrado de medios de almacenamiento, segmentación de la red, entre otros).

La arquitectura de seguridad utiliza un enfoque de defensa en profundidad para mitigar y contener ataques. Utilizando servidores web, bases de datos, certificados para el cifrado de transporte de datos y aplicaciones de monitoreo se debe dar cumplimiento a las características de confidencialidad, integridad y disponibilidad definidas en esta etapa tanto por el cliente como por los especialistas.

Modelo de amenazas y diseño de seguridad.

Posterior a la definición de los requerimientos de seguridad, las funciones y los servicios que proporcionará la aplicación, deben ser evaluadas las amenazas que afectan cada uno de los componentes.

Para realizar esta evaluación, se deben identificar qué sistemas tendrán acceso desde internet y cuales solamente estarán restringidos a usuarios específicos dentro de la red interna. Asimismo, se debe identificar el tipo de datos que serán procesados y almacenados en cada uno.

El diseño de seguridad debe atender los resultados del modelo de amenazas para evitar vulnerabilidades al programar y administrar las aplicaciones.

Desarrollo y programación segura.

En esta fase, se debe dar prioridad a estándares de prácticas comunes, así como rutinas de código previamente autorizadas.

Pruebas en las aplicaciones.

En esta etapa se debe validar que los controles diseñados fueron implementados de manera correcta, así como diseñar un plan de pruebas.

Las auditorías de diagnóstico y pruebas de penetración realizadas por expertos permiten identificar los riesgos y vulnerabilidades que pudieran pasar desapercibidas en etapas anteriores y proporcionan información valiosa a los desarrolladores para correcciones en versiones posteriores.

Mantenimiento.

Las aplicaciones que utilizan librerías y componentes de terceros deben ser actualizadas constantemente para evitar que vulnerabilidades críticas no parchadas afecten la seguridad de los datos.

El ciclo de vida de desarrollo seguro de aplicaciones es una herramienta que habilita a las organizaciones a mantener a través del tiempo, la calidad de los componentes de negocio soportados por las tecnologías de información. Y así como lo decíamos en nuestro artículo "DevSecOps: agilidad y rapidez con un componente de seguridad" , evitar brechas de seguridad es de suma importancia a día de hoy. Cuando hablamos de ciberseguridad dentro del proceso de desarrollo, tendemos a pensar que ralentizará la obtención de un producto final, por ende, lo dejamos para el final; es decir, una vez desarrollado el producto, se evalúa y se aplican sobre la marcha correcciones que garanticen su seguridad. Pero esta idea no puede estar más alejada de la realidad, la seguridad también puede ser sinónimo de agilidad.


Si te gustó este artículo suscríbete a nuestro blog.

Recuerda que puedes encontrarnos en Instagram, Facebook y Twitter como @esauriook

En LinkedIn como e•Saurio