Cómo integrar la seguridad en el ciclo de desarrollo de aplicaciones web

Priorizar la seguridad en el ciclo de desarrollo de aplicaciones web es fundamental para detectar y solventar vulnerabilidades y evitar incidentes de seguridad graves.
Una vulnerabilidad crítica en WP Ghost, un plugin de seguridad de la plataforma de gestión de contenidos web WordPress que ha sido instalado en más de 200.000 webs en todo el mundo, permitiría realizar ejecución remota de código a actores maliciosos. Esta alarmante noticia pone el foco sobre el papel que juega la seguridad en el ciclo de desarrollo de aplicaciones web.
Desde que se comienza a planificar una web hasta que deja de estar en funcionamiento, es imprescindible priorizar su protección ante posibles ataques y llevar a cabo auditorías de seguridad web que permitan descubrir vulnerabilidades en alguno de sus componentes.
A continuación, vamos a desgranar cómo se puede integrar la seguridad en el ciclo de desarrollo de aplicaciones web.
1. ¿Qué es el ciclo de desarrollo de aplicaciones web?
Los seres humanos tendemos a pensar de manera lineal. Sin embargo, nuestra vida está plagada de ciclos. Esta realidad se nos muestra nítidamente en el ámbito del desarrollo de aplicaciones web. ¿Por qué?
Crear una web no es un proceso en línea recta que comienza en la planificación de la misma y termina cuando comienza a usarse o sale al mercado. Esto es así porque el desarrollo web es un área en constante evolución y a lo largo de toda la vida de una web esta debe ser sometida a mejoras periódicas para optimizar su funcionamiento y, sobre todo, garantizar un nivel de protección óptimo.
De ahí que la seguridad en el ciclo de desarrollo de aplicaciones web sea tan relevante.
¿Qué fases componen este ciclo?
Por norma general, se considera que engloba los procesos de:
- Planificación. En esta fase se fijan los requisitos de la aplicación web y se elabora un plan de programación para desarrollarla.
- Diseño. Se establecen la tecnología y las herramientas de desarrollo que se van a emplear, así como la arquitectura necesaria.
- Codificación. En esta fase se desarrolla el código de la web, para lo que es común emplear componentes ya existentes recurriendo a librerías de terceros.
- Pruebas. Es fundamental que las empresas que desarrollan aplicaciones web lleven a cabo pruebas para comprobar que funcionan de manera óptima y que no existen vulnerabilidades en el código. Lo más habitual es que no exista una fase de pruebas en sí misma, sino que estas se lleven a cabo mientras se desarrollan las aplicaciones web.
- Envío a producción. Una vez que la web haya superado todas las pruebas se debe pasar del entorno de pruebas al de producción.
- Mantenimiento. Las webs necesitan un mantenimiento continuo para garantizar que funcionan de manera óptima, subsanar errores, incorporar mejoras y solventar problemas de seguridad. Esto implica reiniciar el ciclo para diseñar, desarrollar y probar las mejoras antes de llevarlas a producción.
2. Vulnerabilidades de día cero y ataques de cadena de suministro de software: La seguridad SDLC es una necesidad estratégica
La seguridad en el ciclo de desarrollo de software en general y de aplicaciones web en particular se ha convertido en una prioridad para desarrolladores y empresas que adquieren aplicaciones de terceros. ¿Por qué?
- Las aplicaciones web son activos críticos para millones de negocios.
- Los ciberataques contra toda clase de empresas no han parado de crecer en los últimos años.
- Las webs son activos empresariales con un elevado nivel de exposición.
- Las consecuencias de ataques exitosos contra aplicaciones web pueden incluir la parálisis de la actividad de la empresa o la exfiltración de datos privados.
A ello debemos sumar dos tendencias de ciberseguridad claves hoy en día: el auge de los ataques que explotan vulnerabilidades de día cero y los ataques de cadena de suministro de software.
La única forma de combatir de manera eficaz estos ataques es integrando la seguridad en el ciclo de desarrollo de aplicaciones web. De tal manera que se pueda:
- Encontrar debilidades en el código y los componentes en una web antes de que salten a producción.
- Detectar vulnerabilidades que afectan a una aplicación web antes de que sean descubiertas y explotadas por actores maliciosos.
- Desarrollar e implementar parches de seguridad en el menor tiempo posible para subsanar vulnerabilidades descubiertas recientemente.
- Optimizar de manera continua la postura de seguridad de las aplicaciones web.

3. DevSecOps: Priorizar la seguridad en el ciclo de desarrollo de aplicaciones web
Para integrar la seguridad en el ciclo de desarrollo de aplicaciones web, las empresas pueden implementar una estrategia DevSecOps (Development, Security and Operations).
El enfoque DevSecOps aboga por realizar pruebas de seguridad en todas las fases del ciclo de vida de una web y usar las mejores prácticas en materia de desarrollo.
Para facilitar la puesta en marcha de una estrategia DevSecOps, la fundación OWASP, un referente metodológico a nivel mundial, está elaborando una guía para orientar a los desarrolladores y conseguir que las empresas puedan «detectar problemas de seguridad (de diseño o por una vulnerabilidad de la aplicación) lo antes posible».
Uno de los conceptos dentro de DevSecOps que está tomando relevancia es el Shift Left, o desplazarse a la izquierda. Con ello se busca poner el foco y los recursos en materia de seguridad en las fases implicadas en el inicio del ciclo de vida de las vulnerabilidades, pudiendo actuar de forma rápida y más eficiente cuando se encuentran vulnerabilidades.
¿Dónde debe poner el foco una estrategia DevSecOps?
- Las personas. Es fundamental que los desarrolladores cuenten con formación en materia de seguridad y lleven a cabo prácticas de codificación seguras.
- El proceso de desarrollo en sí mismo:
- La necesidad de llevar a cabo un modelado de amenazas durante el diseño de una aplicación web.
- Realizar pruebas de seguridad como análisis estático del código fuente (SAST) o análisis de composición de software (SCA) durante el proceso de creación del código.
- Antes de sacar a producción una aplicación se deben llevar a cabo pruebas de seguridad de aplicaciones dinámicas (DAST).
- Durante el mantenimiento de una aplicación web es fundamental llevar a cabo una gestión de vulnerabilidades eficaz y recurrir a servicios de ciberseguridad como el pentesting que permitan poner a prueba sus mecanismos de seguridad.
- La gobernanza. Es de vital importancia comprobar que se cumple con la normativa en vigor, sobre todo en materia de protección de datos.
4. ¿Qué servicios nos permiten integrar la seguridad en el ciclo de desarrollo de aplicaciones web?
¿De qué manera pueden los desarrolladores y las empresas que adquieren aplicaciones web fortalecer la seguridad de las mismas durante todo su ciclo de vida? Recurriendo a servicios de ciberseguridad que les permitan detectar, gestionar y solventar vulnerabilidades para evitar que sean explotadas con éxito.
- Auditoría de código fuente. Sirve para rastrear fallos de seguridad en el código de una aplicación web empleando técnicas de análisis estático.
- Auditoría de seguridad web. Mediante esta clase de análisis se pueden identificar debilidades presentes en aplicaciones web para proceder a subsanarlas. Gracias a una auditoría de seguridad web es posible detectar vulnerabilidades relacionadas con la lógica de negocio o los flujos de información que pasan desapercibidas para herramientas automatizadas.
- Gestión de vulnerabilidades y detección de vulnerabilidades emergentes. Integrar la seguridad en el ciclo de desarrollo de aplicaciones web implica llevar a cabo una gestión continua de las vulnerabilidades teniendo en cuenta la probabilidad de que sean explotadas y su impacto. Además, llevar a cabo un monitoreo continuo de las vulnerabilidades descubiertas permite gestionar de manera eficaz las vulnerabilidades de día cero.
- Servicios de pentesting. Habida cuenta de la importancia de las aplicaciones web para las empresas, es recomendable someterlas a test de intrusión avanzados que permitan detectar fallos de seguridad, medir el impacto de su explotación y obtener un listado de recomendaciones para optimizar su nivel de protección.
Conclusiones: 5 motivos de peso para integrar la seguridad en en el ciclo de desarrollo de aplicaciones web
- Detectar vulnerabilidades en las primeras fases del ciclo de desarrollo.
- Reducir los costes de subsanar fallos de seguridad al encontrarlos cuando las webs ya están en funcionamiento.
- Mantener una postura de seguridad óptima a lo largo de toda la vida de una aplicación.
- Prevenir incidentes de seguridad y limitar su impacto.
- Evitar las consecuencias económicas, reputacionales y legales derivadas de un incidente grave.