Vulcan : Sécuriser vos CI/CD pipelines dans le cloud

Vulcan : Sécuriser vos CI/CD pipelines dans le cloud

560 420 2SB - Distributeur à valeur ajoutée - Solutions de Cybersécurité

Alors que des milliers d’entreprises passent au cloud, clles-ci deviennent de plus en plus dépendantes des pipelines CI/CD pour faciliter leurs charges de travail dans le cloud.
La sécurisation de ces pipelines est donc devenue un objectif primordial et de nombreuses entreprises cherchent à adopter une approche de sécurité “shift-left” afin de faire face au barrage constant des cybermenaces.
Le paradigme de sécurité “shift-left” joue un rôle crucial, car il garantit que la mise en œuvre de la sécurité passe en premier et à son tour, aide à éviter la “security debt”.

L’analyse des rapports et la mise en œuvre du mécanisme de contrôle d’accès basé sur les rôles (RBAC) au début du cycle de vie du développement logiciel sont des étapes importantes dans l’adoption d’une approche shift-left, en particulier lors de l’utilisation de pipelines CI/CD internes et de plateformes CI/CD telles que CircleCI.

Les plateformes CI/CD sont généralement plus sûres et mieux configurées que les pipelines CI/CD internes, car elles sont mises en place par des développeurs qui comprennent vraiment les pipelines CI/CD et leur fonctionnement.
Les plateformes permettent également des mises à jour rapides lorsque de nouvelles vulnérabilités sont découvertes dans les pipelines CI/CD.

Dans de nombreux cas, les mauvaises configurations sont la cause de l’échec des pipelines CI/CD.
Cependant, les plateformes CI/CD cloud telles que CircleCI sont configurées pour fournir des fonctions de sécurité fiables et des mesures telles que RBAC.
Le respect des meilleures pratiques en matière de sécurité CI/CD peut également aider à prévenir les erreurs de configuration.

Dans cet article, nous examinons les méthodes permettant de sécuriser vos pipelines CI/CD dans le cloud.

Qu’est-ce qu’une plateforme CI/CD ?

Les plateformes et outils CI/CD (Continuous Integration / Continuous Delivery –> Continuous Deployment) offrent un ensemble de fonctionnalités qui facilitent les processus du pipeline CI/CD tels que la construction, l’empaquetage et le test des composants logiciels.
Ils assurent la maintenance des scripts CI/CD, l’autovérification et la simplification du processus de déploiement.
Cela vous permet d’identifier les problèmes de déploiement et de construction.

Une plateforme CI/CD cloud est préférable à une plateforme CI/CD interne.
En effet, vous n’aurez pas à dépenser des milliers d’euros pour l’infrastructure et deuxièmement, et c’est peut-être là le plus grand avantage, vous n’aurez pas à assurer la maintenance de l’infrastructure !

Voici quelques exemples d’outils et de plateformes CI/CD :

  • GitLab CI
  • GitHub Actions
  • TravisCI
  • CircleCI 
  • AWS CodePipeline

Chacune de ces plateformes est gérée par des développeurs qui se consacrent explicitement à la mise au point de la sécurité de la plateforme et qui se tiennent informé de la cybersécurité des plateformes CI/CD.

L’hébergement de votre base de code dans le cloud et l’utilisation de plateformes CI/CD présentent de nombreux avantages :

– RBAC : Mécanismes de contrôle d’accès basés sur les rôles, généralement prêts à l’emploi, pour l’accès à certains sous-systèmes et opérations.
– Rollbacks (retours arrière) : Capacité intégrée de revenir à une version antérieure si la nouvelle version ne répond pas aux normes définies.
– Easy integration : Connexion directe à votre chaîne d’outils et à vos référentiels de code
– Logs & metrics : Seules les métriques peuvent indiquer la mort ou la santé de votre application. Les plateformes CI/CD fournissent des journaux et des mesures indiquant la fréquence des retours en arrière et le temps de déploiement.

Mise en œuvre de mesures de sécurité dans les outils de CI/CD cloud

Le codage non sécurisé, les contrôles d’accès insuffisants, les mauvaises configurations de sécurité, l’exposition des “secrets”, l’utilisation de bibliothèques tierces défectueuses et les attaques de la supply chain ne sont que quelques-unes des menaces liées au pipeline CI/CD dans le cloud auxquelles vous devez faire attention.
Dans la section suivante, nous passerons en revue les méthodes de lutte contre ces menaces.

Surveillez et analysez en permanence vos logs CI/CD.

La lutte contre le nombre croissant de cyberattaques nécessite une sécurité dynamique des applications.
L’analyse des journaux et le retour d’information des clients sont essentiels pour détecter les vulnérabilités.
L’analyse continue des journaux CI/CD vous donnera un aperçu des performances de vos processus de construction.
La mise en place d’un système de journalisation à l’aide d’outils tels que Mezmo vous permettra d’identifier les constructions et les déploiements qui prennent plus de temps que prévu.

Lors de la journalisation des pipelines CI/CD, il existe un certain nombre de métriques critiques que vous devez collecter et analyser :

  • Code commit time
  • Deployment times
  • Build times
  • Important application info such as application metadata

Ces mesures permettent de repérer les incohérences.

Si un déploiement ou un processus de construction prend trop de temps, cela indique un problème qui doit être résolu !
Le délai de validation du code permet d’identifier le moment où un code spécifique susceptible d’avoir causé des problèmes a été validé.

Protéger l’accès à votre cluster grâce à RBAC

Kubernetes et Docker sont tous deux des composants majeurs des plateformes cloud DevOps et CI/CD.
La protection de l’accès à vos clusters Kubernetes est donc cruciale.

La mise en œuvre du mécanisme de contrôle d’accès basé sur les rôles, qui vous permet de sélectionner les objets et les utilisateurs de clusters qui peuvent accéder à des ressources de clusters spécifiques, est un moyen d’améliorer la sécurité de la plateforme CI/CD.
Il permet également d’empêcher certains utilisateurs d’accéder aux secrets du cluster.
Le système RBAC comprend deux définitions importantes : Les rôles, qui définissent les ressources auxquelles il est possible d’accéder, et les RoleBindings, qui spécifient les utilisateurs et les comptes de service disposant d’autorisations d’accès à la ressource, ainsi que les actions qui peuvent être effectuées sur la ressource.

Voici un exemple de rôle qui donne à l’utilisateur un accès aux services avec des actions limitées :

apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
namespace: organization
name: service-access
rules:
- apiGroups: [""] # "" indicates the core API group
resources: ["services"]
verbs: ["get", "watch", "list"]

 

Analyse des Docker images

L’audit de sécurité continu et l’analyse d’images sont essentiels lorsqu’il s’agit de savoir ce qui se passe dans vos pipelines et votre base de code.
Les conteneurs, les clusters, le code source et l’infrastructure doivent être analysés régulièrement.
De nombreux outils sont disponibles pour analyser vos clusters, tels que Kubescape et la commande docker scan.
Si vous utilisez Docker, utilisez la commande suivante pour analyser vos images :

$ docker scan [enter the name of the image here]

Vous recevrez un message vous indiquant toutes les vulnérabilités qui ont été découvertes dans votre image :

✗ Medium severity vulnerability found in openssl/libcrypto1.1
Description: Inadequate Encryption Strengthsername and password. Note this will not work if
Info: https://security.snyk.io/vuln/SNYK-ALPINE315-OPENSSL-2941810
Introduced through: openssl/libcrypto1.1@1.1.1n-r0, openssl/libssl1.1@1.1.1n-r0, apk-tools/apk-tools@2.12.7-r3, libretls/libretls@3.3.4-r3, python2/python2@2.7.18-r4
From: openssl/libcrypto1.1@1.1.1n-r0
From: openssl/libssl1.1@1.1.1n-r0 > openssl/libcrypto1.1@1.1.1n-r0
From: apk-tools/apk-tools@2.12.7-r3 > openssl/libcrypto1.1@1.1.1n-r0
and 6 more... docker scan  getting-started
Image layer: 'apk add --no-cache python2 g++ make're to provide both SNYK_INTEGRATION_NAME and SNYK_INTEGRATION_VERSION together!
Fixed in: 1.1.1q-r0 dependencies for getting-started
✗ Medium severity vulnerability found in node
Description: HTTP Request Smuggling
Info: https://security.snyk.io/vuln/SNYK-UPSTREAM-NODE-2946723
Introduced through: node@12.22.12
From: node@12.22.12
Fixed in: 14.20.0, 16.16.0, 18.5.0
Image layer: Introduced by your base image (node:12.22.12-alpine3.15)
Fixed in: 14.20.0, 16.16.0, 18.5.0✗ Medium severity vulnerability found in node
Description: DLL Hijacking
Info: https://security.snyk.io/vuln/SNYK-UPSTREAM-NODE-2946727
Introduced through: node@12.22.12
From: node@12.22.12
Fixed in: 14.20.0, 16.16.0, 18.5.0
Image layer: Introduced by your base image (node:12.22.12-alpine3.15)
Fixed in: 14.20.0, 16.16.0, 18.5.0

Cryptage des “secrets”

Les “secrets” ou objets secrets sont largement utilisés dans DevOps car de nombreux outils communiquent à l’aide d’API, qui utilisent des endpoints.
Les secrets donnent accès aux endpoints, au chemin vers le stockage des données ou à toute ressource logicielle.
Vous devez donc vous assurer que vos secrets sont sécurisés à l’aide du meilleur algorithme de chiffrement avant de les stocker dans l’ETCD.

Sealed Secrets (anciennement connu sous le nom de Kubeseal) est un outil utile pour chiffrer et sceller les secrets.

Ils peuvent ainsi être stockés en toute sécurité dans un dépôt public, car leur propriétaire est le seul à pouvoir les décrypter.

Mise en œuvre de l’authentification multifactorielle

Les dépôts et les comptes Git doivent être sécurisés par une authentification multifactorielle.
Vous serez ainsi alerté si des pirates tentent d’entrer dans votre système sans y parvenir, car le code de vérification de l’accès sera envoyé à votre téléphone ou à votre adresse électronique.

Analyse des programmes de déploiement des charges de travail

L’exploitation des vulnérabilités logicielles est un phénomène quotidien, et les exploitations de la sécurité de Kubernetes ont un impact encore plus important puisque K8s orchestre de multiples conteneurs transportant diverses applications.

La surveillance et la mise en œuvre des mesures de sécurité sont facilitées par l’utilisation d’outils automatisés qui analysent les performances de sécurité des clusters et identifient les vulnérabilités dont vous n’aviez pas connaissance.
Mieux encore, ils proposent des suggestions pour corriger la vulnérabilité détectée.

Les outils qui offrent des solutions de sécurité pour Kubernetes sont les suivants :

  • Kubescape
  • Datree
  • Kubeval
  • Trivy
  • Kubeaudit

Prochaines étapes pour sécuriser les pipelines CI/CD dans le cloud

Le respect des meilleures pratiques est essentiel pour assurer la sécurité de vos pipelines CI/CD dans le cloud.
Même avec la pression importante pour respecter les dates de publication, la sécurité du pipeline CI/CD, associée à une formation à la cybersécurité, doit être une priorité.

De plus, la mise en œuvre de mesures de sécurité dès le début du pipeline CI/CD vous aidera à éviter toute “security debt” dans l’une ou l’autre de vos couches logicielles, tandis que des tests logiciels cohérents et la vérification de l’efficacité des tests de code vous aideront à suivre l’évolution constante du paysage des menaces.

Vous souhaitez mettre en œuvre une approche DevSecOps dans le cadre de votre remédiation des risques ?
La plateforme de gestion des risques Vulcan Cyber® met en corrélation, hiérarchise et gère les risques sur l’ensemble de vos surfaces d’attaque à grande échelle. Obtenez votre essai gratuit et commencez à maîtriser vos risques.

Source : Vulcan Cyber