SBOM i digitala leveranskedjor
Hur SBOM delas mellan leverantör och kund
En mjukvaras leveranskedja (software supply chain) är alla led som bidrar till den färdiga produkten: egen kod, öppen källkod, kommersiella komponenter, byggverktyg och de leverantörer som står bakom dem.
Liknelsen med en ingrediensförteckning är vanlig. Den som beställer mat kan ha många skäl att vilja veta vad den innehåller. På samma sätt kan en organisation ha flera skäl att vilja veta vad en mjukvara innehåller: kända sårbarheter, komponenter som inte längre underhålls, licenser som inte går att förena med användningen, eller leverantörer som den egna policyn inte tillåter.
Varför leveranskedjan angrips
Ett angrepp mot en komponent som många använder når alla som använder den.
- SolarWinds (2020). Angripare förde in skadlig kod i en uppdatering av övervakningsprogrammet Orion, som sedan installerades hos tusentals kunder.
- Log4Shell (2021). En sårbarhet i loggningsbiblioteket Log4j berörde ett mycket stort antal produkter som innehöll biblioteket, ofta utan att tillverkaren visste om det.
- xz Utils (2024). En bakdörr hade förts in i komprimeringsbiblioteket xz av en person som under lång tid byggt upp förtroende i projektet. Den upptäcktes innan den nådde bred spridning.
Vad som behöver delas
En SBOM räcker inte ensam. Tre slags uppgifter behöver gå mellan leverantör och kund:
| Uppgift | Besvarar | Ändras |
|---|---|---|
| SBOM | Vad innehåller den här versionen? | Vid varje ny version |
| VEX | Påverkas produkten av en viss sårbarhet? | När sårbarheter blir kända eller bedöms om |
| Livscykeldatum | Hur länge stöds versionen med säkerhetsuppdateringar? | När supporten ändras |
Båda rollerna samtidigt
De flesta organisationer är både kund och leverantör. De tar emot SBOM:ar från sina leverantörer och lämnar egna till sina kunder. När en underleverantörs SBOM förs in i den egna får kunden en förteckning som täcker hela produkten.
Hur det går till i praktiken
I dag skickas SBOM:ar ofta som bilagor i e-post eller läggs i en kundportal. Det fungerar för enstaka leveranser men blir ohanterligt med många leverantörer, många versioner och uppgifter som ändras över tid.
Det som behövs är:
- En fast plats per leverantör och produkt, där den aktuella SBOM:en och äldre versioner finns.
- Automatisk leverans från leverantörens byggpipeline, så att varje version får sin SBOM.
- Åtkomststyrning, så att varje kund bara ser det som gäller den.
- Spårbarhet, så att det går att visa vad som delades och när.
Inom Ecma pågår arbete med en standard för utbyte av sådana dokument, Transparency Exchange API. Ramverket Scale SBOM beskriver roller, ansvar och innehållskrav.
Trust Repository från Bytesafe, som driver den här sajten, är ett verktyg för att samla in SBOM, VEX och livscykeldatum från leverantörer och publicera egna till kunder.
Kom igång
- Skapa en SBOM för varje version av er egen mjukvara. Se Hur skapar man en SBOM?
- Be era viktigaste leverantörer om SBOM:ar, och skriv in det i nya avtal. Se SBOM i offentlig upphandling.
- Bevaka alla SBOM:ar mot nya sårbarheter. Se SBOM och sårbarhetshantering.