SecDevOps es uno de los términos de moda en el mundo de la ciberseguridad, el puesto que más están solicitando las grandes organizaciones y el elemento fundamental para maximizar la seguridad de los aplicativos que utilizan.

Pero ¿qué es SecDevOps? ¿A qué nos referimos cuando hablamos de implantar un servicio de este tipo?

El desarrollo de software sigue, de un tiempo a esta parte, un ciclo de vida de entrega continua, fruto de la necesidad de adaptarse a las exigencias del mercado y las continuas correcciones que hay que ir realizando a medida que van apareciendo errores, bien sea por fallos en la programación en sí, bien por adaptarse a requerimientos cambiantes del cliente.

Ese ciclo de vida de desarrollo del software (SDLC), que puede realizarse de muy diversas maneras, consta de distintas fases que pueden resumirse en:

  • Planificación y diseño
  • Programación
  • Pruebas
  • Lanzamiento
  • Despliegue
  • Operaciones y configuración
  • Monitorización y detección de fallos (y vuelta a empezar)

Global Technology SecDevOpsEste era al menos el enfoque, digamos, tradicional. Es el sistema DevOps (Dev, developers (desarrolladores); Ops, operations (operaciones)).

En este enfoque, normalmente hasta la fase de despliegue (o como máximo la de lanzamiento) no se introducen las pruebas de comprobación de seguridad del software que se está desarrollando.

El problema es que es un estado demasiado avanzado de desarrollo que lo que implica es constituir un cuello de botella importante a la hora de que el ciclo de desarrollo y entrega continuo se mantenga. Además, no solo provoca ese cuello de botella retrasando la entrega, sino que supone un incremento de costes importante si se descubren vulnerabilidades serias, pues hay que rehacer el proyecto desde el principio con todo lo que ello supone.

El enfoque SecDevOps lo que promueve es adelantar la introducción de la seguridad en el ciclo de desarrollo de software. Hasta el punto de considerarla en todo él, desde el mismo momento del diseño.

Las ventajas son más que evidentes: se elimina el cuello de botella, al no retrasar las comprobaciones de seguridad y se reducen los costes de desarrollo. Al tener presente la seguridad desde el mismo diseño, se limitan enormemente las vulnerabilidades encontradas en las fases posteriores y, por lo tanto, no se retrasa la entrega continua, minimizando así los costes por desviaciones en el proyecto.

SecDevOps Desarrollo Seguro de SoftwarePara llegar a maximizar los beneficios de implantar el enfoque SecDevOps no solo debemos incorporar los controles de seguridad al ciclo de vida de desarrollo de software, sino también extender y promover una cultura de programación segura dentro de la organización.

Los desarrolladores tradicionalmente se centran en la funcionalidad. Cuando se les pide algo es siempre para conseguir un resultado y ese es, lógicamente, su principal objetivo.

Sin embargo, el modo en que se desarrolle ese software, las versiones de lenguajes, librerías y APIs que utilicen, la forma de diseñar los flujos de información, la forma de encriptarla, cómo se gestionan las cookies, los mensajes de error que se presentan al usuario… todo influye en la seguridad del aplicativo que se está desarrollando y, por tanto, influirá directamente en minimizar el coste final de obtener un software que sea realmente seguro y exento de vulnerabilidades.

El éxito de la implantación de un modelo SecDevOps radica en tres pilares fundamentales:

  1. Introducción de la seguridad desde el mismo momento del diseño y en todas las fases del ciclo de vida del software (security by design)
  2. Fomento de una cultura de desarrollo seguro entre los desarrolladores (tanto internos como externos) mediante formación adecuada e información constante sobre guías y recomendaciones (OWASP, IEE, SANS).
  3. Uso de herramientas de análisis de código para poder tener control absoluto de la evolución de las vulnerabilidades, las mejoras necesarias y el esfuerzo en horas/hombre necesarias para corregirlas.

Un último beneficio que aporta el modelo SecDevOps en una organización es servir de nexo de unión para dos departamentos entre los que frecuentemente existen roces, como son desarrollo y operaciones (sistemas). La necesidad de coordinar ambos departamentos a la hora de detectar, analizar y corregir las distintas vulnerabilidades e introducir esas modificaciones en el ciclo de entrega continua, redunda en una mejora del trabajo en equipo, la comprensión y el entendimiento entre ellos.

La seguridad está aquí para quedarse, imbuyéndose en todos los procesos tradicionales de una organización para garantizar la protección de la información con la que se trabaja. Si hablamos de equipos de desarrollo en la empresa, el futuro solo tiene un nombre: el modelo SecDevOps.