Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cet article vous aide, en tant que membre de l’équipe DevOps, à implémenter le principe de Confiance Zéro de privilège minimum et à sécuriser l’environnement de plateforme DevOps. Il propose du contenu de notre livre électronique Sécuriser les environnements DevOps d’entreprise et met en évidence les meilleures pratiques pour la gestion des secrets et des certificats.
Les entreprises modernes s'appuient sur les plateformes DevOps pour le déploiement, y compris les pipelines et les environnements de production dont les développeurs ont besoin pour être productifs. Dans le passé, les méthodes de sécurité des applications ne tenaient pas compte de la surface d'attaque accrue à laquelle les pipelines et les environnements de production actuels exposent. À mesure que les acteurs incorrects se déplacent vers la gauche et ciblent les outils en amont, vous avez besoin d’approches innovantes pour sécuriser vos environnements de plateforme DevOps.
Dans le diagramme suivant, notez que l’environnement de plateforme DevOps se connecte à l’environnement d’application et aux extensions de pipeline d’intégration continue et de livraison continue (CI/CD).
Les extensions de pipeline CI/CD présentent aux acteurs malveillants des opportunités exploitant pour mener des escalades de privilèges dans l’environnement d’application. Les extensions et les intégrations augmentent les vulnérabilités de la surface d’attaque. Il est essentiel de se défendre contre les menaces d'intrusion de logiciels malveillants.
Comment et pourquoi les acteurs malveillants ciblent des pipelines
Les pipelines et les environnements de production peuvent être indépendants des pratiques et processus standard de sécurité des applications. Ils nécessitent généralement des informations d’identification d’accès de haut niveau qui peuvent fournir un accès profond et significatif aux acteurs malveillants.
Bien que les acteurs malveillants trouvent de nouvelles façons de compromettre les systèmes, les vulnérabilités les plus courantes pour les pipelines sont les suivantes :
- Extraction de variables d’exécution et d’injection d’arguments.
- Scripts qui récupèrent des principes de service ou des informations d’identification à partir de pipelines.
- Jetons d’accès personnels mal configurés qui permettent à toute personne disposant de la clé d’accéder à l’environnement de plateforme DevOps.
- Vulnérabilités et configurations incorrectes dans les outils intégrés qui nécessitent l’accès au code (souvent en lecture seule, mais parfois en écriture). Les outils intégrés peuvent inclure des frameworks de test, des tests de sécurité des applications statiques (SAST) et des tests de sécurité des applications dynamiques (DAST).
Meilleures pratiques pour la gestion des secrets et des certificats
Éviter une violation catastrophique peut être aussi simple que la gestion efficace des secrets. Le diagramme suivant illustre un exemple de secret, de mot de passe, de jeton d’accès et de gestion des certificats effectifs.
Comme indiqué dans le diagramme précédent, le développeur démarre une build pour une demande client. GitHub démarre ensuite un exécuteur avec l’ID de rôle et l’ID de secret d’un rôle d’application vault. L’entité approuvée demande régulièrement un nouvel ID secret au Coffre et obtient l'ID secret de GitHub à partir de GitHub. Le service Vault utilise l’ID de rôle des secrets GitHub et l’ID de secret pour se connecter et obtenir les éléments pour la signature de code. Le Runner personnalise et applique une signature numérique à l’application mobile.
Les meilleures pratiques suivantes vous aident à créer une configuration sécurisée qui réduit l’exposition des secrets et des paramètres.
- Fournissez un stockage sécurisé pour les secrets et les certificats à chaque étape du cycle de vie de l’application. Développez toujours comme s’il s’agit d’un projet open source. Assurez-vous que les équipes stockent des secrets dans des coffres de clés plutôt que dans le code ou dans les environnements d’équipe. Utilisez le service cloud Azure Key Vault pour stocker et accéder aux secrets en toute sécurité.
- 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.
Meilleures pratiques pour la sécurité de l’environnement DevOps
Pour vous défendre contre les incidents de sécurité, passez en revue les meilleures pratiques suivantes pour fortifier vos environnements de plateforme DevOps. Trouvez une discussion détaillée de ces recommandations dans notre livre électronique De sécurisation des environnements DevOps d’entreprise.
- Équiper chaque environnement de plateforme DevOps avec des pistes d’audit.Examiner les journaux d’audit pour suivre qui a obtenu l’accès, quelle modification s’est produite et la date/heure de tout système actif. Incluez spécifiquement les plateformes DevOps avec des pipelines CI/CD qui passent en production. Les pistes d’audit pour les outils DevOps offrent des moyens robustes de corriger les menaces plus rapidement, de trouver et d’alerter sur des activités suspectes en cas d’éventuelles violations ou vulnérabilités, et de repérer de mauvaises utilisations de données ou de privilèges. Assurez-vous que les pistes de contrôle et d’audit granulaires sont disponibles dans chaque environnement.
- Sécurisez la chaîne logistique logicielle. Avec chaque bibliothèque que vous apportez dans votre base de code, vous développez la chaîne d’approvisionnement logicielle et héritez des dépendances de chaque projet ou outil open source. Avec précaution, supprimez les bibliothèques inutiles et les composants open source pour réduire la surface d’attaque de votre chaîne d’approvisionnement logicielle.
- Automatiser les examens de modèles IaC (Infrastructure-as-Code). Avec les environnements IaC, il est facile d’analyser les erreurs de configuration, les audits de conformité et les problèmes de stratégies. L'implémentation des vérifications de conformité et des contrôles d'accès améliore le niveau de sécurité de l'ensemble de votre infrastructure. Vérifiez la sécurité des intégrations d’outils qui répondent aux exigences système d’automatisation.
- Automatiser les flux de travail d’approbation. Pour tout flux de travail d'approbation visant à envoyer du code en production, certaines vérifications automatiques ou manuelles doivent confirmer la sécurité, la valeur commerciale, le statut et la qualité de chaque requête. Ces vérifications fonctionnent comme une porte entre le développement et la production pour empêcher les attaques par déni de service et les acteurs malveillants injecter du code dans des environnements de production sans marquer ou déclencher une alerte.
- Autorisez uniquement les intégrations d’outils DevOps vérifiées. Comme dans les environnements de développement, les outils DevOps sont fournis avec des extensions et des intégrations pour rendre l’équipe DevOps efficace et sécurisée. Vérifiez que les intégrations vérifiées nécessitent le moins de privilèges possibles pour exécuter leur travail. Implémentez l’accès au privilège minimum lorsque cela est possible et assurez le niveau approprié d’autorisations en lecture/écriture. Découvrez comment désactiver ou limiter les actions GitHub pour votre organisation.
Étapes suivantes
- Sécuriser l’environnement de développement vous aide à implémenter des principes de confiance Zéro dans vos environnements de développement avec les meilleures pratiques pour des privilèges minimums, la sécurité des branches et les outils, extensions et intégrations de confiance.
- Incorporer la sécurité Confiance Zéro dans votre flux de travail de développeur vous permet d’innover rapidement en toute sécurité.
- Les environnements DevOps sécurisés pour Zero Trust décrivent les meilleures pratiques pour sécuriser vos environnements DevOps avec une approche Confiance Zéro pour empêcher les acteurs malveillants de compromettre les zones de développement, infecter les pipelines de mise en production avec des scripts malveillants et accéder aux données de production via des environnements de test.
- 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.