Compartir por


Protección del entorno de la plataforma DevOps para Confianza cero

Este artículo le ayuda, como miembro del equipo de DevOps, a implementar el principio de Confianza cero de privilegios mínimos y proteger el entorno de la plataforma DevOps. Incluye contenido de nuestro libro electrónico Protección de entornos de Enterprise DevOps y resalta los procedimientos recomendados para la administración de secretos y certificados.

Las empresas modernas se basan en plataformas de DevOps para la implementación, incluidas las canalizaciones y los entornos de producción que los desarrolladores necesitan para ser productivos. Antiguamente, los métodos de seguridad de aplicaciones no consideraban el aumento de la superficie expuesta a ataques que las canalizaciones y entornos de producción exponen en la actualidad. A medida que los actores malintencionados se desplazan hacia la izquierda e impactan en las herramientas ascendentes, necesita enfoques innovadores para asegurar los entornos de sus plataformas DevOps.

En el diagrama siguiente, observe que el entorno de la plataforma DevOps se conecta al entorno de la aplicación y a las extensiones de canalización de integración continua y entrega continua (CI/CD).

En el diagrama se muestran los entornos de la plataforma DevOps y las amenazas de seguridad.

Las extensiones de canalización de CI/CD presentan a actores malintencionados oportunidades para realizar escalaciones de privilegios desde el entorno de la aplicación. Las extensiones y las integraciones aumentan las vulnerabilidades de la superficie expuesta a ataques. Es fundamental defenderse contra amenazas de intrusiones de malware.

Cómo y por qué los actores incorrectos tienen como destino las canalizaciones

Las canalizaciones y los entornos de producción pueden ser independientes de los procesos y prácticas de seguridad de aplicaciones estándar. Normalmente requieren credenciales de acceso de alto nivel que pueden proporcionar acceso profundo y significativo a actores maliciosos.

Aunque los actores incorrectos encuentran nuevas formas de poner en peligro los sistemas, las vulnerabilidades más comunes para las canalizaciones son:

  • Extracción de variables en tiempo de ejecución e inserción de argumentos.
  • Scripts que recuperan los principios de servicio o las credenciales de las canalizaciones.
  • Tokens de acceso personal mal configurados que permiten que cualquier persona con la clave acceda al entorno de la plataforma de DevOps.
  • Vulnerabilidades y configuraciones incorrectas en herramientas integradas que requieren acceso al código (a menudo de solo lectura, pero a veces acceso de escritura). Las herramientas integradas pueden incluir marcos de prueba, pruebas de seguridad de aplicaciones estáticas (SAST) y pruebas dinámicas de seguridad de aplicaciones (DAST).

Procedimientos recomendados para la administración de secretos y certificados

Evitar una vulneración grave puede ser tan simple como una administración de secretos eficaz. En el diagrama siguiente se muestra un ejemplo de contraseña, token de acceso, administración de certificados y secreto efectivo.

Diagrama que muestra la administración de secretos y certificados.

Como se muestra en el diagrama anterior, el desarrollador inicia una compilación para una solicitud de cliente. A continuación, GitHub inicia un ejecutor con el ID de rol y el ID de secreto del Role de la aplicación Vault. La entidad de confianza solicita periódicamente un nuevo id. de secreto desde el almacén y obtiene el id. de secreto de GitHub desde GitHub. La Vault utiliza el ID de rol de secretos de GitHub y el ID de secreto para iniciar sesión y obtener activos de firma de código. El Runner personaliza y firma digitalmente la aplicación móvil.

Los siguientes procedimientos recomendados le ayudan a crear una configuración segura que minimice la exposición de secretos y parámetros.

  • Proporcione almacenamiento seguro para secretos y certificados en cada fase del ciclo de vida de la aplicación. Desarrolle siempre como si fuera un proyecto de código abierto. Asegúrese de que los equipos almacenan secretos en almacenes de claves en lugar de en el código o en entornos de equipo. Utilice el servicio en la nube de Azure Key Vault para el almacenamiento de los secretos y el acceso a estos de forma segura.
  • Configure Azure para confiar en OIDC de GitHub como identidad federada. OpenID Connect (OIDC) permite que sus flujos de trabajo de Acciones de GitHub accedan a recursos de Azure sin tener que almacenar las credenciales de Azure como secretos de GitHub de larga duración.

Más procedimientos recomendados para la seguridad del entorno de DevOps

Para ayudar a defenderse contra incidentes de seguridad, revise los siguientes procedimientos recomendados con los que fortalecer los entornos de la plataforma DevOps. Busque una explicación detallada de estas recomendaciones en nuestro libro electrónico Protección de los entornos de Enterprise DevOps .

  • Equipe todos los entornos de plataforma de DevOps con seguimientos de auditoría.Revise los registros de auditoría para supervisar quién ha accedido, qué cambios se han producido y la fecha y hora de cualquier sistema activo. En concreto, se incluyen plataformas de DevOps con canalizaciones de CI/CD que se integran en producción. Los seguimientos de auditoría para las herramientas de DevOps brindan formas robustas de remediar amenazas más rápidamente, encontrar y alertar sobre actividades sospechosas que podrían indicar infracciones o vulnerabilidades, e identificar el mal uso potencial de datos o privilegios. Asegúrese de que las pistas de auditoría y el control granular están disponibles en cada entorno.
  • Proteja la cadena de suministro de software. Con cada biblioteca que incorpore a su código base, se expande la cadena de suministro de software y se heredan las dependencias de cada proyecto o herramienta de código abierto. Con precaución, elimine las bibliotecas innecesarias y los componentes de código abierto para reducir la superficie expuesta a ataques de la cadena de suministro de software.
  • Automatizar los análisis de plantillas de infraestructura como código (IaC). Con los entornos de IaC, es fácil escanear en busca de configuraciones incorrectas, verificaciones de cumplimiento y problemas relacionados con políticas. La implementación de comprobaciones de cumplimiento y controles de acceso aumenta la posición de seguridad de toda la infraestructura. Compruebe la seguridad de las integraciones de herramientas que cumplen los requisitos del sistema de automatización.
  • Automatizar flujos de trabajo de aprobación. Para que cualquier flujo de trabajo de aprobación inserte código en producción, determinadas comprobaciones automáticas o manuales deben confirmar la seguridad, el valor empresarial, el estado y la calidad de cada solicitud. Estas comprobaciones funcionan como una puerta entre el desarrollo y la producción para evitar ataques por denegación de servicio y actores incorrectos que insertan código en entornos de producción sin marcar ni desencadenar una alerta.
  • Permitir solo integraciones de herramientas de DevOps comprobadas. Al igual que en entornos para desarrolladores, las herramientas de DevOps incluyen extensiones e integraciones para que el equipo de DevOps sea eficaz y seguro. Confirme que las integraciones verificadas requieren el menor privilegio posible para ejecutar su trabajo. Implemente el acceso con privilegios mínimos siempre que sea posible y asegúrese del nivel correcto de permisos de lectura y escritura. Aprenda a deshabilitar o limitar las acciones de GitHub para la organización.

Pasos siguientes