Descripción de DevSecOps
La adopción de la nube continúa acelerando a medida que las organizaciones buscan apoyar la productividad empresarial, habilitar el trabajo remoto y escalar las operaciones de forma eficaz. Sin embargo, esta rápida adopción sin una infraestructura de seguridad adecuada puede comprometer accidentalmente los datos y exponer a las organizaciones a riesgos significativos.
La brecha de seguridad en las aplicaciones en la nube
Las brechas de seguridad persisten incluso a medida que crece la adopción de la nube. Las organizaciones que se mueven a plataformas en la nube no siempre implementan controles de seguridad adecuados:
Brechas de cifrado: Muchas aplicaciones en la nube no pueden proteger correctamente los datos:
- Datos en reposo: Las bases de datos sin cifrar, las cuentas de almacenamiento y los sistemas de archivos dejan los datos vulnerables cuando se accede a los medios de almacenamiento, se roban o se eliminan incorrectamente.
- Datos en tránsito: Las aplicaciones que transmiten datos a través de conexiones sin cifrar exponen información a la interceptación. Incluso el tráfico de red interno debe cifrarse.
- Brechas comunes: Los porcentajes significativos de aplicaciones SaaS no cifran adecuadamente los datos. Las aplicaciones de almacenamiento a menudo carecen de cifrado tanto en reposo como en tránsito. Las aplicaciones de colaboración transmiten con frecuencia información confidencial sin una protección adecuada.
Deficiencias de protección de sesión: La administración de sesiones débiles crea vulnerabilidades:
- Faltan encabezados de seguridad HTTP: Las aplicaciones que no implementan encabezados de seguridad como HSTS (seguridad de transporte estricto HTTP), CSP (directiva de seguridad de contenido) y atributos de cookies seguros dejan las sesiones vulnerables al secuestro.
- Exposición de tokens: Los atacantes pueden interceptar y reutilizar los tokens de sesión transmitidos de forma no segura para suplantar a los usuarios legítimos.
- Adopción limitada: Muy pocas aplicaciones SaaS implementan una protección completa de la sesión de encabezado HTTP, lo que deja a los usuarios vulnerables a ataques basados en sesión.
Qué es Secure DevOps (DevSecOps)
La tensión entre la velocidad y la seguridad: DevOps hace hincapié en el trabajo más rápido a través de la automatización, la integración continua y la implementación rápida. La seguridad tradicionalmente enfatiza la profundidad, la revisión cuidadosa y las pruebas completas. Estos objetivos pueden parecer contradictorios.
Problemas de enfoque de seguridad tradicionales: Cuando los problemas de seguridad solo se abordan al final del ciclo de desarrollo, surgen varios problemas:
- El trabajo no planificado aparece justo antes de la implementación cuando los equipos están bajo presión para la publicación.
- Los problemas de seguridad detectados con retraso requieren un costoso retrabajo de las funciones completadas.
- La seguridad se convierte en un cuello de botella que ralentiza o bloquea las versiones.
- Los equipos ven la seguridad como un obstáculo en lugar de un facilitador.
- Es posible que se desprioriticen las vulnerabilidades de seguridad críticas debido a las presiones de liberación.
La solución Secure DevOps: Secure DevOps integra la seguridad con las prácticas de DevOps en un conjunto cohesivo de actividades diseñadas para cumplir los objetivos de la velocidad de DevOps y la eficacia de la seguridad. La seguridad se convierte en parte del proceso de desarrollo desde el principio en lugar de una puerta al final.
Ventajas de la integración: Una canalización de DevOps segura permite a los equipos de desarrollo trabajar rápidamente sin interrumpir su proyecto mediante la introducción de vulnerabilidades de seguridad no deseadas. La seguridad y la velocidad se convierten en complementarias en lugar de objetivos opuestos.
Nota
DevOps seguro también se conoce a veces como DevSecOps. Es posible que encuentre ambos términos, pero cada uno hace referencia al mismo concepto. La diferencia de terminología es puramente estilística. Las prácticas y los principios siguen siendo idénticos.
Cómo evolucionan las prácticas de seguridad en Secure DevOps
Metodologías de seguridad tradicionales: Históricamente, la seguridad operaba en ciclos más lentos y se centraba principalmente en:
- Control de acceso: Administración de quién puede acceder a sistemas y datos a través de mecanismos de autenticación y autorización.
- Protección del entorno: Configurar sistemas para quitar servicios innecesarios, aplicar revisiones de seguridad y aplicar configuraciones seguras.
- Protección perimetral: Uso de firewalls, sistemas de detección de intrusiones y segmentación de red para proteger el límite de red.
Ámbito de seguridad expandido: Secure DevOps incluye estas metodologías de seguridad tradicionales, pero amplía los problemas de seguridad durante todo el ciclo de vida de desarrollo de software. Con Secure DevOps, la seguridad consiste en proteger la propia canalización y todo lo que fluye a través de ella.
Foco en la seguridad de la canalización: Secure DevOps consiste en determinar dónde agregar protección a los elementos que se conectan a las canalizaciones de compilación y versión:
- Repositorios de código fuente.
- Crear servidores y agentes.
- Almacenamiento y registros de artefactos.
- Herramientas y procesos de implementación.
- Plantillas de infraestructura como código.
- Sistemas de administración de configuración.
- Soluciones de administración de secretos.
Enfoque completo: Secure DevOps muestra cómo y dónde agregar seguridad a las prácticas de automatización, los entornos de producción y otros elementos de canalización, a la vez que mantiene las ventajas de velocidad de DevOps. Los controles de seguridad se automatizan e integran en lugar de manuales y independientes.
Preguntas clave que aborda Secure DevOps
Secure DevOps ayuda a las organizaciones a responder a preguntas de seguridad críticas:
Seguridad de componentes de terceros:
- ¿Mi canalización consume componentes de terceros y son seguros?
- ¿Estos componentes proceden de orígenes de confianza?
- ¿Se comprueban las firmas de componentes?
- ¿Son compatibles las licencias con nuestro uso?
Administración de vulnerabilidades:
- ¿Hay vulnerabilidades conocidas dentro de cualquiera de los softwares de terceros que usamos?
- ¿Cómo se realiza un seguimiento de las divulgaciones de vulnerabilidades para nuestras dependencias?
- ¿Cuál es nuestro proceso para actualizar componentes vulnerables?
- ¿Tenemos un inventario de todas las dependencias, incluidas las transitivas?
Velocidad de detección (tiempo para detectar):
- ¿Con qué rapidez puedo detectar vulnerabilidades?
- ¿Se automatizan los exámenes de seguridad en la canalización?
- ¿Tenemos supervisión en tiempo de ejecución para problemas de seguridad?
- ¿Qué tan rápido llegan las alertas de seguridad a las personas adecuadas?
Velocidad de corrección (tiempo para corregir):
- ¿Con qué rapidez puedo corregir las vulnerabilidades identificadas?
- ¿Podemos implementar correcciones a través de la misma canalización automatizada?
- ¿Cuál es nuestro proceso para las revisiones de seguridad de emergencia?
- ¿Cómo comprobamos que la corrección es eficaz?
Seguridad como código
Prácticas de seguridad automatizadas: Las prácticas de seguridad para detectar posibles anomalías de seguridad deben ser tan sólidas como otras partes de la canalización de DevOps. Esto incluye:
Automatización de la seguridad de la infraestructura:
- Examen automatizado de seguridad de las plantillas de infraestructura como código.
- Aplicación de directivas como código para configuraciones de recursos en la nube.
- Comprobación de cumplimiento antes de la implementación de la infraestructura.
- Supervisión continua de la posición de seguridad de la infraestructura.
Automatización de la seguridad de aplicaciones:
- Pruebas estáticas de seguridad de aplicaciones (SAST) durante las compilaciones.
- Pruebas dinámicas de seguridad de aplicaciones (DAST) en entornos de ensayo.
- Análisis de composición de software para vulnerabilidades de dependencia.
- Examen de imágenes de contenedor antes de la implementación.
- Autoprotección de aplicaciones en tiempo de ejecución (RASP) en producción.
Seguridad continua: La seguridad de Secure DevOps no es un único punto de control. Se trata de una validación continua en todo el desarrollo, la implementación y la operación. Cada fase de la canalización incluye controles de seguridad adecuados que se ejecutan automáticamente sin ralentizar la entrega.