Compartir a través de


Inserción de la seguridad de Confianza cero en el flujo de trabajo del desarrollador

Como desarrollador, debe sentirse seguro y confiado para moverse a velocidad. La necesidad de seguridad se inicia tan pronto como clone el código. En este artículo, aprenderá a desarrollar mediante los principios de Confianza cero para que pueda innovar de forma rápida y segura. La estrategia de seguridad de confianza cero y el enfoque para diseñar e implementar aplicaciones consta de estos principios:

  • Comprobar de forma explícita. Autentique y autorice siempre en función de todos los puntos de datos disponibles.
  • Usar el acceso con privilegios mínimos. Limite el acceso de los usuarios con los modelos Just-in-Time y Just-in-Time (JIT/JEA), directivas que se adaptan al nivel de riesgo y protección de datos.
  • Asunción de infracciones de seguridad. Minimice el radio de explosión y el acceso a los segmentos. Compruebe el cifrado de un extremo a otro y use análisis para obtener visibilidad, impulsar la detección de amenazas y mejorar las defensas.

La inserción de la seguridad en el flujo de trabajo le ayuda a:

  • Identificar las vulnerabilidades de seguridad más rápidamente.
  • Proporcionar herramientas de desarrollador más seguras.
  • Crear conexiones para mejorar la colaboración entre los equipos de seguridad y desarrollo.

Innovación y protección del flujo de trabajo durante la creación de código

La solución unificada de Microsoft, que se muestra en el siguiente diagrama, sirve de unión entre los equipos de DevOps y SecOps para ayudarle a acelerar y proteger el desarrollo de código a nube.

El diagrama muestra las tecnologías que componen la solución unificada de desarrollo de código a la nube.

Nuestra solución para proteger DevOps se basa en dos componentes principales: proporcionar a los desarrolladores herramientas para impulsar la innovación y proteger el flujo de trabajo del desarrollador a medida que los desarrolladores crean código. Vea la sesión Aceleración y protección del desarrollo de código a la nube de Microsoft Build 2022 para obtener información sobre cómo estos componentes pueden proteger su entorno de desarrollo.

Implemente los siguientes procedimientos recomendados que funcionan juntos en Azure y GitHub para proteger la solución de desarrollo.

  • Dado que la seguridad se inicia cuando los desarrolladores clonan código, habilite DevSecOps con Azure y GitHub para servir de unión entre los equipos de DevOps y SecOps y proteger los entornos de desarrollo.
  • Proporcione herramientas de desarrollo flexibles y eficaces para cualquier desarrollador, lenguaje y pila con Visual Studio y Visual Studio Code.
  • Simplifique la incorporación y colaboración de nuevos desarrolladores con una herramienta de ciclo de vida de desarrollo completo en la nube mediante GitHub Codespaces y Microsoft Dev Box.
  • Incluya la protección integrada de la propiedad intelectual para el código que ya no se disperse en varias ubicaciones. Ayude a los equipos a colaborar, desarrollar, automatizar e implementar código donde quiera con acciones de GitHub y Azure Pipelines.
  • Obtenga instrucciones de seguridad y comentarios de seguridad continuos en el flujo de trabajo del desarrollador con análisis de código, análisis de secretos y revisión de dependencias mediante GitHub Advanced Security.
  • Infunda la seguridad de confianza cero en toda la organización mediante servicios de administración de identidades en Microsoft Entra ID.

Ajuste la seguridad de confianza cero al ciclo de vida de desarrollo

Necesita soluciones de seguridad implementadas en todas las fases del ciclo de vida de desarrollo, desde la confirmación previa hasta la confirmación final, desde la implementación hasta el seguimiento.

Fase de confirmación previa

  • Modelado de amenazas
  • Módulo de seguridad IDE
  • Enlaces de confirmación previa
  • Estándares de codificación segura
  • Revisión por homólogos

El 85 % de los defectos de código aparecen durante la fase de confirmación previa del desarrollo, principalmente debido a un error humano. Céntrese en la seguridad antes de confirmar el código escribiendo el código en Visual Studio Code, Visual Studio o GitHub Codespaces para identificar vulnerabilidades y código seguro. Use revisiones por homólogos para fomentar las prácticas de codificación seguras.

Fase de confirmación (CI)

  • Análisis de código estático
  • Pruebas unitarias de seguridad
  • Administración de dependencias
  • Exploración de credenciales

Durante la fase de confirmación, use métodos de seguridad extensos para revisar el código (incluido el análisis de código estático) y examinar el código a medida que se comprueba en el control de código fuente. Use el examen de credenciales (también conocido como examen de secretos o examen de tokens) para exponer credenciales que podría introducir accidentalmente en el código base. Capture las dependencias no seguras antes de introducirlas en el entorno con la revisión de dependencias.

Fase de implementación (CD)

  • Examen de infraestructura como código (IaC)
  • Examen dinámico de seguridad
  • Comprobaciones de configuración de la nube
  • Pruebas de aceptación de seguridad

Durante la fase de implementación, examine el estado general del código base y realice un análisis de seguridad de alto nivel para identificar los riesgos. Realice comprobaciones de configuración en la nube, comprobaciones de código de infraestructura y pruebas de aceptación de seguridad para garantizar la alineación con los objetivos de seguridad de la organización.

Fase de funcionamiento y supervisión

  • Supervisión continua
  • Información sobre amenazas
  • Análisis post-mortem sin culpables

Durante la fase de funcionamiento y supervisión, use la supervisión continua y la inteligencia sobre amenazas para mitigar las vulnerabilidades de dependencia generales que puede heredar con el tiempo. Realice análisis post-mortem para quitar las lecciones aprendidas y continuar iterando a través del ciclo de DevOps.

Implementación de dependencias, código y examen de secretos

Para facilitar la protección del código para los desarrolladores, use funcionalidades nativas y automatizadas para proporcionar comentarios continuos con características de seguridad continuas durante todo el ciclo de vida de desarrollo. Proporcione seguridad general a los desarrolladores y comunidades con examen de dependencia de GitHub Advanced Security, análisis de código y análisis de secretos.

Examen de dependencias

  • Revisión integrada de dependencias
  • Alertas y actualizaciones de seguridad

Obtenga niveles de riesgo de dependencias y correcciones automatizadas a dependencias vulnerables en el código base con el examen de dependencias continuo. Como parte de un proceso continuo, dirige sutilmente a los desarrolladores en la dirección correcta, y lo hace de una manera amable y sin causarles interrupciones.

Análisis de código

  • Marco extensible para el examen de código
  • Integrado en el flujo de trabajo del desarrollador
  • Respaldado por el motor líder del sector, CodeQL

Implemente el examen de código a medida que genere código sin otros pasos para ejecutarse en ubicaciones independientes. Facilita las correcciones al principio del ciclo de vida de desarrollo mediante la visualización de los resultados del examen en la experiencia del usuario de GitHub.

Análisis de secretos

  • Búsqueda de secretos filtrados en repositorios públicos y privados
  • Asociación con más de 40 proveedores
  • Protección contra el envío de cambios
    • Pasar de la corrección a la prevención
    • Comprobación de secretos de alta confianza
    • Habilitación de la protección con One Select

Examine el código para obtener credenciales y tokens codificados de forma rígida con el análisis de secretos. La protección de inserción examina los secretos y tokens antes de insertar en el código base. Compruebe si hay secretos de alta confianza a medida que los desarrolladores insertan código, bloqueando la inserción cuando GitHub identifica un secreto.

Administración y protección de identidades de carga de trabajo

  • Administración del ciclo de vida
  • Gobernanza del acceso
  • Acceso adaptable seguro

Obtenga visibilidad de la actividad de las identidades de carga de trabajo y habilite la limpieza periódica. Determine quién posee las identidades de carga de trabajo y cómo mantiene esta información actualizada en todos los cambios de la organización. Realice un seguimiento de cuándo ha usado por última vez las identidades de carga de trabajo, cuando emita los tokens por última vez y cuando expiren los tokens.

Para mitigar la posibilidad de que se filtren secretos y credenciales, realice periódicamente revisiones de acceso. Requerir a los usuarios que revisen sus identidades de carga de trabajo y eliminen privilegios de acceso innecesarios. Hacer que los usuarios notifiquen privilegios de acceso con demasiados privilegios e infrautilizados. Analice cómo proteger las identidades de carga de trabajo frente a infracciones. Habilite el acceso condicional para asegurarse de que el acceso se origina en los recursos esperados.

Protección de identidades con OIDC de GitHub y federación de id-de carga de trabajo de Microsoft Entra

Para proteger aún más la organización, use OpenID Connect de GitHub (OIDC) con la federación de identidades de carga de trabajo de Microsoft Entra y minimice la necesidad de almacenar y acceder a secretos. Administre de forma segura los secretos principales del servidor de Azure y otros recursos de credenciales en la nube de larga duración para minimizar el tiempo de inactividad del servicio debido a las credenciales expiradas. Integración con plataformas de desarrollo, como Acciones de GitHub, para crear de forma segura las aplicaciones.

El flujo de trabajo de federación de identidades de carga de trabajo recomendado, que se muestra en el siguiente diagrama, consta de seis pasos.

Diagrama que muestra los pasos del flujo de trabajo de federación de identidad de carga de trabajo.

  1. Configure la confianza en Microsoft Entra ID y solicite un token.
  2. Configure el flujo de trabajo de GitHub para permitir que las acciones obtengan el token.
  3. El flujo de trabajo de GitHub envía una solicitud al id. de Azure.
  4. Microsoft Entra ID valida la confianza en la aplicación y captura las claves para validar el token.
  5. Microsoft Entra ID accede al token y lo emite.
  6. La acción de implementación usa el token de acceso de Microsoft Entra para implementar en los recursos de Azure.

Vea cómo April Edwards, promotora sénior de la nube y responsable de DevOps Practice, realiza una demostración del flujo de trabajo de federación de identidades de carga de trabajo. La demostración comienza en la marca 19:14 de la sesión de Microsoft Build 2022, Acelerar y proteger el código en el desarrollo en la nube.

Pasos siguientes

  • Regístrese en Azure Developer CLI, una herramienta de código abierto que acelera el tiempo necesario para empezar a trabajar en Azure.
  • 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.
  • Implemente los principios de confianza cero como se describe en el memorándum 22-09 (en apoyo de la orden ejecutiva de EE. UU. 14028, Mejora de la ciberseguridad de la nación) mediante el uso de Microsoft Entra ID como sistema centralizado de administración de identidades.
  • Acelere y proteja el código con Azure DevOps con herramientas que proporcionan a los desarrolladores el código más rápido y seguro a la experiencia en la nube.
  • Proteger el entorno de desarrollador le ayuda a implementar principios de Confianza cero en los entornos de desarrollo con procedimientos recomendados para privilegios mínimos, seguridad de rama y herramientas, extensiones e integraciones de confianza.
  • Entornos de DevOps seguros para Confianza cero describe los procedimientos recomendados para proteger los entornos de DevOps y evitar que los hackers pongan en peligro los equipos de desarrollo, infecten canalizaciones de versión con scripts malintencionados y obtengan acceso a los datos de producción a través de entornos de prueba.
  • Personalizar tokens describe la información que puede recibir en tokens de Microsoft Entra. Explica cómo personalizar tokens para mejorar la flexibilidad y el control, al tiempo que aumenta la seguridad de confianza cero de la aplicación con privilegios mínimos.
  • Configurar notificaciones de grupo y roles de aplicación en tokens muestra cómo configurar las aplicaciones con definiciones de roles de aplicación y asignar grupos de seguridad a roles de aplicación. Estos métodos ayudan a mejorar la flexibilidad y el control, al tiempo que aumentan la seguridad de confianza cero de la aplicación con privilegios mínimos.