Skip to main content

Unveränderliche Releases

Erfahre mehr über unveränderliche Releases und wie sie dabei helfen können, die Integrität deiner Softwarelieferkette aufrechtzuerhalten.

          **Unveränderliche Releases** sind Releases, bei denen die Objekte und das zugehörige Git-Tag nach der Veröffentlichung nicht mehr geändert werden können. Die Verwendung dieser Art von Release erhöht die Sicherheit durch Blockieren von Supply Chain-Angriffen. Angreifer können folgendes nicht:
  • Einfügen von Sicherheitsrisiken oder Schadsoftware in aktuelle Projektversionen.
  • Nehmen Sie Änderungen an Objekten und Tags vor, die Entwicklerworkflows unterbrechen können.

Was schützen unveränderliche Versionen?

Wenn Sie unveränderliche Software-Releases aktivieren, werden die folgenden Schutzmaßnahmen erzwungen:

  •         **Git-Tags können nicht verschoben werden**: Sobald eine unveränderliche Version veröffentlicht wurde, ist das zugehörige Git-Tag auf einen bestimmten Commit gesperrt, kann nicht geändert werden und kann nicht gelöscht werden, während die Version vorhanden ist. Wenn Sie die unveränderliche Version löschen, können Sie das Tag löschen, aber nicht denselben Tagnamen wiederverwenden.
    
  •         **Releaseobjekte können nicht geändert oder gelöscht werden**: Alle an die Version angefügten Dateien (z. B. Binärdateien und Archive) sind vor Änderungen oder Löschungen geschützt.
    

Darüber hinaus wird beim Erstellen eines unveränderlichen Release automatisch ein Releasenachweis generiert, bei dem es sich um einen kryptografisch überprüfbaren Datensatz eines Release handelt, der das Releasetag, den Commit-SHA und die Releaseressourcen enthält. Verbraucher können diesen Nachweis verwenden, um sicherzustellen, dass die Versionen und Artefakte, die sie verwenden, genau mit den veröffentlichten GitHub Versionen übereinstimmen.

Hinweis

Unveränderliche Versionen umfassen Schutz vor Repository-Auferstehungsangriffen. Selbst wenn Sie ein Repository löschen und ein neues Repository mit demselben Namen erstellen, können Sie keine Tags wiederverwenden, die mit unveränderlichen Versionen im ursprünglichen Repository verknüpft waren.

Wenn eine Version unveränderlich ist, wird unterhalb des Titels auf der Veröffentlichungsseite " Unveränderlich" angezeigt.

Bewährte Methoden zum Veröffentlichen unveränderlicher Versionen

Es wird empfohlen, den folgenden Workflow zum Veröffentlichen einer unveränderlichen Version zu verwenden.

  1. Erstellen Sie die Version als Entwurf.
  2. Fügen Sie alle zugeordneten Ressourcen an den Releaseentwurf an.
  3. Veröffentlichen Sie den Releaseentwurf.

Dadurch wird sichergestellt, dass alle Ressourcen vorhanden sind, bevor die Version unveränderlich wird. Dies vermeidet die Notwendigkeit, mit den unveränderlichen Einschränkungen umgehen zu müssen.

Nächste Schritte

Informationen zum Aktivieren unveränderlicher Releases für dein Repository oder deine Organisation findest du unter Verhindern von Änderungen an deinen Releases.

Informationen dazu, wie du sicherstellst, dass ein Release und lokale Ressourcen nicht geändert wurden, findest du unter Überprüfen der Integrität eines Release.