DevSecOps : Sécuriser les pipelines CI/CD

DevSecOps : sécuriser les pipelines CI/CD

Par Gologic, en collaboration avec Alexandre Couëdelo.

Vous cherchez à tout savoir sur le DevSecOps CI/CD ? Vous êtes au bon endroit. L’intégration continue et le déploiement continu (CI/CD) sont des incontournables du développement logiciel moderne. Cependant, ils introduisent également des défis en matière de sécurité qui doivent être traités sérieusement pour :

  1. protéger les informations personnelles
  2. prévenir l’accès non autorisé aux systèmes d’information 
  3. atténuer les vulnérabilités potentielles

Gologic, par le biais de ses services DevOps, vous offre la possibilité de bénéficier de son expertise en développement et en production de pipelines de livraison CI/CD, vous permettant ainsi de mettre en place des pratiques de sécurité robustes tout au long de votre cycle de développement logiciel.

Cet article est le premier de notre série sur le développement de logiciels sécuritaire, dans lequel vous apprendrez à sécuriser votre processus de livraison et pipelines CI/CD. Préparez-vous à découvrir les 7 bonnes pratiques de sécurité cruciales pour un processus de livraison rapide et sécurisé.

Quels sont les points clés de sécurité à considérer pour des pipelines CI/CD ?

Le diagramme ci-dessous illustre un système typique de livraison de logiciel et identifie avec les chiffres 1 à 7 les vulnérabilités de sécurité liées à ces points chauds. Dans les prochains articles, nous aborderons un ou plusieurs de ces éléments en détail, mais maintenant, attardons-nous à comprendre les points d’intérêt.

Image illustrant le DevSecOps et la mise en œuvre de la sécurité en TI.

1. Identité du développeur

Un processus CI/CD sécurisé commence par la vérification de l’identité des développeurs. L’authentification habituelle par nom d’utilisateur/mot de passe offre une protection beaucoup trop limitée.

Il existe plusieurs méthodes pour vérifier l’identité d’un développeur, telle que :

  • les clés SSH
  • SSO
  • la signature de commit

Il est essentiel de s’assurer que le flux de travail du développeur comprend des « gate » (étapes de validation) pour empêcher que le code ne soit expédié en production sans approbation ni contrôles de sécurité.

2. Identité des agents CI/CD

Les systèmes CI/CD jouent un rôle important dans le processus de développement de logiciels et ont souvent un accès à divers environnements et composants d’infrastructure. Si un attaquant compromet ces systèmes, ils peuvent manipuler le code source et les artefacts, et infiltrer d’autres systèmes, ce qui pourrait avoir de graves conséquences.

Il existe plusieurs méthodes pour limiter les autorisations uniquement à ce qui est nécessaire (least permission) pour un processus CI/CD en particulier et ainsi, évitez d’accorder un accès excessif qui pourrait profiter à un attaquant.

3. Vulnérabilité de la chaîne d’assemblage provenant d’une source externe

L’utilisation intensive de composants logiciels open-source dans les applications et les pipelines CI/CD introduit le risque de vulnérabilités de la chaîne CI/CD. Il est crucial de s’assurer que les dépendances tierces sont à jour et ne comportent pas de vulnérabilités connues.

L’utilisation des outils automatisés pour scanner en continu et surveiller les dépendances aide à atténuer ce risque, permettant une identification et une résolution rapides des vulnérabilités (CVE).

4. Vulnérabilité des dépôts d’artefacts

Les artefacts générés dans le processus CI/CD sont précieux et doivent être protégés. Les dépôts d’artefacts peuvent être vulnérables aux attaques, tout comme les dépôts de code. Les attaquants tentent d’obtenir un accès en volant des identifiants, par exemple, ou de se faire passer pour des systèmes légitimes (man in the middle).

Une bonne traçabilité est essentielle et la signature d’artefact ajoute une couche de sécurité supplémentaire en signant numériquement les artefacts. Cela permet ainsi de vérifier leur intégrité et leur authenticité avant le déploiement.

5. Vulnérabilité latente des artefacts

Les artefacts qui ont passé un processus de scan ne sont pas forcément sûrs, car de nouvelles vulnérabilités sont découvertes tous les jours. Les attaquants pourraient utiliser des vulnérabilités connues pour attaquer l’intégrité de vos applications et de votre système de livraison continue.

Pour maintenir la sécurité des applications et de vos systèmes, il est important :

  • d’avoir une bonne stratégie de versionnage des artefacts
  • de maintenir à jour les dépendances
  • de toujours surveiller les dépendances obsolètes pour les applications déjà déployées

6. Secret Store

Les secrets, tels que :

  1. les mots de passe
  2. les clés d’API
  3. les certificats
  4. les données sensibles, doivent être traités avec soin et stockés de manière sécurisée

Les secrets devraient être l’endroit où toutes les variables sensibles nécessaires pour une application sont stockées. L’accès à ces secrets et données doit être restreint uniquement aux applications qui en ont besoin.

7. Configuration Store

Dans l’approche GitOps, les fichiers de configuration résident dans un dépôt Git et sont utilisés pour gérer toute l’infrastructure ainsi que le déploiement des applications. En utilisant Git comme source de vérité, GitOps permet aux développeurs de mieux gérer leur infrastructure. Cependant, cela comporte des risques en termes de sécurité, car les modifications apportées à cette configuration peuvent avoir un impact direct sur les environnements en direct.

Conclusion

Les pipelines CI/CD sont essentiels pour la gestion de la chaîne de livraison de logiciels, mais ils présentent également des risques de sécurité informatique. Nous venons de survoler les sept mesures de sécurité fondamentales autour du processus de gestion CI/CD qui nécessitent une attention particulière. À ce stade, vous devez examiner de manière critique votre système de gestion et évaluer son risque de sécurité. Ne laissez pas la sécurité de votre logiciel au hasard, prenez les mesures nécessaires dès maintenant pour protéger vos données et votre entreprise. Dans les prochains articles, nous approfondirons chacun de ces éléments de gestion et prouverons les meilleures pratiques DevOps pour les atténuer.

Par Gologic, en collaboration avec Alexandre Couëdelo.

Suivez-nous et partagez

Laisser un commentaire