Cuando algo se pone de moda crea una tendencia, basada en una necesidad específica, y como cualquier moda viene el termino DevSecOps para crear tendencia sobre seguridad en todos los desarrollos que utilizan o están en proceso de utilizar metodologías DevOps.
Como se suele decir, algunas modas no pasan y se mantienen en el tiempo; pues eso es lo que representa DevSecOps, esa tendencia que está llegando en todas las empresas para quedarse…
Pero… ¿Qué es DevSecOps?
Este término viene de la abreviatura de Dev equivalente a Desarrollo, Sec equivalente a Seguridad y Ops equivalente a Operaciones y su objetivo fundamental es unir los tres mundos. Como ya existe mucho camino recorrido en la unión de Desarrollo con Operaciones en la mayoría de las organizaciones, lo que se suele dar es introducir la Sec (Seguridad) en ese mundo DevOps; de hecho, en algunos foros es utilizado el termino SecDevOps.
En resumen, bajo una cultura de metodologías agiles, entregas por fases y automatización, DevSecOps consiste en incluir la seguridad y las diferentes pruebas asociadas en el ciclo de desarrollo para hacerlo más seguro.
Y ahora… ¿Cómo lo implemento?
DevSecOps no es solo una palabra, es una serie de metodologías y frameworks que ayudan a las empresas a integrar la seguridad en sus desarrollos bajo el paradigma de DevOps. Para ello, como base principal de implantación, se tiene que crear una cultura de seguridad basada en la concienciación de los equipos de desarrollo, para que se tenga en cuenta ese aspecto siempre, al igual que siempre se han tenido en cuenta otros aspectos como la calidad del software por ejemplo.
El modelo que se suele seguir cuando se implementa es conocido como Security Shift Left o seguridad hacia la izquierda del desarrollo. En este modelo se recomienda ir realizando pruebas de seguridad desde las fases más tempranas de los mismos, para de esta forma detectar vulnerabilidades cuando no existe demasiado código y, por ende, sean más fáciles de corregir y el coste de resolución sea menor, como se muestra en la siguiente imagen comparativa:
Este modelo de intentar realizar todas las correcciones en fases tempranas no implica que en fases previas a la producción o incluso en fases de mantenimiento, no se realicen pruebas de seguridad; pero las que se realicen en esas fases más tardías serán para verificar que todo lo detectado se ha corregido y que no se tienen posibles nuevas vulnerabilidades que hayan surgido en el tiempo.
¿Cómo de largo tiene que ser el camino?
En este caso, va a depender del grado de madurez que tenga la organización y, sobre todo, a dónde se quiera llegar, por lo que siempre se aconseja hacer un estudio exhaustivo de la situación que se tiene en cada compañía sobre las normativas de seguridad que tengan en los desarrollos, las herramientas que dispongan, el presupuesto y otros diversos factores para definir ese camino a recorrer.
¿Hay herramientas específicas que pueden ayudar?
En un enfoque inminentemente DevOps es fundamental la automatización de las pruebas de seguridad y de todos los procesos asociados, ya que las pruebas no deben de incrementar el tiempo de desarrollo. Para la realización de las mismas se suelen utilizar herramientas de seguridad que, integradas en el ciclo, ayudan a mejorar la seguridad de los desarrollo. A continuación, se destacan algunas de ellas:
– Modelado de amenazas: Son herramientas que en fases de diseño o planificación del propio desarrollo, realizan un análisis de todas las amenazas que puede sufrir un aplicación durante todas las fases de desarrollo, y las representan como requisitos de seguridad que debe de ir cumpliendo a lo largo del ciclo de vida.
– Análisis de código (también llamadas SAST): Son herramientas que buscan vulnerabilidades en el propio código que se está desarrollando; se recomienda su integración dentro del ciclo de vida en fases de construcción para que, a medida que el equipo de desarrollo va generando código, se va chequeando que el mismo es seguro y en caso contrario se van corrigiendo las vulnerabilidades detectadas.
– Librerías de terceros o dependencias: Al igual que el punto anterior, se chequea el código utilizado desarrollado por un tercero; en este caso se recomienda su integración también en fases tempranas para ir comprobando que las dependencias que se utilizan no poseen problemas de seguridad.
– Análisis dinámico (también llamadas DAST): Son herramientas que analizan la aplicación en fases previas a pasar a producción o fases donde el software ya es lo suficientemente robusto; consiste en realizar pruebas de seguridad dinámicas automáticas que sirven para corroborar que el software llega seguro a las últimas fases del desarrollo.
Aunque hemos definido alguna de las pruebas de seguridad con herramientas, existen otras pruebas de seguridad que no se pueden automatizar ya que requieren de un equipo humano de expertos que las ejecuten, como suelen ser los pentesting que son ejercicios de ‘Hacking Ético’ a las aplicaciones, en los que se busca posibles fallos de seguridad que quizá utilizando las herramientas por sí solas no se detectan o por cualquier circunstancia se han pasado por alto.
¿Qué beneficios voy a tener?
Implementar una cultura y un modelo DevSecOps dentro de una organización tiene muchos beneficios entre los que destacan:
– Usar metodologías que den gobierno a la seguridad en el desarrollo de aplicaciones y ayuden a reducir el riesgo de las compañías.
– Realización de todas las pruebas de seguridad mediante iteraciones sin ralentizar los ciclos de entrega definidos.
– Poseer capacidades técnicas para poder dar respuesta a diferentes problemas de seguridad o cambios que se puedan encontrar en alguna de las fases de desarrollo.
– Entrenar a los equipos de desarrollo en los problemas de seguridad más frecuentes para poder ser más agiles en la resolución de vulnerabilidades futuras.
– Promover la cultura de seguridad en las aplicaciones entre los diferentes miembros del equipo.
– Tener una visión de los niveles de riesgo de las aplicaciones de las empresas en base a las distintas vulnerabilidades
– Mejorar la seguridad global del software que se genera, reduciendo a su vez el time to market del mismo.
En Ciberso somos expertos en dar servicios en DevSecOps en todo tipo de organizaciones, realizando labores de gobierno de la metodología ad-hoc, desarrollando todas las pruebas de seguridad a lo largo del ciclo, implantando herramientas de seguridad y todos los trabajos relacionados con asegurar las aplicaciones dentro de nuestros diversos clientes.
Fernando Saavedra