Les **versions immuables** sont des versions dont les ressources et la balise Git associée ne peuvent plus ê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 les versions immuables, les protections suivantes s’appliquent :
-
**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.
En outre, la création d’une version immuable génère automatiquement une attestation de version, qui est un enregistrement vérifiable cryptographiquement d’une version contenant la balise de version, le SHA du commit et les ressources de la version. Les utilisateurs peuvent utiliser cette attestation pour s’assurer que les versions et les artefacts qu’ils utilisent correspondent exactement aux versions publiées sur GitHub.
Remarque
Les versions immuables incluent une protection contre les attaques de résurrection de référentiel. 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 le message « est immuable » sous le titre sur la page de la version.
Meilleures pratiques pour la publication de versions immuables
Nous vous recommandons d’utiliser le flux de travail suivant pour publier une version immuable.
- Créez la version en tant que brouillon.
- Joignez toutes les ressources associées au brouillon de version.
- Publiez la version préliminaire.
Cela garantit que toutes les ressources sont en place avant que la version ne devienne immuable, pour vous éviter d’avoir à contourner les restrictions d’immutabilité.
Étapes suivantes
Pour savoir comment activer les versions immuables pour votre référentiel ou votre organisation, consultez Prévention des modifications de vos releases.
Pour savoir comment vérifier qu’une version et les ressources locales n’ont pas été modifiées, consultez Vérification de l’intégrité d’une version.