Fran García, Cyber Security Specialist, Cloud Security.
Fran García Cyber Security Specialist Cloud Security Alliance
Antonio Delgado, Holcim
Antonio Delgado Global IT Security Officer Holcim

Cómo poner el “Sec” en DevSecOps

DevSecOps

A lo largo de los años, el desarrollo de software y las operaciones se han considerado áreas separadas, lo que ha ralentizado la entrega de software y complicado su mantenimiento. Para abordar estas barreras, nació DevOps, una metodología que fomenta la colaboración entre equipos, elimina los silos y automatiza procesos clave. Gracias a DevOps, las empresas no solo aceleran sus entregas, sino que también logran crear software más seguro, estable y alineado con las necesidades del negocio.

Sin embargo, el desarrollo de software va mucho más allá de escribir líneas de código; es un proceso continuo que abarca desde la concepción de la idea hasta el retiro de la aplicación. Este ciclo de vida del desarrollo de software (SDLC) incluye diversas etapas esenciales, como planificación, diseño, desarrollo, pruebas, implementación y mantenimiento. A lo largo de este ciclo, la seguridad ha sido tradicionalmente tratada como un componente final, lo que genera vulnerabilidades que pueden ser aprovechadas por los atacantes.

Para transformar esta dinámica y hacer de  la seguridad una prioridad desde el principio, nace DevSecOps. Esta filosofía integra la seguridad en cada fase del SDLC, convirtiéndola en una responsabilidad compartida y no en un obstáculo de último momento. A través de este enfoque, el software se construye de manera segura desde su concepción, lo que no solo fortalece la protección contra riesgos, sino que también genera mayor confianza entre los usuarios. Además, gracias a su enfoque proactivo, las organizaciones pueden anticiparse a los riesgos, reduciendo costos y garantizando el cumplimiento normativo de forma continua, en lugar de reaccionar ante amenazas cuando ya es demasiado tarde.

DevSecOps: seguridad desde la primera línea de código

El desarrollo de software ha evolucionado hacia entornos dinámicos donde la rapidez y la adaptabilidad son clave. Las metodologías Agile permiten iteraciones constantes, mientras que herramientas como GitOps optimizan la gestión operativa al utilizar Git como la única “fuente de verdad”. Gracias a los sistemas de control de versiones, los equipos pueden colaborar de manera eficiente, rastrear cambios con precisión y garantizar la integridad del código, asegurando procesos más fluidos y organizados.

Por otro lado, la filosofía Shift Left ha revolucionado la seguridad al integrarla desde las primeras etapas del desarrollo. En lugar de tratar los problemas al final del ciclo, este enfoque adelanta las pruebas y controles de seguridad, permitiendo identificar y corregir vulnerabilidades antes de que se conviertan en riesgos mayores. Esto no solo mejora la calidad del software, sino que también reduce costos y evita complicaciones en fases críticas. Si ya era crucial la integración de prácticas de seguridad desde las fases de diseño software en metodologías clásicas, esto cobra, si cabe, mayor importancia en entornos ágiles y dinámicos, donde la integración y despliegue del código a producción se hace de manera automática. Y si de la misma manera automática integramos medidas de seguridad en todas las fases del ciclo de vida del software, será mucho más improbable que despleguemos nuestras aplicaciones con vulnerabilidades.

DevSecOps.

Hacia una cultura de DevSecOps

Sin profundizar en exceso, a continuación presentamos algunas medidas de seguridad que pueden integrarse en cada fase del SDLC para avanzar hacia una cultura de DevSecOps:

  • Durante la configuración del entorno de desarrollo. Los portátiles de los desarrolladores es donde ocurre la magia, pero también donde surgen la mayoría de los problemas de seguridad. Por ello, es crucial proteger estos equipos, aplicando un enfoque de Shift Left tanto como sea posible. En este sentido, se recomienda capacitar a los desarrolladores en el uso de sistemas de control de versiones e implementar las siguientes prácticas en el entorno de desarrollo:
    • Incluir un archivo llamado .gitignore para evitar la incorporación accidental de archivos con información sensible.
    • Firmar todos los commits para garantizar la integridad del código.
    • Integrar escaneos mediante pre-commit hooks, que son verificaciones automáticas de seguridad que proporcionan retroalimentación temprana (antes de realizar el commit) para evitar que se añadan vulnerabilidades al código.
    • Utilizar plugins o integraciones en el entorno de desarrollo que detecten errores de programación en tiempo real.
    • Incorporar análisis locales de composición de software de terceros, análisis estático de código y detección de datos sensibles.
  • Durante la gestión del código fuente (o Source Code Management, SCM, en inglés). Es muy recomendable usar un SCM en la nube centralizado donde los desarrolladores comparten su código con el equipo. Los más conocidos son GitHub, Bitbucket o Gitlab. Para configurarlos de forma segura es recomendable:
    • Crear roles y usuarios únicos que permitan la trazabilidad y garantizar el principio de mínimo privilegio.
    • Usar SSH, en vez de HTTPS, para acceder a los repositorios remotos.
    • Preservar la integridad creando una clave GPG.
    • Obligar al uso del doble factor de autenticación (MFA).
    • Impedir que código fuente pueda ser desplegado a producción sin haber creado un Pull Request y que haya sido aprobado por algún code owner.
    • Incluir un archivo llamado SECURITY.md que detalle a quién contactar si se detecta algún fallo de vulnerabilidad en la aplicación.
  • Durante la automatización de los pipelines de CI/CD. Hay que asegurarse que los entornos de producción y desarrollo o testeo están claramente separados, y además:
    • Los secretos o datos sensibles nunca deben ir en texto plano, sino que deben consumirse desde un lugar centralizado y encriptado.
    • Incorporar escaneos de seguridad previos a la integración y despliegue del código, como análisis de composición de software, análisis de código estático o de detección de datos sensibles, así como escaneos dinámicos de código para aplicaciones.
  • Durante el despliegue. El despliegue puede realizarse desde un servidor externo hasta un servicio SaaS. Por lo tanto, hay que encargarse de que sea seguro.
    • Usar certificados SSL y encriptar todo el tráfico de red.
    • Redirigir tráfico HTTP a HTTPS.
    • Cifrar los datos en reposo.
    • Garantizar que se usan las versiones más recientes de todos los componentes, librerías, sistema operativo, etc.
    • Monitorizar y capturar logs de aplicación de toda la actividad y enviarlo a una herramienta de agregación de logs externa.
    • Integrar soluciones de seguridad adicionales, como WAF o CDN.
    • Obligar al uso de Infraestructura como Código (IaC) para desarrollar todas las aplicaciones.
    • Hacer un hardening del sistema operativo siguiendo prácticas de seguridad recomendadas por la industria.

Todas las medidas mencionadas anteriormente carecen de eficacia sin ir acompañadas de un apoyo de la dirección de la organización y de seguir una metodología de mejora continua. Para ello, conviene complementar todas estas prácticas durante el ciclo de SDLC con soluciones corporativas como herramientas SIEM, análisis de vulnerabilidades, threat modeling o penetration tests.

Conclusiones: poniendo el “Sec” en DevSecOps

DevOps ha transformado la manera en que desarrollamos y entregamos el software, acelerando los ciclos de desarrollo y mejorando la eficiencia operativa. Sin embargo, sin una estrategia de seguridad integrada, estos beneficios pueden verse comprometidos por vulnerabilidades y riesgos que surgen en cada fase del proceso. Por eso, DevOps no se entiende sin la seguridad, del mismo modo que la seguridad no debería concebirse sin adoptar prácticas ágiles y automatizadas propias de DevOps.

La clave de DevSecOps no es solo añadir controles de seguridad, sino hacer que esta forme parte del ADN del desarrollo. Desde la planificación hasta el despliegue, cada paso debe incorporar medidas que protejan la integridad del software sin frenar la innovación.

Solo cuando logramos esta integración real, poniendo el “Sec” en DevSecOps de manera natural y no forzada, conseguimos software verdaderamente seguro, ágil y confiable. No se trata de elegir entre rapidez y seguridad, sino de hacer que ambas trabajen juntas. Porque en un mundo donde las amenazas evolucionan constantemente, la seguridad ya no puede ser un añadido; debe ser un principio fundamental en el desarrollo.

Aplicar filtros
¡Inscripción abierta para el Curso Superior de Inteligencia y Empresa!
¡Inscripción abierta para el Curso Superior de Inteligencia y Empresa!
La Fundación Borredá abre el periodo de inscripción para el nuevo Curso Superior de Inteligencia y Empresa