In this article
¡DevOps se convierte en DevSecOps!
Se habla de que DevOps está sobrevalorado, pero imagina la alternativa: un mundo en el que solo pudieras lanzar actualizaciones de aplicaciones cada mes o cada trimestre.
Los consumidores de hoy esperan que las empresas respondan rápidamente a sus demandas sin dejar de mantener la calidad. Del mismo modo, las empresas necesitan adaptarse con rapidez a las expectativas de los clientes y del mercado, sin dejar de ser rentables. Estas necesidades impulsaron la adopción de métodos de desarrollo ágiles, que a su vez dieron lugar a DevOps: la comunicación y colaboración estrechas entre los equipos de desarrollo de software y operaciones de TI para facilitar ciclos de desarrollo más cortos y la entrega continua.
DevOps ha aportado numerosos beneficios a las organizaciones, como una mayor frecuencia de implementación y una mejor eficiencia. El problema es: ¿dónde queda la seguridad? Es necesario pasar de una visión puramente DevOps a integrar la seguridad en el ciclo de vida del desarrollo. Esta combinación dio lugar a la evolución natural de DevOps hacia DevSecOps.
Por qué DevSecOps es el futuro de la ciberseguridad
El concepto de «DevOps» se originó en 2009 con una presentación titulada "10+ Deploys a Day: Dev and Ops Cooperation at Flickr,", pero las prácticas y la cultura de DevOps evolucionaron a partir del enfoque de manufactura esbelta desarrollado por Toyota. El Sistema de Producción de Toyota se basa en varios conceptos clave que se reconocen en DevOps: automatización con un toque humano, mejora continua y producción justo a tiempo.
Al igual que en la industria automotriz, estos conceptos han permitido implementar código a gran escala con rapidez sin sacrificar la calidad. Sin embargo, por varias razones, los procesos de seguridad heredados no pueden proteger de manera eficiente las aplicaciones modernas desarrolladas con DevOps.
Velocidad del cambio: La llegada de DevOps, junto con la infraestructura basada en la nube, ha aumentado considerablemente el ritmo de cambio de un entorno determinado. Las tecnologías y los procesos de seguridad heredados se diseñaron para infraestructuras locales y el modelo de lanzamiento de software en cascada.
Desarrollo nativo de la nube: La seguridad de redes locales partía del supuesto de que existía un perímetro bien definido. La arquitectura en la nube tiene una superficie de ataque más amplia y un perímetro menos definido.
Contenedorización e infraestructura como código: La proliferación de la contenedorización y la infraestructura como código (IaC) significa que las aplicaciones suelen especificar las configuraciones de los contenedores y la infraestructura en los que se ejecutarán. Esto introduce el riesgo de configuraciones incorrectas, pero los procesos de seguridad tradicionales no contemplan la seguridad de los contenedores ni de IaC. La combinación del rápido ritmo de cambio, la naturaleza nativa de la nube de las aplicaciones modernas y la contenedorización y IaC significa que los desarrolladores son cada vez más responsables de garantizar la seguridad de todo el código que publican. Por eso, la seguridad ahora ocupa un lugar central en DevOps.
¿Cómo ha cambiado la cultura de DevOps a DevSecOps?
Estos son algunos aspectos de cómo el cambio de DevOps a DevSecOps ha influido en los flujos de trabajo y las herramientas de desarrollo modernos.

Seguridad ágil
El enfoque en cascada lleva el software de forma eficiente desde el diseño y la codificación hasta la fase de pruebas, pero obliga a los desarrolladores a volver a la fase de diseño si durante las pruebas se detecta algún problema, de seguridad o de otro tipo. Este enfoque puede retrasar los proyectos y también obliga a los desarrolladores a usar funciones de seguridad diseñadas al inicio del proceso.
La seguridad ágil integra la seguridad y otras prácticas de pruebas de software lo antes posible en el ciclo de desarrollo, lo que permite detectar vulnerabilidades durante la codificación. También permite que los equipos de DevOps integren la seguridad y el modelado de amenazas en cada sprint, lo que reduce la complejidad de las medidas de seguridad.
Automatización
La automatización suele asociarse con los pipelines de integración continua y entrega continua (CI/CD), un proceso en el que el código se integra en una sola rama y luego se implementa en producción de forma optimizada. Como estos procesos son repetitivos, son ideales para incorporar la automatización. Los pipelines de CI/CD automatizados reducen el riesgo de errores manuales, permiten que los desarrolladores integren las pruebas antes en el ciclo de desarrollo (lo que ayuda a detectar problemas antes) y facilitan el lanzamiento de cambios más pequeños que representan menos riesgo para el sistema. Por otro lado, los pipelines de CI/CD y las innovaciones relacionadas, como el software de código abierto y los contenedores, han multiplicado la cantidad de software que se debe administrar.
Probar y verificar manualmente cada componente de software no es práctico ni confiable, por lo que es importante integrar algún tipo de automatización de seguridad en los pipelines de CI/CD. La automatización de la seguridad se puede implementar con herramientas SAST y SCA que analizan el código y dan comentarios a los desarrolladores. Esta modalidad de pruebas automatizadas evita que los comentarios sobre seguridad se conviertan en un obstáculo o retrasen etapas del pipeline, y sienta las bases para un enfoque DevSecOps en la entrega de aplicaciones.
Seguridad de IaC y los contenedores
Los contenedores e IaC permiten que los desarrolladores configuren la infraestructura y los contenedores donde se ejecutan las aplicaciones. Así, tienen más control sobre los entornos de implementación sin tener que pedirles a los equipos de infraestructura que aprovisionen servidores nuevos o realicen configuraciones manuales. Esto ayuda a evitar errores difíciles de rastrear en la configuración y el mantenimiento de la infraestructura, pero también introduce nuevos vectores de ataque potenciales, como las configuraciones incorrectas y las imágenes base inseguras.
Desde la perspectiva de DevSecOps, IaC y la seguridad de los contenedores requieren revisar el código y aplicar políticas desde los flujos de trabajo de los desarrolladores. Esto incluye probar continuamente IaC para detectar configuraciones incorrectas, analizar imágenes de contenedores, actualizarlas automáticamente a imágenes más seguras siempre que sea posible y monitorear los entornos en vivo para detectar cambios en la configuración antes de enviar comentarios directamente a los desarrolladores.
Protege tus aplicaciones gratis
Protege tu código, dependencias, contenedores e infraestructura como código con Snyk
Políticas como código
Tradicionalmente, las políticas que deben seguir los desarrolladores y administradores se redactaban y aplicaban mediante flujos de trabajo y herramientas manuales. Esto incluía conocimientos sobre dónde asignar recursos, qué usuarios debían tener acceso a determinados recursos y otros aspectos. Las políticas como código llevan las políticas al mundo de DevSecOps al documentar los procesos de seguridad mediante código. Esto permite automatizar los procedimientos de corrección, el análisis, los controles de acceso y otras políticas de seguridad en todo el pipeline de CI/CD.
Herramientas pensadas para los desarrolladores
Cabe destacar que, al igual que DevOps, DevSecOps no exige herramientas específicas. En cambio, es un enfoque cultural para la seguridad de las aplicaciones. Sin embargo, las herramientas son indispensables para implementar DevSecOps de manera eficaz, sobre todo las que permiten que los desarrolladores asuman la responsabilidad de la seguridad de las aplicaciones y las que fomentan la colaboración entre los equipos de desarrollo, seguridad y operaciones. Estas herramientas respaldan un enfoque de seguridad shift left, con pruebas y comentarios que incorporan los procesos de seguridad lo antes posible en los pipelines de desarrollo existentes.
Adelantar la seguridad facilita y abarata la corrección de los problemas que se detectan en el código. Te permite definir y aplicar estándares de codificación segura, para encontrar y corregir vulnerabilidades antes. Además, elimina la fricción entre los equipos de desarrollo y seguridad que surge cuando estos últimos detectan problemas en producción y deben volver con los desarrolladores para pedirles que los corrijan.

La importancia de poner a los desarrolladores primero en seguridad
Snyk reconoció el papel cada vez más importante de los desarrolladores en la evolución del enfoque DevSecOps para la seguridad y creó sus soluciones de seguridad de aplicaciones nativas de la nube para que los desarrolladores cuenten con las herramientas adecuadas para cumplir esa función. El enfoque tradicional, en el que los equipos de seguridad revisan el código al final del proceso de desarrollo —o en producción—, genera cuellos de botella e ineficiencias que no encajan con el modelo DevOps. Las aplicaciones han cambiado y ahora incluyen componentes de código abierto y configuraciones para contenedores e IaC. Las herramientas de Snyk permiten que los desarrolladores integren la seguridad en el proceso de desarrollo y mejoren de manera automatizada e integrada la postura de seguridad de cada componente de una aplicación.
Para leer ejemplos reales de organizaciones que han adoptado DevSecOps, visita nuestra página Comparte el recorrido.
Preguntas frecuentes:
¿Qué es DevOps?
DevOps es una cultura y metodología de desarrollo moderna que garantiza una comunicación y colaboración estrechas entre los equipos de desarrollo de software y operaciones de TI. Esto permite que los desarrolladores lancen software con un modelo ágil, ciclos de desarrollo más cortos, entrega continua y ciclos de retroalimentación rápidos.
¿Qué es DevSecOps?
DevSecOps es la evolución natural de DevOps. Los enfoques de seguridad heredados no pueden proteger eficazmente las aplicaciones creadas con métodos DevOps. DevSecOps integra a los equipos de seguridad en los procesos de DevOps y garantiza que la seguridad se incorpore a las aplicaciones durante su desarrollo.
¿Cuál es la diferencia entre DevOps y DevSecOps?
DevOps se centra en mejorar el proceso de desarrollo de aplicaciones desde la perspectiva de los desarrolladores, mientras que DevSecOps incorpora la seguridad al proceso de DevOps. DevSecOps es un enfoque más moderno y sostenible para desarrollar software destinado a las aplicaciones nativas de la nube de hoy.
¿Cuáles son las ventajas de DevSecOps frente a DevOps?
Los métodos DevOps permiten ciclos de lanzamiento más rápidos y ayudan a los desarrolladores a responder a las crecientes demandas de los clientes, pero a menudo dejan la seguridad para después. DevSecOps aborda este problema al integrar la seguridad en los flujos de trabajo y las herramientas de desarrollo.
DevOps vs. DevSecOps vs. SecDevOps
Aunque DevSecOps garantiza que la seguridad se integre en los procesos de DevOps, sigue priorizando el desarrollo. SecDevOps, en cambio, garantiza que los procesos de desarrollo incorporen la seguridad desde las primeras etapas de planificación y diseño hasta la implementación. SecDevOps es la evolución natural de DevSecOps en respuesta a la naturaleza cambiante de las amenazas modernas de ciberseguridad.