Diese Seite ist eine Schwesterseite von Grundlagen der Paketentwicklung und setzt Grundkenntnisse zu GitHub Actions voraus.
Sicherheitsrisiken bei GitHub Actions
Gefahren einer Tag-basierten Referenz
Üblicherweise werden GitHub Actions per Tag referenziert:- Tags sind verschiebbar — sie können gelöscht und mit demselben Namen neu erstellt werden.
- Manipulationsrisiko — bei Übernahme des Repo-Accounts kann bösartiger Code eingeschleust werden.
- Supply-Chain-Angriff — wenn eine abhängige Action kompromittiert wird, wird auch Ihr Workflow kompromittiert.
Umgang in offiziellen Laravel-Projekten
Sowohl laravel/laravel als auch laravel/framework pinnen alle Actions auf Commit-Hashes (SHA).Strategie für die Umsetzung
Schritt 1: Dependabot-Konfiguration anlegen
Legen Sie in Ihrem Paket-Repository die Datei.github/dependabot.yml an. Sie können die Datei von Laravel direkt übernehmen.
- Automatisches Scannen — sucht nach neuen Versionen der GitHub Actions.
- Automatische PRs — erstellt bei Updates automatisch Update-PRs.
- Update-Steuerung — nicht gepinnte Actions werden per Version aktualisiert, gepinnte Actions per SHA.
Schritt 2: Bestehende Actions auf SHAs pinnen
Ersetzen Sie in Ihren Workflows alle Action-Referenzen durch SHA-Hashes. Werkzeuge wie pinact automatisieren das.Automatisierung mit pinact
Manuell umstellen
Ohnepinact ermitteln Sie die Commit-SHA jeder Action über die GitHub-Seite Lookup latest version und ersetzen manuell.
Schritt 3: Dependabot aktivieren
Committen und pushen Sie.github/dependabot.yml — Dependabot beginnt dann automatisch zu scannen.
Wie Dependabot automatisch aktualisiert
Dependabot wendet je nach Zustand der Datei unterschiedliche Update-Strategien an.Nicht gepinnte Actions
Gepinnte Actions
Beispielhafte Workflow-Umsetzung
Ein vollständiges Beispiel mit mehreren Workflows.Umgang mit Dependabot-Update-PRs
Update-PRs von Dependabot bearbeiten Sie wie folgt.PR für ein einzelnes Action-Update
- Ergebnisse der Workflow-Läufe prüfen.
- Auf Breaking Changes prüfen.
- Mergen — fertig.
Sicherheitsupdate-PR
Gruppen-Updates mehrerer Actions
Wenn Sie independabot.yml groups konfigurieren, kommen mehrere Actions in einem einzigen PR.
Vor- und Nachteile des Pinnings
Vorteile
| Vorteil | Beschreibung |
|---|---|
| Schutz vor Supply-Chain-Angriffen | Da ein konkreter Commit-Hash referenziert wird, sind Sie gegen Manipulationen geschützt. |
| Auditierbarkeit | Sie können nachvollziehen, wann welche Action auf welche Version aktualisiert wurde. |
| Explizites Update | Dependabot schlägt vor — jedes Update durchläuft ein menschliches Review. |
| Reproduzierbarkeit | Bei identischem Commit-Hash erhalten Sie exakt dieselbe Umgebung. |
Nachteile
| Nachteil | Gegenmaßnahme |
|---|---|
| Aufwand bei der Ersteinrichtung | Mit pinact automatisieren |
| Höherer Update-Aufwand | Dependabot erzeugt automatische PRs — Aufwand minimal |
| Schlechtere Lesbarkeit | Kommentar mit Versionsangabe erhält die Lesbarkeit |
Checkliste für Sicherheitsprüfungen
Checkliste bei neuen Paketprojekten.Ersteinrichtung
Ersteinrichtung
-
.github/dependabot.ymlanlegen - Alle bestehenden Actions auf SHA pinnen
-
pinactoder manuelle Prüfung abgeschlossen - Erfolgreicher Workflow-Lauf verifiziert
Regelmäßige Wartung
Regelmäßige Wartung
- Dependabot-Update-PRs mindestens einmal pro Woche reviewen
- Sicherheitsupdates priorisiert mergen
- Neue Actions grundsätzlich per SHA referenzieren
- Einmal pro Monat den Zustand aller Workflows prüfen
Audit
Audit
- Alle Action-Referenzen sind SHAs
- Dependabot ist aktiv
- Alle Dependabot-PRs der letzten 6 Monate sind gemergt
Verwandte Seiten
Grundlagen der Paketentwicklung
Wie Sie Laravel-Pakete rund um Service Provider entwickeln.
Versionskompatibilität von Paketen verwalten
Strategien für Paket-Anpassungen bei Major-Upgrades von Laravel.