DevOps

¿Qué es DevSecOps?

DevOps no solo se trata de los equipos de desarrollo y operaciones. Si desea aprovechar al máximo la agilidad y la capacidad de respuesta de un enfoque DevOps, la seguridad de TI también debe desempeñar un papel integrado en el ciclo de vida completo de sus aplicaciones.

¿Por qué? Antes, el papel de la seguridad estaba aislado y a cargo de un equipo específico en la etapa final de desarrollo. No resultaba tan problemático cuando los ciclos de desarrollo duraban meses o incluso años, pero eso ya no está vigente. La metodología DevOps efectiva asegura ciclos de desarrollo rápidos y frecuentes (a veces de semanas o días), pero las prácticas de seguridad obsoletas pueden revertir incluso las iniciativas DevOps más eficientes.

Actualmente, en el marco de trabajo colaborativo de DevOps, la seguridad es una responsabilidad compartida e integrada en todo el proceso. Es un enfoque tan importante que llevó a algunos a acuñar el término "DevSecOps" para enfatizar la necesidad de crear una base de seguridad en las iniciativas de DevOps.

DevSecOps significa pensar desde el principio en la seguridad de las aplicaciones y de la infraestructura. También implica automatizar algunas puertas de seguridad para impedir que el flujo de trabajo de DevOps se lentifique. La selección de las herramientas adecuadas para integrar continuamente la seguridad puede ayudarlo a alcanzar sus objetivos de seguridad, pero la seguridad efectiva de DevOps requiere más que nuevas herramientas; se construye sobre los cambios culturales de DevOps para integrar el trabajo de los equipos de seguridad lo antes posible.


La seguridad de DevOps está incorporada

Ya sea que lo llame "DevOps" o "DevSecOps", siempre ha sido ideal incluir la seguridad como parte integral de todo el ciclo de vida de la aplicación. DevSecOps cuenta con seguridad incorporada, no con seguridad que funciona como un perímetro alrededor de las aplicaciones y de los datos. Si la seguridad sigue quedando para el final del proceso de desarrollo, las organizaciones que adoptan DevOps corren el riesgo de volver a los largos ciclos de desarrollo que pretendían evitar en primer lugar.

En parte, DevSecOps destaca la necesidad de invitar a los equipos de seguridad desde el inicio de las iniciativas de DevOps para que desarrollen la seguridad de la información y establezcan un plan para la automatización de la seguridad. También subraya la necesidad de ayudar a los desarrolladores a codificar teniendo en cuenta la seguridad, es decir, un proceso que implica que los equipos de seguridad compartan visibilidad, comentarios e información sobre amenazas conocidas. Es posible que esto también incluya una nueva capacitación en seguridad para desarrolladores, ya que el desarrollo de aplicaciones más tradicional no siempre ha hecho hincapié en la seguridad.

¿Qué significa en concreto la seguridad incorporada? Para empezar, una buena estrategia de DevSecOps implica determinar la tolerancia al riesgo y realizar un análisis de riesgos y beneficios. ¿Qué cantidad de controles de seguridad son necesarios dentro de una aplicación determinada? ¿Qué tan importante es la velocidad de comercialización para las diferentes aplicaciones? La automatización de tareas repetidas es clave para DevSecOps, ya que la ejecución de comprobaciones de seguridad manuales en el proceso puede requerir mucho tiempo.


La seguridad de DevOps está automatizada

Se recomienda mantener ciclos de desarrollo cortos y frecuentes, integrar medidas de seguridad con una interrupción mínima de las operaciones, mantenerse al día con las tecnologías innovadoras, como contenedores y microservicios y, al mismo tiempo, fomentar una colaboración más estrecha entre los equipos que suelen estar aislados, lo que es una tarea difícil para cualquier organización. Todas estas iniciativas comienzan a nivel humano, con los pormenores de la colaboración en su organización, pero el facilitador de esos cambios humanos en un marco de DevSecOps es la automatización.

Pero, ¿qué conviene automatizar y cómo hacerlo? Existe una guía escrita que ayudará a responder esta pregunta. Las organizaciones deben dar un paso atrás y considerar todo el entorno de desarrollo y operaciones. Esto incluye los repositorios de control de códigos fuente, los registros de contenedores, el proceso de integración continua e implementación continua (CI/CD), la gestión de la interfaz de programación de aplicaciones (API), la automatización de coordinación y lanzamientos, y la gestión y supervisión operativas.

Las nuevas tecnologías de automatización han ayudado a las organizaciones a adoptar prácticas de desarrollo más ágiles, y también han participado en el avance de nuevas medidas de seguridad. Pero la automatización no es lo único en el panorama de TI que ha cambiado en los últimos años: las tecnologías nativas de la nube, como los contenedores y microservicios, son ahora una parte importante de la mayoría de las iniciativas de DevOps, y la seguridad de DevOps debe adaptarse para cumplirlas.


La seguridad de DevOps se diseñó para los contenedores y microservicios.

La mayor escala y la infraestructura más dinámica habilitadas por los contenedores han cambiado la forma en que muchas organizaciones hacen negocios. Debido a esto, las prácticas de seguridad de DevOps se deben adaptar al nuevo panorama y ajustar en función de las pautas de seguridad específicas del contenedor. Las tecnologías nativas de la nube no se prestan a políticas de seguridad y listas de verificación estáticas. Más bien, la seguridad debe ser continua y debe estar integrada en cada etapa del ciclo de vida de la aplicación y la infraestructura.

DevSecOps significa integrar la seguridad en el desarrollo de aplicaciones de principio a fin. Esta integración en el proceso requiere un nuevo enfoque organizativo que también es necesario para las nuevas herramientas. Con eso en mente, los equipos de DevOps deberían automatizar la seguridad para proteger el entorno y los datos en general, así como el proceso de integración continua/entrega continua, un objetivo que probablemente incluirá la seguridad de los microservicios en contenedores.

Seguridad del entorno y de los datos:

estandarización y automatización del entorno.

Cada servicio debería tener el menor privilegio posible para minimizar las conexiones y el acceso no autorizados.

Centralizar la identidad del usuario y las capacidades del control de acceso.

El control de acceso estricto y los mecanismos de autenticación centralizados son fundamentales para asegurar los microservicios, ya que la autenticación se inicia en múltiples puntos.

Aislar los contenedores que ejecutan microservicios entre sí y de la red.

Esto incluye tanto los datos en tránsito como los de reposo, ya que ambos pueden representar objetivos de alto valor para los atacantes.

Cifrar datos entre aplicaciones y servicios.

Una plataforma de coordinación de contenedores con funciones de seguridad integradas ayuda a minimizar la posibilidad de acceso no autorizado.

Introducir puertas de enlace API seguras.

Las API seguras aumentan la visibilidad de autorizaciones y enrutamientos. Al disminuir la cantidad de API expuestas, las organizaciones pueden reducir las superficies de los ataques.

Seguridad del proceso de CI/CD:

integrar escáneres de seguridad para contenedores.

Esto debería ser parte del proceso para agregar contenedores al registro.

Automatizar las pruebas de seguridad en el proceso de CI.

Esto incluye la ejecución de herramientas de análisis estáticos de seguridad como parte de las compilaciones, así como el escaneo de las imágenes de contenedores creadas previamente para detectar vulnerabilidades de seguridad conocidas a medida que se introducen en el proceso de compilación.

Agregar pruebas automatizadas para las capacidades de seguridad en el proceso de prueba de aceptación.

Automatizar las pruebas de validación de entrada, así como las funciones de autenticación y autorización de verificación.

Automatizar las actualizaciones de seguridad, como parches para vulnerabilidades conocidas.

Hacerlo mediante el proceso de DevOps. Esto debería eliminar la necesidad de que los administradores inicien sesión en los sistemas de producción mientras crean un registro de cambios documentado y rastreable.

Automatizar las capacidades de gestión de configuración de los sistemas y servicios.

Esto permite el cumplimiento de las políticas de seguridad y elimina los errores manuales. La auditoría y la resolución también deberían estar automatizadas.

Las herramientas de DevSecOps que necesita

Administración

Una tecnología de automatización de TI simple y sin agentes que le permite mejorar los procesos actuales, migrar aplicaciones para aumentar la optimización y proporcionar un único lenguaje para las prácticas de DevOps en toda la organización.

Cloud computing

Red Hat® OpenShift® proporciona seguridad incorporada para aplicaciones basadas en contenedores, incluidos los controles de acceso basados en funciones, Security-Enhanced Linux (SELinux) (aislamiento habilitado) y verifica todo el proceso de creación de contenedores.

Hay mucho más para hacer con DevSecOps