Desafíos y consideraciones de seguridad de DevOps

La introducción de la metodología de infraestructura como código (IaC) ha hecho necesario que las organizaciones se adapten rápidamente e implanten nuevos procesos para operar, desarrollar y mantener aplicaciones en diferentes entornos, como el entorno local y multinube. Un aumento de los procesos y la velocidad puede dar lugar a lagunas de seguridad. Como resultado, los procesos se han perfeccionado a lo largo del tiempo para implantar ciclos de despliegue y liberación de productos más eficientes y seguros. Los nuevos procesos de seguridad integrados con la metodología IaC se denominan DevSecOps.

Utilice el servicio Oracle Cloud Infrastructure (OCI) DevOps para alcanzar sus objetivos de DevOps.

El servicio OCI DevOps es una plataforma completa de integración y entrega continuas (CI/CD) para simplificar y automatizar el ciclo de vida de desarrollo de software. El servicio DevOps hace posible la colaboración en el desarrollo, la creación, la prueba y el despliegue de software. Dispone de visibilidad en todo el ciclo de vida de desarrollo y obtiene un historial de confirmaciones de origen a través de las fases de creación, prueba y despliegue.

Durante el proceso de definición de DevSecOps, debe analizar los componentes del pipeline de integración y entrega continuas en el proceso de despliegue para reforzar las defensas de seguridad. También debe considerar cómo mejorar el código fuente y proteger los repositorios de código.

Cómo funciona DevSecOps y por qué lo necesita

Los objetivos de la metodología DevOps siempre han sido aumentar la eficiencia y acelerar la producción de despliegue. Los objetivos de DevSecOps son los mismos que los de DevOps, a los que se añade proteger todos los componentes utilizados en diversos procesos de despliegue.

DevSecOps es una responsabilidad compartida con todas las partes interesadas, incluido el proveedor de nube, los ingenieros de DevOps, los ingenieros de prueba, los propietarios de aplicaciones y los analistas de seguridad. Debe encontrar el equilibrio adecuado para mantener la velocidad y la agilidad durante el ciclo de vida del software, a la vez que mantiene el nivel adecuado de seguridad integral.

El modelo de madurez de DevSecOps (DSOMM) proporciona medidas de seguridad que se aplican cuando se utilizan estrategias de DevOps, junto con cómo priorizarlas para mejorar la seguridad. Por ejemplo, utilice el modelo para determinar cómo probar cada componente, como bibliotecas de aplicaciones y bibliotecas del sistema operativo en imágenes de docker, para detectar vulnerabilidades conocidas.

Aplicación de DevSecOps en OCI

La siguiente información proporciona el flujo de trabajo típico de DevSecOps que utiliza las funciones de OCI.

  1. Un desarrollador crea código dentro de un repositorio (por ejemplo, en el servicio DevOps con políticas/permiso y repositorios de código de terceros como GitHub y GitLab). Para integrarlo con repositorios de código de terceros como GitHub y GitLab, cree un token de acceso personal (PAT) en GitHub o GitLab y, a continuación, almacene el PAT en un almacén de OCI.

  2. Los cambios se envían a la herramienta de integración y entrega continuas (CI/CD) para la creación.

  3. La herramienta de integración y entrega continuas puede realizar cualquiera de las siguientes acciones:

    • Puede llamar a una herramienta de terceros para el análisis de código estático y dinámico identifique cualquier defecto de seguridad o bug en la calidad del código, como Sonatype, SonarQube o OverOps.
    • Transfiera la imagen de contenedor recién creada a un repositorio de Oracle Cloud Infrastructure Registry con la capacidad de exploración activada. A continuación, la herramienta de integración y entrega continuas obtiene los resultados del análisis de imagen mediante la API de REST de Vulnerability Scanning. Basándose en los resultados de la exploración de imágenes, la herramienta de integración y entrega continuas puede determinar si desea mover la imagen a la siguiente etapa del ciclo de vida.
  4. Si se supera el análisis de código o la exploración de imágenes, se realizan pruebas automatizadas, como las pruebas de seguridad, integración de API e interfaz de usuario.

  5. Si la aplicación y el código superan estas pruebas, la mejor práctica dentro del pipeline de despliegue es agregar una aprobación de etapa de control. Una etapa de aprobación realiza una pausa del despliegue durante un tiempo especificado en el cual un aprobador recibe una notificación de los despliegues y, a continuación, proporciona una aprobación de forma manual.

  6. Una vez aprobado el pipeline de despliegue, la aplicación y el código se despliegan en las plataformas de OCI del entorno de producción, que incluyen: Instancias informáticas (de máquina virtual y con hardware dedicado), Container Engine for Kubernetes (Kubernetes gestionado) y OCI Functions (funciones sin servidor).

  7. El entorno en el que se despliega la aplicación se debe supervisar de forma continua para identificar incidencias de seguridad. Además, realice la supervisión clásica de métricas y logs de servicio utilizando los servicios de OCI Application Performance Monitoring (APM), Logging y Monitoring. Configure sistemas de supervisión para responder rápidamente a las amenazas de seguridad mediante las funciones nativas de OCI, como Notifications. También puede integrar logs con sistemas de creación de tickets (por ejemplo, ServiceNow) o sistemas SIEM de terceros.

Pipeline de despliegue de DevSecOps en OCI.

Mejores prácticas de DevSecOps

Recomendamos las siguientes mejores prácticas de DevSecOps.

  1. Aplique políticas y gobernanza.

    Un proceso de DevSecOps correcto cumple e implanta una gobernanza sólida centrada en las funciones de seguridad, como la gestión de identidades y accesos (IAM) y la administración de acceso con privilegios (PAM). El proceso también debe definir roles para el modelo de DevSecOps, proporcionar una formación adecuada y mantenerse actualizado sobre las últimas técnicas de seguridad.

  2. Automatice sus procesos y herramientas de seguridad de DevOps.

    Utilice la automatización en su proceso de DevOps para reducir los riesgos de errores humanos e incidentes de seguridad. El uso de herramientas más eficientes y la automatización da como resultado procesos de seguridad de DevOps más rápidos y aplicaciones más resistentes. OCI proporciona herramientas de seguridad para el análisis de código, la gestión de la configuración, la aplicación de parches y la gestión de vulnerabilidades con OS Management y Oracle Vulnerability Scanning Service. La gestión de credenciales y secretos con privilegios se proporciona con Vault.

  3. Realice una detección completa.

    Valide, supervise e incluya continuamente todos los dispositivos, herramientas y cuentas de acuerdo con su política de seguridad. Este proceso le permite alinear sus activos de OCI para adoptar un modelo de seguridad de confianza cero.

  4. Gestione las vulnerabilidades.

    Todos los tipos de vulnerabilidades se deben considerar, catalogar, validar y corregir antes de que el despliegue de la aplicación pase a producción. Recomendamos integrar la directriz OWASP DevSecOps con las pruebas de seguridad de DevSecOps.

  5. Proteja el acceso con la gestión de secretos de DevOps.

    Al implantar procesos de DevOps, priorice la gestión de la seguridad y el ciclo de vida de las credenciales y las cuentas de identidad en el código. Vault puede ayudarle a llevar a cabo la gestión de secretos.

  6. Controle, supervise y audite el acceso con la gestión de acceso con privilegios.

    La adopción de servicios de OCI como IAM, Políticas de IAM de DevOps, Logging y Monitoring puede ayudarle a gestionar el acceso con privilegios.

  7. Segmente las redes.

    Al definir los procesos de DevOps, debe segmentar las redes para reducir las superficies de ataque y, al mismo tiempo, aislar diferentes entornos de trabajo (por ejemplo, aislar la producción de entornos de prueba de desarrollo).

Para obtener más información, consulte la sección sobre la zona de llegada de autoservicio, que cumple la referencia de Fundamentos de CIS para Oracle Cloud.