Deze pagina is een zusterpagina van Basis van pakketontwikkeling. We gaan ervan uit dat je bekend bent met het basisgebruik van GitHub Actions.
Beveiligingsrisico’s van GitHub Actions
Het gevaar van verwijzen via tags
Normaal gesproken worden GitHub Actions als volgt via tags gerefereerd.- Tags zijn verplaatsbaar — een tag kan worden verwijderd en opnieuw aangemaakt onder dezelfde naam
- Manipulatierisico — via een overgenomen account van de repository-eigenaar kan kwaadaardige code worden geïnjecteerd
- Supply-chain-aanvallen — als een action waarvan je afhankelijk bent wordt aangevallen, is jouw workflow gecompromitteerd
Hoe de officiële Laravel-projecten dit aanpakken
In laravel/laravel en laravel/framework zijn alle actions gepind op commithashes (SHA).Implementatiestrategie voor pinnen
Stap 1: het Dependabot-configuratiebestand aanmaken
Maak in de repository van je pakket het bestand.github/dependabot.yml aan. Je kunt het bestand van Laravel gewoon kopiëren.
- Automatisch scannen — scant op nieuwe versies van GitHub Actions
- Automatisch PR’s aanmaken — maakt automatisch een update-PR aan als er een update beschikbaar is
- De updatemethode sturen — niet-gepinde actions worden per versie geüpdatet, gepinde actions per SHA
Stap 2: bestaande actions pinnen op SHA
Verander alle action-referenties in je bestaande workflows naar SHA-hashes. Dit kun je automatiseren met tools zoals pinact.Automatiseren met de pinact-tool
Handmatig aanpassen
Alspinact niet beschikbaar is, zoek je de commit-SHA van elke action op via de GitHub-pagina Lookup latest version en vervang je ze handmatig.
Stap 3: de Dependabot-configuratie activeren
Zodra je.github/dependabot.yml naar de repository commit en pusht, begint Dependabot automatisch te scannen.
Het automatische updatemechanisme van Dependabot
Dependabot past op basis van de instellingen independabot.yml verschillende updatestrategieën toe.
Niet-gepinde actions
Gepinde actions
Voorbeeldimplementatie van workflows
Een compleet voorbeeld voor wanneer je actions in meerdere workflows gebruikt.Omgaan met update-PR’s van Dependabot
De update-PR’s die Dependabot aanmaakt, handel je als volgt af.Update-PR voor een enkele action
- Controleer het resultaat van de workflowrun
- Controleer op breaking changes
- Merge en klaar
Beveiligingsupdate-PR
Gegroepeerde updates van meerdere actions
Als jegroups hebt geconfigureerd in dependabot.yml, worden meerdere actions in één PR geüpdatet.
Voor- en nadelen van pinnen
Voordelen
Nadelen
Checklist voor beveiligingsaudits
Een checklist voor wanneer je een nieuw pakketproject start.Initiële setup
Initiële setup
-
.github/dependabot.ymlaangemaakt - Alle bestaande actions gepind op SHA
- Gecontroleerd met
pinactof handmatig - Gecontroleerd dat de workflows correct draaien
Periodiek onderhoud
Periodiek onderhoud
- Update-PR’s van Dependabot minstens wekelijks reviewen
- Beveiligingsupdates met voorrang mergen
- Nieuwe actions altijd via SHA refereren
- Eén keer per maand de status van alle workflows controleren
Audit
Audit
- Controleren of alle action-referenties SHA’s zijn
- Controleren of Dependabot is ingeschakeld
- Controleren of alle Dependabot-PR’s van de afgelopen 6 maanden zijn gemerged
Gerelateerde pagina’s
Basis van pakketontwikkeling
Leer hoe je Laravel-pakketten ontwikkelt met service providers als kern.
Versiecompatibiliteit van pakketten beheren
Leer strategieën om je pakket mee te laten gaan met major versie-upgrades van Laravel.