Sécuriser les pipelines d’intégration continue (CI)

Cette série d’articles a pour but d’identifier les meilleures pratiques à mettre en place pour sécuriser votre processus de livraison et vos pipelines CI/CD :

0. DevSecOp : Sécuriser les pipelines CI/CD, comprendre les fondements
1. La sécurité du système de gestion des versions
2. Sécuriser les pipelines d’intégration continue (CI)
3. Sécuriser les pipelines de déploiement continu (CD)

Par Gologic, en collaboration avec Alexandre Couëdelo.

Les pipelines d’intégration continue (CI) sont au centre du système de livraison de logiciels, mais ils représentent un point chaud en matière de sécurité avec plusieurs vecteurs d’attaque. D’un côté, vous devez sécuriser le système lui-même en limitant ses accès. De l’autre, vous devez vous assurer que les artefacts que vous produisez ne résultent pas en des applications vulnérables. Nos services DevOps offrent des solutions spécialisées pour renforcer la sécurité à chaque étape du processus d’intégration.

Dans cet article, pour répondre à ces préoccupations de sécurité, Gologic introduit un ensemble de bonnes pratiques et d’outils qui peuvent être intégrés à votre pipeline CI. En adoptant ces approches, vous pouvez améliorer la sécurité de votre pipeline et vous assurer que vos artefacts sont exempts de vulnérabilités connues.

Sécuriser les pipelines d'intégration continue
Sécuriser les pipelines d’intégration continue (CI)

Produire des artefacts sécurisés

Le rôle principal des pipelines CI est de compiler ou d’assembler le code source de votre logiciel/application en une forme exécutable ou déployable appelée artefact sans intervention humaine. Nos applications modernes comprennent bien souvent environ 10 % de code que vous écrivez et 90 % de code provenant de projets open source (principalement des librairies et des frameworks).

Cela soulève la question : comment garantir que ces dépendances ne représentent pas un risque de sécurité ?

En bref, vous devez valider toutes les étapes qui composent votre système, et cette validation est double. D’un côté, vous devez valider votre code ; de l’autre, vous devez valider le code que vous importez dans votre application.

Pour résoudre ces préoccupations, vous devez adopter deux techniques :

  • Analyse statique du code (SAST) : Analysez le code pour détecter les vulnérabilités en repérant les morceaux de code qui conduisent souvent à des vulnérabilités.
  • Liste des composantes logicielles (SBOM) : Créez une liste de toutes les sources qui composent votre application (librairies et frameworks) et de leurs versions, puis recherchez dans une base de données (Eg. OWASP) si elles ont des vulnérabilités connues.

💡 SAST & SBOM avec Azure DevOps

De nombreux outils existent et peuvent être intégrés via une tâche dans votre pipeline, par exemple, SonarQube/SonarCloud (SAST) et CycloneDX/Mend (SBOM).

Microsoft a également récemment annoncé et publié (mai 2023) son propre ensemble de services :

Utilisation d’un système CI sécurisé

Le système d’intégration continue (CI) doit avoir accès à diverses ressources pour effectuer ses tâches, des dépôts de code aux dépôts d’artefacts, en passant par les secrets, les API, etc.

La pire chose que vous puissiez faire est de donner les clés globales à votre système d’intégration continue. De sorte que n’importe quel pipeline puisse utiliser ces mêmes clés pour effectuer n’importe quelle action en fonction de ce qu’elle souhaite sur vos environnements de développement et d’infrastructure. Cela faciliterait grandement la vie d’un cyberattaquant qui aurait compromis la qualité de votre système ; il aurait immédiatement accès à toutes les fonctionnalités.

Comme pour tout ce qui concerne la sécurité informatique, il est important de suivre le principe du moindre accès (least access/least permission). Chaque pipeline ne devrait recevoir que les permissions dont il a absolument besoin et avoir son propre identifiant. Cela facilite l’identification et l’invalidation des secrets en cas de fuite avec un impact minimal.

💡 Managed Identity in Azure DevOps Pipelines

Azure Managed Identity gère de bout en bout la gestion de l’authentification et l’autorisation de vos pipelines Azure DevOps pour accéder aux ressources au sein d’Azure ou de toute application qui prend en charge le protocole OpenID Connect (OIDC).

Ainsi, vous n’avez même plus besoin de donner de secret à vos pipelines, et cela permet de donner aux pipelines uniquement les permissions dont ils ont réellement besoin.

Conclusion

En utilisant l’analyse statique de code (SAST) et une liste de composantes logicielles (SBOM), conformément aux meilleures pratiques, il est essentiel de valider à la fois votre code et celui que vous importez (librairies et logiciel OSS). Cela garantit que l’artefact que vous produisez est prêt pour le déploiement en production et ne comporte pas de vulnérabilités connues.

De plus, vous devez adopter le principe du moindre accès (least privilege) dans vos pipelines, augmentant ainsi la détection et la limitation des dommages potentiels d’une brèche de sécurité. Trop souvent, le système CI se voit attribuer les identifiants d’administrateur pour tous les systèmes et/ou environnements, ce qui en fait une cible de choix pour les cyberattaquants. Assurez-vous également de réaliser régulièrement des mises à jour de sécurité pour protéger vos données sensibles des nouvelles menaces.

Cet article est le troisième de la série sur la sécurité des pipelines de livraison continue. Nous avons précédemment abordé les problèmes de sécurité liés aux systèmes de contrôle de versions en amont de votre système d’intégration continue. Dans les prochains articles, nous examinerons le système suivant dans la boucle DevOps, à savoir les pipelines de déploiement en continu.

Êtes-vous prêt à renforcer la sécurité de vos pipelines CI/CD ? Contactez notre équipe d’experts dès aujourd’hui pour une consultation personnalisée et découvrez comment nos solutions peuvent vous aider à sécuriser votre processus de développement et de déploiement. Ne laissez pas les vulnérabilités compromettre votre travail — agissez maintenant pour une sécurité optimale.

Par Gologic, en collaboration avec Alexandre Couëdelo.

Recherche