
DevSecOps: un nuevo mindset para empresas
¿Qué hace al DevSecOps una mentalidad emergente que están asimilando cada vez más desarrolladores de softwares? ¿Por qué se dice que es necesario sustituir el ya tradicional DevOps por este nuevo mindset para empresas?
Si bien la industria del software lleva unos 10 años hablando de las ventajas del DevOps, lo cierto es que existe una motivación cada vez más creciente hacia la adopción del DevSecOps por razones evolutivas.
Hacer que la seguridad se incorpore al propio ADN del software desde el inicio es uno de los grandes desafíos del momento. Cada vez más empresas están comprendiendo esto y analizan las bondades de pasarse del DevOps al DevSecOps.
Hoy te contaremos cómo abordar los desafíos de esta nueva filosofía de aceleración digital y cuáles son los beneficios y desventajas asociadas.
Además, compartiremos las mejores prácticas que puedes utilizar para crear ambientes de colaboración entre los equipos de TI, innovación digital y liderazgo de tu organización.
Si buscas que todos estén sintonizados con el lenguaje y aplicación de las herramientas DevSecOps en la empresa, lee este texto hasta el final.
¿Qué es DevSecOps?
DevSecOps es básicamente una filosofía de desarrollo de software que también recibe el nombre de SecDevOps. Su objetivo es promover la adopción de la seguridad a lo largo del SDLC (ciclo de vida de un desarrollo de software).
La definición de DevSecOps va mucho más allá de una herramienta o práctica de un determinado modo de hacer las cosas. En realidad, es una estructura colaborativa o un conjunto de tácticas en la cual los equipos incorporan la Seguridad a sus procesos de DevOps desde el punto de arranque, y no después, en un silo aparte.
Cuando todos los equipos se enfocan en esta mentalidad de integración del DevSecOps, los entornos organizacionales pueden reducir los riesgos de seguridad, sin afectar los tiempos de desarrollo.
Todo esto impacta positivamente, porque:
- Eleva la automatización de la seguridad
- Mejora la comunicación y la escalabilidad del proyecto
- Integra a la filosofía del desarrollo de software a los equipos que hacen vida en el SDLC, entre ellos, las unidades de Operaciones, Desarrollo y Seguridad
¿Por qué se dice que es un nuevo mindset para las empresas?
Años atrás, la seguridad era un elemento secundario o lo último que se evaluaba y validaba al finalizar un desarrollo, lo cual ha ido cambiando con la modernización de aplicaciones y la adecuación a las necesidades de una era en la que abundan los datos sensibles en red y servidores.
Y esto sucedía porque llegar al release, o el último escalafón del ciclo de lanzamiento de un software, podía demorar meses y hasta años. En consecuencia, la seguridad de las aplicaciones de software era algo que podía postergarse o gestionarse en otro momento.
Hoy, los ciclos de lanzamiento de software se han acelerado a tal punto que dejar la seguridad como tarea secundaria es una forma anticuada de proceder y hasta muy poco práctica.
Los nuevos códigos en producción ahora se desenvuelven a pasos que deben ser evaluados a diario o semanalmente. Esto hace que la escalabilidad del proyecto y la automatización de los factores de seguridad sean claves.
DevSecOps es así una estrategia que impulsa la incorporación de actividades vinculadas con la seguridad en las aplicaciones de software desde el inicio de las distintas etapas del desarrollo.
Obviamente, esto implica una nueva conciencia o mindset empresarial que reconozca la importancia de las auditorías activas y otras estrategias de seguridad, incorporadas desde el comienzo.
Junto con las buenas prácticas y procesos que ya aprendimos con el DevOps, como la integración continua (CI) y la entrega continua (CD), el DevSecOps pasa a incorporarse directamente con el producto y no como algo que se agrega al final de la cadena o release.
¿Por qué el DevOps tiene sus áreas de oportunidad?
Con el pasar del tiempo, los entornos DevOps nos han develado sus evidentes puntos débiles que, justamente, suelen estar muy vinculados con el tema de la Seguridad.
De allí, que esta filosofía esté evolucionando cada vez más rápidamente hacia entornos basados en tools DevSecOps.
Ahora, veamos más sobre el DevOps y sus desventajas o áreas de deficiencia.
Escasa visibilidad del histórico de seguridad
Uno de los puntos débiles del DevOps es que los equipos de trabajo carecen de herramientas inteligentes que les faciliten la monitorización de la evolución de la seguridad y las grietas que ocurren entre build y build.
Esto dificulta la detección y reparación de los fallos de seguridad, lo cual se hace casi imposible. Al no tener una manera clara de categorizar el histórico y las vulnerabilidades en cuanto a su gravedad, al momento de aplicar los correctivos, los equipos pierden demasiado tiempo valioso.
Falta de coordinación entre equipos de desarrollo y seguridad
En cuanto a calidad del software, Seguridad y Desarrollo, son elementos que se ven por separado en entornos solo con DevOps.
Eso ocasiona que tanto el equipo de trabajo de Calidad o QA y los test de penetración o “pentesting” terminan elaborando informes poco dinámicos, sin coordinación y muy extensos. Esto genera tardanza para resolver a tiempo los fallos de seguridad en las etapas de desarrollo.
Configuración ineficiente de herramientas estáticas
En las etapas de desarrollo de un software, las herramientas Static Ast (SAST) son las rutas más ampliamente usadas para detectar fallos o vulnerabilidades.
El problema es que esto tiende a generar una elevada ocurrencia de falsos positivos, lo que puede terminar causando frustración entre muchos desarrolladores de software al percatarse de los poco nutritivos reportes que pudieran generarse.
A la larga, las herramientas SAST terminan consumiéndoles un tiempo valioso entre verificar dónde están los puntos débiles y los falsos positivos.
En cuanto a las Dynamic AST (DAST), igualmente muy usadas, la tasa de vulnerabilidades detectadas puede ser muy baja, con poca visibilidad del código fuente.
Ausencia de escalabilidad
Otro de los puntos negativos de DevOps es la falta de escalabilidad de los sistemas.
Por ejemplo, las herramientas AST para efectuar la revisión por parte de un proveedor de servicios externo, denominadas TaaS (testing-as-a-service), pueden causar que la etapa de despliegue sufra retrasos importantes desde cuatro hasta 24 horas.
Esto demora a su vez la escalabilidad del sistema y aleja algo tan clave como lo es plazo de lanzamiento (time to market o TTM).
DevOps y DevSecOPs
Ahora, si ponemos las ventajas de DevOps vs DevSecOps, frente a frente, como metodologías de ingeniería de software que se pueden complementar, ¿con qué nos conseguimos?
DevOps
- Unifica Desarrollo y Operaciones, lo que permite acelerar las entregas de forma continua.
- Permite mejorar sustancialmente las métricas que se tienen que ver con rendimiento y productividad.
- Eleva la calidad del software y la estabilidad de las aplicaciones.
- Acorta el tiempo en el que los productos salen finalmente al mercado (el TTM).
- Ofrece una respuesta ágil a las mejoras con fines de elevar la competitividad del producto.
DevSecOps
- Optimiza las ventajas de DevOps al incorporar la automatización de la Seguridad, así como nuevos procesos. Es lo que ocurre, por ejemplo, al agregar características del DevSecOps a la forma de trabajar en el DevOps bajo la Integración Continua (pipeline).
- DevSecOps hace de la seguridad un factor clave que al ser puesta en práctica, siguiendo los protocolos correctos, permite que el proceso trascurra de forma más segura, desde el inicio del proyecto hasta su finalización.
- Este escenario permite a los equipos de Seguridad sentirse más comprometidos con el desenvolvimiento eficaz de los demás actores que participan en el SDLC y viceversa. El ambiente es de menos fricciones entre Desarrollo, Operaciones y Seguridad.
Como puedes ver, con la complementación todos ganan.
¿Cuáles son las ventajas de DevSecOps?
A esta altura ya nos hemos paseado por varias de las ventajas de DevSecOps, pero ahora profundizaremos más en ellas. Si bien no es algo fácil de ejecutar de buenas a primeras, la transformación dejará en un plazo corto y largo muchos beneficios, como:
Automatización de la seguridad
Incorporar esta metodología a la mentalidad organizacional ofrece beneficios instantáneos, ya que mejora la permanencia del factor seguridad desde el principio.
Esto facilita un desarrollo más ágil de todo el proceso en el SDLC, con menos agujeros de seguridad que pudieran retrasar la rapidez de la entrega del producto ya culminado y testeado.
La adopción de la automatización de la seguridad eleva a su vez la cultura de la empresa y traza los nuevos lineamientos para un mejor desempeño de los equipos.
Desarrollo frecuente y con ciclos cortos
DevSecOps propicia ciclos cortos de desarrollo y con mayor frecuencia, lo que contribuye a reducir costes y lograr mejores tiempos para llegar finalmente a la meta que es el usuario.
Colaboración entre los equipos
Con los equipos más inmersos en una cultura de colaboración proactiva, se logran mejores resultados y se alcanzan en conjunto los objetivos.
Otras ventajas son:
- Reduce los riesgos de denuncias o reclamos de infracciones ante los problemas de seguridad reportados por los clientes.
- Permite acceder a un código con mayor transparencia y procesos que son mejorados constantemente, desde las primeras fases del SDLC.
- Ayuda a aumentar la reputación y ventas, al ofrecer un producto que es totalmente seguro y con vulnerabilidades detectadas desde el principio.
¿Cómo implementar el DevSecOps?
Para implementar el DevSecOps hay que comenzar con el involucramiento de todos los equipos en esta cultura de un nuevo mindset para la empresa.
¿Qué quiere decir esto? Una cultura que apunte hacia una certificación de DevSecOps es aquella que promueve la activa comprensión y puesta en práctica de términos y objetivos universales como lo son:
- Entornos colaborativos
- Motivación y compromiso grupal
- Equipos multifuncionales dispuestos a apoyar el trabajo anterior o posterior de otros
- Aprendizaje en todas las escalas
- Automatización de los procesos
- Mediciones y seguridad continua del software
- Uso compartido (CALMS)
- Equilibrio entre seguridad, escala y velocidad
Para lograr sentar las bases de una cultura Devsecops en la organización, sigue estas claves:
Integración de seguridad y herramientas de colaboración
Una mayor capacitación de los equipos para que integren el factor seguridad en el desarrollo del software es vital para comenzar.
La médula de todo este asunto es que se dice fácil, pero a la hora de ponerlo en práctica resulta más complejo, pues implica varios desafíos que se deben superar.
Para derribar los obstáculos, los equipos deben tener una comprensión absoluta de las herramientas y procesos que permiten mantener el factor Seguridad en los lineamientos de principio a fin en el software.
Así que una devsecops certificación no es un capricho ni una mera tendencia.
Definición de métricas adecuadas para evaluación de calidad
Es clave llevar a cabo una exhaustiva recopilación y análisis de datos en cada una de las etapas.
También lo es la medición de los éxitos y fracasos, juntando todas las métricas que sean útiles, además de la protección de datos y características que favorecen al DevSecOps.
Definir un programa de métricas que ofrezca un panorama completo es un proceso que debe establecerse desde el inicio. Tiene que contemplar elementos generados por las personas, los procesos y la tecnología, todo de forma integral.
Así pues, las métricas deberían permitirnos conocer, por ejemplo, las fallas que resultan de la carencia de procesos bien delineados, o por la falta de una utilización eficiente de las herramientas.
Para alcanzar estos objetivos, un elemento estratégico es recopilar y hacer mediciones de los datos más relevantes en cada fase del pipeline, así como las acciones de seguridad.
Otro factor es la automatización para la recogida de estas métricas útiles de manera continua, en los lugares necesarios.
Para definir y construir las métricas que ayudarán a fortalecer la cultura DevSecOps se encuentran aquellas que miden el tipo de análisis de seguridad y su cantidad, efectuados a lo largo del SDLC.
También las alertas críticas de seguridad y calidad que hayan sido reportados, así como el tiempo que se demora su canalización y resolución.
En definitiva, esta información favorece el trabajo de los equipos para construir métricas encauzadas a disminuir tres elementos:
- El peso de los defectos
- Las fallas de seguridad durante la preproducción
- Las pérdidas de tiempo durante la implementación
Elección de soluciones de seguridad escalables
Mejorar la velocidad, la elección de soluciones y la escala mediante la automatización es fundamental para lograr el equilibrio en la integración de todos los factores.
Tanto DevOps como DevSecOps tienen la automatización como una de sus premisas. Así que al optimizar la automatización, no solo de las herramientas sino de los procesos de seguridad, se eleva la garantía de que los equipos involucrados mantengan el mismo perfil de buenas estrategias al sumar el DevSecOps.
A la hora de implementar una buena estrategia de automatización y de soluciones deberás:
- Garantizar la coherencia, fiabilidad y la capacidad de repetición de las herramientas y los procesos.
- Determinar qué acciones y procesos pueden someterse a una automatización de principio a fin y cuáles ameritarían de una actuación manual.
Un ejemplo de esta manera híbrida de trabajar sería, por ejemplo, cuando se ejecuta una herramienta SAST en una canalización, pero al efectuar los pentesting y el modelado de las amenazas no se puede hacer de forma automatizada, solo mediante maniobras manuales.
De igual manera sucede con los procesos.
Bonus: Consejos para una eficiente implementación de DevSecOps
Ya explicamos por qué las empresas deben invertir en este cambio clave de ciberseguridad. Mostramos también las ventajas de abordar el desarrollo, las operaciones y la garantía de más seguridad en los métodos y sistemas.
Ahora, te daremos varias recomendaciones para implementar con éxito la filosofía Devsecops como una nueva mindset empresarial.
Sigue estos 7 pasos para que Desarrollo, Seguridad y Operaciones vayan de manera cónsona en la mentalidad de la empresa.
1. Apuesta por una mayor capacitación de sus equipos
Ofrece a tus equipos la capacitación necesaria sobre cómo hacer que un software sea más seguro, incluso antes de empezar a escribir el código.
2. Pon el foco en actividades puntuales
Promueve el adiestramiento para actividades tendientes a reforzar la seguridad y muestra cómo solucionar problemas, cómo detectar amenazas y cómo llevar a cabo las revisiones de la arquitectura.
Estos elementos ayudan a fijar la ruta de los fundamentos y controles de seguridad que se activarán a lo largo del ciclo de vida del desarrollo de software.
3. Propicia entornos que eleven la confianza de tu equipo
Facilitar una mayor visibilidad de las vulnerabilidades en el tema de seguridad mejora la autoconfianza de los equipos y crea conciencia sobre la importancia de actuar anticipadamente.
La retroalimentación inmediata para la identificación de códigos inseguros optimiza el trabajo del desarrollador y le permite corregir las vulnerabilidades con suficiente antelación.
4. Planifica de acuerdo con tus necesidades
No todas las empresas siguen un mismo patrón ni tienen necesidades idénticas, así que es muy probable que debas planificar actividades de seguridad en función de las decisiones que tome la gerencia para integrarlas al flujo de trabajo de DevOps.
Por ello es importante debatir qué decisiones sobre seguridad son prioritarias y qué clase de herramientas se deberán adquirir. De esto dependerá cómo se adoptará la filosofía de DevSecOps y cómo trabajará esta aceleración digital.
5. Comienza con cambios graduales
Para el éxito en la implementación de la filosofía DevSecOps es mejor comenzar con pequeños cambios que corran paso a paso y que se ejecuten gradualmente.
Es importante que, por ejemplo, los test de seguridad empiecen a aplicarse en el desarrollo del software con la mayor antelación posible.
Así, en vez de activar análisis completos o que involucren un complicado grupo de reglas, restringe un conjunto de reglas a una cinco o seis vulnerabilidades prioritarias y luego de aplicando, gradualmente, análisis más exhaustivos en las siguientes fases.
6. Mantén los hallazgos en un solo sitio
Usualmente las organizaciones mantienen las distintas clases de hallazgos, en materia de seguridad y calidad, en ubicaciones diferentes aislados. Esto es un error, pues hace más difícil que los equipos visualicen el desarrollo y la seguridad general del proyecto.
En consecuencia, mantener los descubrimientos de calidad y seguridad en un solo sitio o un sitio distribuido con una comunicación adecuada y segura favorece el trabajo de los equipos para que traten ambas situaciones del mismo modo, de forma coordinada y con la priorización debida.
7. De los fracasos se aprende
Informar de los errores o fracasos durante la implementación de la metodología DevSecOps y mantener una mente abierta para compartir las fallas es un elemento clave para ir fortaleciendo con el tiempo esta nueva cultura o mindset empresarial.
Durante las etapas de integración y medición continuas es muy posible que sucedan fallas o que estas aparezcan de vez en cuando. Así que estas experiencias negativas deben valorarse como oportunidades para que los equipos aprendan y mejoren.
En conclusión, todos los integrantes que hacen vida a lo largo del SDLC deben asumir que toda canalización de fallas en el DevSecOps y que no sea debidamente reportada, no es una auténtica adopción de esta filosofía. Es más, se desvía de ello.
Conclusiones y recomendaciones finales
Después de todo lo que mencionamos anteriormente, es evidente que una de las claves del DevSecOps es que la seguridad pase a integrarse como un requisito más en la dinámica del desarrollo y entrega.
En tal sentido, hay seis componentes de esta filosofía que siempre se deben tener en cuenta:
- El análisis de código: permite detectar más rápidamente las vulnerabilidades.
- El análisis de vulnerabilidades: hallar nuevas debilidades mediante pentesting y el análisis de código y de arquitectura.
- La gestión de los cambios: significa elevar la velocidad y eficiencia a fin de favorecer que los cambios se reporten desde cualquier fuente y se sometan a una revisión.
- Las auditorías permanentes: en DevSecOps hay que estar mentalizados de que en cualquier momento hay que hacer la monitorización o auditorías de rigor y estar listos para responder, incluso a temas legales. Es el caso de las exigencias enmarcadas en las leyes de protección de datos o el Reglamento General de la Unión Europea (RGPD).
- La investigación de amenazas: con cada actualización del código surge la posibilidad de amenazas emergentes que deben ser detectadas con la mayor antelación y capacidad de respuesta rápida.
- Capacitación continua en el factor Seguridad: forma parte de las buenas prácticas de esta filosofía para los equipos de sistemas y desarrollo.
¡Llegamos al final de este artículo!
Como puedes ver, DevSecOps permite transformar una organización hacia nuevos desafíos de aceleración digital.
No se trata de una fórmula única, de fácil aplicación y lista para usar. Es una herramienta que requiere de pautas y etapas que harán posible que sea una realidad como un nuevo mindset para la empresa.
Para saber más sobre transformación digital y herramientas prácticas para tu organización, sigue leyendo sobre Ciberseguridad: ¡aprende todo a respecto con una guía completa!