Skip to main content

Versions immuables

Découvrez les versions immuables et comment elles peuvent vous aider à maintenir l’intégrité de votre chaîne d’approvisionnement logicielle.

          **Les versions immuables** sont des versions dont les ressources et les balises Git associées ne peuvent pas être modifiées après leur publication. L’utilisation de ce type de version augmente la sécurité en bloquant les attaques de la chaîne d'approvisionnement. Les attaquants ne peuvent pas :
  • Injectez des vulnérabilités ou des programmes malveillants dans les versions actuelles du projet.
  • Apportez des modifications aux ressources et aux balises qui peuvent interrompre les flux de travail des développeurs.

Ce que protègent les versions immuables

Lorsque vous activez des versions immuables, les protections suivantes sont appliquées :

  •         **Les balises Git ne peuvent pas être déplacées ou supprimées** : une fois qu’une version immuable est publiée, sa balise Git associée est verrouillée sur une validation spécifique et ne peut pas être modifiée ou supprimée.
    
  • Les ressources de mise en production ne peuvent pas être modifiées ou supprimées : tous les fichiers attachés à la version (comme les fichiers binaires et les archives) sont protégés contre la modification ou la suppression.

De plus, la création d’une version immuable génère automatiquement une attestation de version, qui est un enregistrement cryptographiquement vérifiable d’une version contenant la balise de version, le SHA de commit et les ressources de la version. Les consommateurs peuvent utiliser cette attestation pour s’assurer que les versions et les artefacts qu’ils utilisent correspondent exactement aux versions GitHub publiées.

Remarque

Les versions immuables incluent une protection contre les attaques de résurrection de dépôts. Même si vous supprimez un référentiel et créez-en un avec le même nom, vous ne pouvez pas réutiliser les balises associées à des versions immuables dans le référentiel d’origine.

Si une version est immuable, vous verrez «  Immutable » sous le titre de la page de version.

Meilleures pratiques pour la publication de versions immuables

Nous vous recommandons d’utiliser le flux de travail suivant pour publier une version immuable.

  1. Créez la version en tant que brouillon.
  2. Joignez toutes les ressources associées au brouillon de version.
  3. Publiez la version préliminaire.

Cela garantit que toutes les ressources sont en place avant que la mise en production ne devienne immuable, ce qui empêche la nécessité de contourner les restrictions d’immuabilité.

Étapes suivantes

Pour savoir comment activer les versions immuables pour votre référentiel ou votre organisation, consultez Empêcher les modifications de vos versions.

Pour savoir comment vous assurer qu’une version et les ressources locales n’ont pas été modifiées, consultez Vérification de l’intégrité d’une version.