Share via


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

Este artículo le ayudará, 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 hackers utilizan herramientas cada vez más sofisticadas, necesita enfoques innovadores para proteger los entornos de la plataforma de DevOps.

En el siguiente diagrama, 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).

Diagrama que ilustra los entornos de la plataforma DevOps y las amenazas de seguridad, tal como se describe en el libro electrónico vinculado anterior y se resume en los artículos relacionados vinculados aquí.

Las extensiones de canalización CICD presentan hackers con oportunidades para participar en elevación 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 atacantes 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 puedan proporcionar acceso profundo y significativo a los atacantes.

Aunque los atacantes encuentran nuevas formas de poner en peligro los sistemas, los vectores de ataque más comunes para las canalizaciones incluyen:

  • 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 de terceros 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 siguiente diagrama se muestra un ejemplo de secreto efectivo, contraseña, token de acceso y administración de certificados.

Diagrama que muestra la administración de secretos y certificados como se describe a continuación.

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 rol de aplicación de almacén. 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. El almacén usa el id. del rol de secretos de GitHub y el id. de secreto para iniciar sesión y obtener recursos de firma de código. El ejecutor personaliza y firma el código de la aplicación móvil.

Los siguientes procedimientos recomendados le ayudarán 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 de incidentes de seguridad, se muestran a continuación más procedimientos recomendados para 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 cada entorno de plataforma de DevOps con pistas de auditoría.Revise los registros de auditoría para realizar un seguimiento de quién obtuvo acceso, qué cambio se ha realizado y la fecha y hora de cualquier sistema activo. En concreto, se incluyen plataformas de DevOps con canalizaciones de CI/CD que fluyen a producción. Las pistas de auditoría para las herramientas de DevOps proporcionan formas sólidas de corregir amenazas más rápido, buscar y alertar sobre actividades sospechosas para posibles vulneraciones o vulnerabilidades, y encontrar posibles datos o uso indebido de 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.
  • Automatización de exámenes de plantillas de infraestructura como código (IaC). Con los entornos de IaC, es fácil buscar configuraciones incorrectas, auditorías de cumplimiento y problemas de directivas. 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 de terceros 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 a fin de evitar ataques por denegación de servicio y que los hackers inserten 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