Primero lo primero…
DevOps
El objetivo final de DevOps es minimizar el riesgo de los cambios que se producen en las entregas y dar así un mayor valor tanto a los clientes como al propio negocio”
Rescatemos de momento tres ideas clave:
- DevOps es una metodología para creación de software.
- DevOps se basa en la integración entre desarrolladores software y administradores de sistemas.
- DevOps permite fabricar software más rápidamente, con mayor calidad, menor coste y una altísima frecuencia de releases.
El CBK (Common Body of Knowledge) tradicional de la Ciberseguridad no se lleva del todo bien con DevOps…
El desafío sobre algunos prácticas básicas inmediatamente pone en conflicto intereses de la disciplina.
“Si no puedes con ellos, úneteles!”
Ejemplo de pipeline DevOps
La Integración Continua, es la columna vertebral del entorno DevOps moderno. Cierra la brecha entre los equipos de desarrollo y operaciones al automatizar la construcción, prueba e implementación de aplicaciones.
Seguridad Integrada en el pipeline DevOps
Escaneo continuo de seguridad:
- Detección de vulnerabilidades debido a código que proviene de fuentes no confiables.
- Detección de datos sensibles (tokens, secretos, claves privadas, etc) que puedan estar expuestos en código e imágenes.
- Detección de malware embebido y malas configuraciones.
Monitorización de los containers y detección de comportamientos anómalos:
- Restringir ciertas llamadas APIs durante la fase de ejecución, y únicamente permitir las conexiones que sean estrictamente necesarias.
- Monitorización y trazabilidad del comportamiento del container.
- Conexiones y tráfico sospechoso entre máquinas
- Monitorización de recursos en los containers (CPU, memoria, peticiones, uso, rendimiento, etc).
- Controlar tráfico y conectividad entre microservicios (API Gateway).
Control y trazabilidad de accesos centralizado:
- Detección de posible escalado de privilegios (llamadas de sistema no permitidas) y limitar número
de plugins con exceso de privilegios. - Logging de todos los intentos de acceso a repositorios de datos sensibles.
- Analizar comportamiento de las APIs y disminuir el número de APIs expuestas (seguridad API Gateway).
“La seguridad debe ser un componente incorporado en los procesos DevOps.”
Pipeline DevSecOps Paralelos
¿Todo es automatizable?
- Debe estar bien definido el proceso, los resultados esperados y la respuesta.
- No debe requerir de intervención humana en forma mandatoria
- Debe contar con interfaces programables o de administración.
sino puede automatizarse completamente…
¿puede automatizarse parcialmente? … es posible
Reflexiones
Como hemos visto, incorporar la seguridad en un modelo DevOps implica tomar en consideración todos los elementos implicados en el pipeline de entrega de valor. Lo cual puede suponer un esfuerzo importante.
No obstante, podemos tomar ventaja del modelo en sí mismo. Ya que DevOps es holístico por definición, y apoyarnos en las buenas prácticas para lograr nuestro objeto. Para ello necesitaremos implicar casi seguramente al equipo de seguridad; estar al día en las herramientas de seguridad para cada paso del proceso y gestinarlas adecuadamente.
La seguridad en nuestra implementación debe ser un trabajo en marcha y con mejoras continuas, tal como enfatiza el modelo.
LÍNEA DE RESULTADOS
La necesidad siempre creciente de llevar productos de calidad fuera de la puerta más rápido ha elevado las prácticas de DevOps a la posibilidad de tenerlas en la arena del desarrollo de software. En una extensión natural de la evolución de DevOps, la tendencia DevSecOps ofrece a los CIO y a sus equipos de desarrollo una nueva mezcla de herramientas, prácticas, y automatización que, desplegadas en concierto, pueden ayudar a asegurar el desarrollo y las operaciones.