Mjukvaruförsörjningskedja
En mjukvaruförsörjningskedja består av komponenterna, biblioteken, verktygen och processerna som används för att utveckla, bygga och publicera en mjukvaruartefakt.
Programvaruleverantörer skapar ofta produkter genom att montera öppen källkod och kommersiella programvarukomponenter . En mjukvaruförteckning (SBOM) deklarerar inventeringen av komponenter som används för att bygga en mjukvaruartefakt, såsom en mjukvaruapplikation. Det är analogt med en förteckning över ingredienser på livsmedelsförpackningar: där du kan konsultera en etikett för att undvika livsmedel som kan orsaka allergier , kan SBOM hjälpa organisationer eller personer att undvika konsumtion av programvara som kan skada dem.
Konceptet med en BOM är väletablerat inom traditionell tillverkning som en del av supply chain management . En tillverkare använder en stycklista för att spåra de delar den använder för att skapa en produkt. Om defekter senare upptäcks i en specifik del, stycklistan det enkelt att lokalisera berörda produkter.
Användande
En SBOM är användbar både för byggaren (tillverkaren) och köparen (kunden) av en mjukvaruprodukt. Byggare använder ofta tillgängliga programvarukomponenter med öppen källkod och tredje part för att skapa en produkt; en SBOM låter byggaren se till att dessa komponenter är uppdaterade och att reagera snabbt på nya sårbarheter. Köpare kan använda en SBOM för att utföra sårbarhets- eller licensanalys, som båda kan användas för att utvärdera risker i en produkt.
Medan många företag bara använder ett kalkylblad för allmän stycklista, finns det ytterligare risker och problem i en SBOM som skrivits till ett kalkylblad. SBOM:er får större värde när de lagras kollektivt i ett arkiv som kan vara en del av andra automationssystem, lätt att fråga av andra applikationer. Detta behov av automatiserad SBOM-behandling tillgodoses av den öppna standarden Software Package Data Exchange (SPDX) .
Att förstå leveranskedjan för programvara, skaffa en SBOM och använda den för att analysera kända sårbarheter är avgörande för att hantera risker .
Lagstiftning
Cyber Supply Chain Management and Transparency Act från 2014 var amerikansk lagstiftning som föreslog att myndigheter skulle kräva att statliga myndigheter skaffar SBOM för alla nya produkter de köper. Det skulle också ha krävt att man skaffade SBOM för "alla program, fast programvara eller produkt som används av USA:s regering". Även om det till slut inte gick igenom, gjorde den här lagen medvetenhet till regeringen och sporrade till senare lagstiftning som "Internet of Things Cybersecurity Improvement Act of 2017."
US Executive Order on Improving the Nation's Cybersecurity av den 12 maj 2021 beordrade NIST att utfärda vägledning inom 90 dagar för att "inkludera standarder, procedurer eller kriterier angående" flera ämnen för att "förbättra säkerheten i programvarans leveranskedja", inklusive "tillhandahålla en köpare en Software Bill of Materials (SBOM) för varje produkt." NTIA fick också mandat inom 60 dagar att "publicera minimielement för en SBOM."
NTIA:s minimielement publicerades den 12 juli 2021 och "beskriver även SBOM-användningsfall för större transparens i mjukvaruförsörjningskedjan och lägger upp alternativ för framtida utveckling." Minimielementen består av tre breda kategorier: datafält (baslinjeinformation om varje programvarukomponent), automatiseringsstöd (möjligheten att generera SBOMs i maskin- och människoläsbara format) och praxis och processer (hur och när organisationer ska generera SBOMs ). Kravet på "automationsstöd" specificerar behovet av "automatisk generering", vilket är möjligt med användning av Software Composition Analysis (SCA)-lösningar.