SBOM och DevOps
Skapa, kontrollera och spara en SBOM i varje bygge
En SBOM som skapas för hand blir snabbt inaktuell. I en byggpipeline skapas den i stället automatiskt för varje version, av samma process som bygger mjukvaran.
Stegen i pipelinen
1. Skapa SBOM:en i bygget
Lägg till ett steg som skapar SBOM:en efter att beroendena har installerats. Då innehåller den de versioner som faktiskt följer med, inklusive transitiva beroenden.
Ett exempel för GitHub Actions med Syft, som förutsätter att Syft är installerat i bygget:
- name: Skapa SBOM
run: syft dir:. -o cyclonedx-json=sbom.cdx.json
- name: Spara SBOM med bygget
uses: actions/upload-artifact@v4
with:
name: sbom
path: sbom.cdx.jsonSamma princip gäller i GitLab CI, Azure Pipelines och Jenkins. Hur skapar man en SBOM? listar fler verktyg.
2. Kontrollera den
Låt pipelinen kontrollera SBOM:en innan releasen går vidare:
- uppfyller den SBOM Minimum Elements?
- finns det kända sårbarheter över en nivå ni har bestämt?
- finns det licenser som inte är tillåtna enligt er policy?
Bestäm vilka avvikelser som ska stoppa bygget och vilka som bara ska ge en varning. En regel som stoppar för mycket stängs snart av.
3. Spara den med releasen
SBOM:en hör ihop med en viss version. Spara den tillsammans med byggresultatet och ladda upp den till det system där ni samlar SBOM:er. För containrar kan SBOM:en också fästas vid avbildningen i registret.
4. Bevaka efter leverans
Nya sårbarheter upptäcks i versioner som redan är levererade. De sparade SBOM:erna behöver därför jämföras mot sårbarhetsdata fortlöpande, och någon behöver få besked när en version som används berörs. SBOM och sårbarhetshantering beskriver arbetsflödet.
Vem som gör vad
| Roll | Ansvar |
|---|---|
| Utvecklingsteam | Att bygget skapar en SBOM och att avvikelser i pipelinen åtgärdas |
| Säkerhetsteam | Reglerna för vad som ska stoppa ett bygge, och bevakningen efter leverans |
| Produktägare | Vilka versioner som stöds och hur länge |
Verktyg
Syft, Trivy och cdxgen skapar SBOM:er. För att samla dem, kontrollera dem mot regler och bevaka dem behövs ett system för SBOM-hantering. SBOM Observer från Bytesafe, som driver den här sajten, är ett sådant. Dependency-Track är ett alternativ med öppen källkod.