Incorporer la sécurité Confiance Zéro dans votre flux de travail de développeur
En tant que développeur, vous devez vous sentir confiant et sûr de se déplacer à la vitesse. La nécessité de la sécurité démarre dès que vous clonez votre code. Dans cet article, vous apprenez à développer du code en utilisant les principes de la Confiance Zéro afin de pouvoir innover rapidement et en toute sécurité. La stratégie et l’approche de sécurité Confiance Zéro pour concevoir et implémenter des applications comprend les principes suivants :
- Vérifier explicitement. Toujours s’authentifier et autoriser en fonction de tous les points de données disponibles.
- Utiliser l’accès du moindre privilège. Limitez l'accès utilisateur avec l'accès juste-à-temps et juste suffisant (JIT/JEA), des stratégies adaptatives basées sur les risques et une protection des données.
- Prise en compte des violations. Réduisez le rayon d'explosion et segmentez l'accès. Vérifiez le chiffrement de bout en bout et utilisez l'analytique pour obtenir de la visibilité, détecter les menaces et améliorer les défenses.
L’incorporation de la sécurité dans votre workflow vous aide à :
- Identifiez les failles de sécurité plus rapidement.
- Fournir des outils de développement plus sécurisés.
- Créez des connexions pour améliorer la collaboration entre les équipes de sécurité et de développement.
Innover et sécuriser votre flux de travail lorsque vous créez du code
La solution unifiée de Microsoft, illustrée dans le diagramme suivant, relie les équipes DevOps et SecOps pour vous aider à accélérer et sécuriser le développement code-à-cloud.
Notre solution pour protéger DevOps repose sur deux composants principaux : fournir aux développeurs des outils pour alimenter l’innovation et sécuriser le flux de travail des développeurs lorsque les développeurs créent du code. Regardez accélérer et sécuriser votre code vers la session de développement cloud à partir de Microsoft Build 2022 pour découvrir comment ces composants peuvent sécuriser votre environnement de développement.
Implémentez les meilleures pratiques suivantes qui fonctionnent ensemble dans Azure et GitHub pour sécuriser votre solution de développement.
- Étant donné que la sécurité commence lorsque les développeurs clonent du code, activez DevSecOps avec Azure et GitHub pour établir un pont entre les équipes DevOps et SecOps et sécuriser vos environnements de développement.
- Fournissez des outils de développement flexibles et puissants pour n’importe quel développeur, langage et pile avec Visual Studio et Visual Studio Code.
- Simplifiez l’intégration de nouveaux développeurs et la collaboration grâce à un outil de cycle de vie de développement complet dans le cloud utilisant GitHub Codespaces et à Microsoft Dev Box.
- Incluez la protection intégrée de la propriété intellectuelle pour le code que vous ne dispersez plus dans plusieurs emplacements. Aidez vos équipes à collaborer, à développer, automatiser et déployer du code où qu’elles souhaitent avec GitHub Actions et Azure Pipelines.
- Obtenez des conseils de sécurité et des commentaires de sécurité continus au sein du flux de travail du développeur avec l’analyse du code, l’analyse des secrets et la révision des dépendances à l’aide de GitHub Advanced Security.
- Inculquez la sécurité confiance zéro dans toute votre organisation à l’aide des services de gestion des identités dans Microsoft Entra ID.
Ajuster Confiance Zéro sécurité à votre cycle de vie de développement
Du précommit au commit jusqu’au déploiement, à l’exploitation et au monitoring, vous devez mettre en place des solutions de sécurité tout au long des phases de votre cycle de vie de développement.
Étape de précommit
- Modélisation des menaces
- Module de sécurité de l’IDE
- Hooks de précommit
- Normes de codage sécurisé
- Révision par des pairs
Quatre-vingt-cinq pour cent des défauts de code apparaissent pendant la phase de développement de « précommit » et sont le plus souvent dus à des erreurs humaines. Concentrez-vous sur la sécurité avant de valider votre code en écrivant votre code dans Visual Studio Code, Visual Studio ou GitHub Codespaces pour identifier les vulnérabilités et le code sécurisé. Utilisez des révisions d’homologues pour encourager les pratiques de codage sécurisées.
Étape de validation (CI)
- Analyse statique du code
- Tests unitaires de sécurité
- Gestion des dépendances
- Analyse des informations d’identification
Pendant la phase de validation, utilisez des méthodes de sécurité étendues pour passer en revue votre code (y compris l’analyse statique du code) et analyser votre code au fur et à mesure que vous l’case activée dans votre contrôle de code source. Utilisez l’analyse des informations d’identification (également appelée « analyse des secrets » ou « analyse des jetons ») pour exposer les informations d’identification que vous pouvez introduire par inadvertance dans le codebase. Interceptez les dépendances non sécurisées avant de les introduire dans votre environnement avec révision des dépendances.
Phase de déploiement (CD)
- Analyse de l'infrastructure en tant que code (IaC)
- Analyse dynamique de la sécurité
- Vérification de la configuration cloud
- Tests d'acceptation de sécurité
Au cours de la phase de déploiement, examinez l’intégrité globale de votre codebase et effectuez une analyse de sécurité de haut niveau pour identifier les risques. Effectuez des case activée de configuration cloud, du code d’infrastructure case activée s et des tests d’acceptation de la sécurité pour garantir l’alignement avec les objectifs de sécurité de l’organisation.
Utiliser et surveiller l’étape
- Supervision continue
- Informations sur les menaces
- Analyses rétrospectives irréprochables
Pendant la phase d’exploitation et de monitoring, utilisez le monitoring continu et la veille des menaces pour atténuer les vulnérabilités globales de dépendance dont vous pouvez hériter au fil du temps. Effectuez des postmortems pour enlever les leçons apprises et poursuivre l’itération au cours de votre cycle DevOps.
Implémenter la dépendance, le code et l’analyse des secrets
Pour faciliter la sécurisation du code pour les développeurs, utilisez des fonctionnalités natives et automatisées pour fournir des commentaires continus avec des fonctionnalités de sécurité continues tout au long de votre cycle de vie de développement. Fournissez une sécurité globale aux développeurs et aux communautés avec l’analyse des dépendances GitHub Advanced Security, l’analyse du code et l’analyse des secrets.
Analyse des dépendances
- Révision intégrée des dépendances
- Alertes et mises à jour de sécurité
Obtenez les niveaux de risque des dépendances et des correctifs automatisés pour les dépendances vulnérables dans votre base de code avec l’analyse continue des dépendances. Ce processus continu guide vos développeurs dans la bonne direction de manière conviviale et discrète.
Analyse du code
- Infrastructure extensible pour l’analyse du code
- Intégré au flux de travail du développeur
- Soutenu par le moteur CodeQL leader du secteur
Implémentez l’analyse du code lorsque vous générez du code sans aucune autre étape à exécuter à des emplacements distincts. Facilitez les correctifs au début de votre cycle de vie de développement en affichant les résultats de l’analyse dans votre expérience utilisateur GitHub familière.
Analyse de secrets
- Rechercher les secrets fuites dans les dépôts publics et privés
- Partenariat avec 40 fournisseurs
- Protection push
- Passer de la correction à la prévention
- Rechercher des secrets à haut niveau de confiance
- Activer la protection avec un Select
Analysez votre code pour obtenir des informations d’identification et des jetons codés en dur avec l’analyse des secrets. La protection Push analyse les secrets et les jetons avant d’envoyer (push) à votre codebase. Recherchez des secrets à haut niveau de confiance en tant que code push pour les développeurs, ce qui bloque l’envoi lorsque GitHub identifie un secret.
Gérer et sécuriser les identités de charge de travail
- Gestion du cycle de vie
- Gouvernance des accès
- Accès adaptatif sécurisé
Obtenez une visibilité sur l’activité de vos identités de charge de travail et activez les propre up périodiques. Déterminez qui possède des identités de charge de travail et comment vous conservez ces informations à jour dans les modifications de l’organisation. Effectuez le suivi lorsque vous avez utilisé les dernières identités de charge de travail, lorsque vous avez émis des jetons et quand les jetons expirent.
Pour atténuer le risque de fuite de secrets et d’informations d’identification, effectuez régulièrement des révisions d’accès. Exiger que les utilisateurs passent en revue leurs identités de charge de travail et suppriment les privilèges d'accès inutiles. Demander aux utilisateurs de signaler les privilèges d'accès surévalués et sous-utilisés. Discutez de la façon dont vous protégez les identités des charges de travail contre les violations. Activez l’accès conditionnel pour vous assurer que l’accès provient des ressources attendues.
Sécuriser les identités avec GitHub OIDC et ID de charge de travail Microsoft Entra Federation
Pour sécuriser davantage votre organisation, utilisez GitHub OpenID Connect (OIDC) avec la fédération des identités de charge de travail Microsoft Entra et réduisez la nécessité de stocker et d’accéder aux secrets. Gérez en toute sécurité les secrets du principal du serveur Azure et d’autres ressources d’informations d’identification cloud de longue durée pour réduire le temps d’arrêt du service en raison d’informations d’identification expirées. Intégrez-les à des plateformes de développement, telles que GitHub Actions, pour créer vos applications en toute sécurité.
Notre flux de travail de fédération des identités de charge de travail recommandé, illustré dans le diagramme suivant, comprend six étapes.
- Configurez l’approbation dans Microsoft Entra ID et demandez un jeton.
- Configurez le flux de travail GitHub pour autoriser les actions à obtenir le jeton.
- Le flux de travail GitHub envoie une demande à l’ID Azure.
- Microsoft Entra ID valide la confiance accordée à l'application et récupère les clés pour valider le jeton.
- Microsoft Entra ID accède au jeton et l'émet.
- L’action de déploiement utilise le jeton d’accès Microsoft Entra pour effectuer le déploiement sur des ressources dans Azure.
Regardez April Edwards, Senior Cloud Advocate et DevOps Practice Lead, démonstration du flux de travail De fédération des identités de charge de travail. La démonstration commence à 19 minutes et 14 secondes dans la session Microsoft Build 2022, Accélérer et sécuriser votre code dans le développement cloud.
Étapes suivantes
- Inscrivez-vous à Azure Developer CLI, un outil open source qui accélère le temps nécessaire à la prise en main d’Azure.
- Configurez Azure pour approuver l’OIDC de GitHub en tant qu’identité fédérée. OpenID Connect (OIDC) permet à vos flux de travail GitHub Action d’accéder aux ressources dans Azure sans avoir à stocker les informations d’identification Azure en tant que secrets GitHub à longue durée de vie.
- Implémentez les principes Confiance Zéro comme décrit dans le protocole 22-09 (en faveur de l’ordre exécutif américain 14028, Amélioration de la cyber-sécurité de la nation) à l’aide de Microsoft Entra ID comme système centralisé de gestion des identités.
- Accélérez et sécurisez votre code avec Azure DevOps avec des outils qui donnent aux développeurs le code le plus rapide et le plus sécurisé pour l’expérience cloud.
- Sécuriser l’environnement de développement vous aide à implémenter les principes de la Confiance Zéro dans vos environnements de développement avec les meilleures pratiques pour des privilèges minimum, la sécurité des branches et les outils, extensions et intégrations de confiance.
- Sécuriser des environnements DevOps avec la Confiance Zéro décrit les meilleures pratiques pour sécuriser vos environnements DevOps afin d’empêcher les pirates de compromettre les dev box, d’infecter les pipelines de mise en production avec des scripts malveillants et d’obtenir l’accès aux données de production via des environnements de test.
- Personnaliser les jetons décrit les informations que vous pouvez recevoir dans les jetons Microsoft Entra. Vous découvrirez comment personnaliser des jetons pour améliorer la flexibilité et le contrôle tout en augmentant la sécurité Confiance Zéro de l’application avec des privilèges minimum.
- Configurer les revendications de groupe et les rôles d’application dans les jetons vous montre comment configurer vos applications avec des définitions de rôle d’application et comment affecter des groupes de sécurité aux rôles d’application. Ces méthodes permettent d’améliorer la flexibilité et le contrôle tout en augmentant la sécurité Confiance Zéro de l’application avec des privilèges minimum.