Übersicht
Mit Artefaktbescheinigungen können Sie fälschungssichere Herkunfts- und Integritätsgarantien für die von Ihnen entwickelte Software erstellen. Personen, die Ihre Software nutzen, können wiederum überprüfen, wo und wie Ihre Software erstellt wurde.
Wenn Sie Artefaktenachweise mit Ihrer Software generieren, erstellen Sie kryptografisch signierte Ansprüche, die die Provenienz Ihres Builds einrichten und die folgenden Informationen enthalten:
- Eine Verknüpfung mit dem Workflow, der dem Artefakt zugeordnet ist.
- Das Repository, die Organisation, die Umgebung, die SHA-Übertragung und das auslösende Ereignis für das Artefakt.
- Andere Informationen aus dem OIDC-Token, die zur Feststellung der Herkunft verwendet werden. Weitere Informationen finden Sie unter OpenID Connect.
Sie können auch Artefaktnachweise generieren, die eine zugeordnete Software-Stückliste (SBOM) enthalten. Das Zuordnen Ihrer Builds zu einer Liste der darin verwendeten Open Source-Abhängigkeiten bietet Transparenz und ermöglicht es Verbrauchern, Datenschutzstandards einzuhalten.
SLSA-Ebenen für Artefaktnachweise
Das SLSA-Framework ist ein Industriestandard, der zur Bewertung der Lieferkettensicherheit verwendet wird. Es ist in Ebenen organisiert. Jede Ebene stellt einen zunehmenden Grad an Sicherheit und Vertrauenswürdigkeit für eine Software-Lieferkette dar. Artefaktnachweise selbst stellen SLSA v1.0 Build Level 2 bereit.
Dies stellt eine Verknüpfung zwischen Ihrem Artefakt und seinen Buildanweisungen bereit, aber Sie können noch einen Schritt weiter gehen, indem Sie fordern, dass die Builds bekannte, geprüfte Buildanweisungen verwenden. Eine gute Möglichkeit, dies zu erreichen, besteht darin, dass Ihr Build in einem wiederverwendbaren Workflow stattfindet, den viele Repositories in Ihrem Unternehmen gemeinsam nutzen. Wiederverwendbare Workflows können eine Isolation zwischen dem Buildprozess und dem aufrufenden Workflow bereitstellen, um SLSA v1.0 Buildebene 3 zu erfüllen. Weitere Informationen finden Sie unter Verwenden von Artefaktnachweisen und wiederverwendbaren Workflows zum Erreichen von SLSA v1 Build Level 3.
Weitere Informationen zu SLSA-Ebenen finden Sie unter SLSA-Sicherheitsstufen.
Wie GitHub Artefaktnachweise generiert
Um Artefaktenachweise zu generieren, verwendet GitHub Sigstore, ein Open Source-Projekt, das eine umfassende Lösung für die Signierung und Verifizierung von Software-Artefakten über Nachweise bietet.
Öffentliche Repositorys, die Artefaktenachweise generieren, verwenden die Sigstore Public Good Instance. Eine Kopie des generierten Sigstore-Bundles wird mit GitHub gespeichert und auch in ein unveränderliches Transparenzprotokoll geschrieben, das im Internet öffentlich lesbar ist.
Private Repositorys, die Artefaktenachweise generieren, verwenden die Sigstore-Instance von GitHub. Die Sigstore-Instance von GitHub verwendet dieselbe Codebasis wie die Sigstore Public Good Instance, verfügt jedoch nicht über ein Transparenzprotokoll und verwendet nur GitHub Actions.
Wann sollten Nachweise generiert werden?
Das Generieren von Nachweisen allein bietet keinen Sicherheitsvorteil, die Nachweise müssen überprüft werden, damit der Vorteil realisiert werden kann. Im Folgenden finden Sie einige Richtlinien dazu, was signiert werden soll und wie oft:
Folgendes sollte unterzeichnet werden:
- Software, die Sie veröffentlichen, von der Sie erwarten, dass die Benutzer sie auf
gh attestation verify ...
ausführen. - Binärdateien, die Menschen ausführen, Pakete, die Menschen herunterladen, oder Manifeste, die Hashes der detaillierten Inhalte enthalten.
Folgendes sollte nicht unterzeichnet werden:
- Häufige Builds, die nur für automatisierte Tests geeignet sind.
- Einzelne Dateien wie Quellcode, Dokumentationsdateien oder eingebettete Bilder.
Überprüfung von Artefaktnachweisen
Wenn Sie Software verwenden, die Artefaktnachweise veröffentlicht, können Sie die GitHub CLI verwenden, um diese Nachweise zu überprüfen. Da die Nachweise Aufschluss darüber geben, wo und wie die Software erstellt wurde, können Sie diese Informationen nutzen, um Sicherheitsrichtlinien zu erstellen und durchzusetzen, die die Sicherheit Ihrer Lieferkette erhöhen.
Warnung
Es ist wichtig zu beachten, dass Artefaktnachweise keine Garantie dafür sind, dass ein Artefakt sicher ist. Stattdessen verknüpfen Sie Artefaktenachweise mit dem Quellcode und den Buildanweisungen, die sie erstellt haben. Es liegt an Ihnen, Ihre Richtlinienkriterien festzulegen, diese Richtlinien durch Bewertung des Inhalts zu bewerten und eine fundierte Risikoentscheidung zu treffen, wenn Sie Software nutzen.
Nächste Schritte
Informationen zum Generieren und Überprüfen von Artefaktnachweisen für deine Builds findest du unter Verwenden von Artefaktnachweisen zur Ermittlung der Herkunft von Builds.