SBOM
SBOM:n laadun tarkistuslista: näin validoit toimittajiesi lähettämät SBOM:t
Tarkista kolme asiaa: onko tiedosto kelvollinen, ovatko sen kentät käyttökelpoisia ja puuttuuko jotain. Skeemavalidaattorit havaitsevat ensimmäisen, kenttätarkistukset ja laatupisteet toisen, eikä mikään pelkkää tiedostoa lukeva työkalu voi todistaa kolmatta. Alla oleva tarkistuslista yhdistää jokaisen tarkistuksen NTIA:n vuoden 2021 minimielementteihin, CISA:n vuoden 2026 Minimum Elements -elementteihin ja BSI TR-03183-2:een, kertoo, miten sen voi testata, ja antaa palauterivin, jonka voit lähettää toimittajalle.
Päivitetty
SBOM:n laadun kolme tasoa
| Taso | Kysymys | Mikä sen tarkistaa | Mitä se ei voi kertoa |
|---|---|---|---|
| Kelvollinen | Voiko tiedoston jäsentää, ja noudattaako se ilmoittamansa formaatin ja version skeemaa? | Skeemavalidaattorit | Onko yhteenkään kenttään täytetty jotain hyödyllistä |
| Käyttökelpoinen | Ovatko tarvitsemasi kentät mukana, ja voiko työkalu käyttää niitä: tietoturvatiedotteisiin täsmäävät tunnisteet, lisenssit, tiivisteet, suhteet? | Kenttätarkistukset, vaatimustenmukaisuusprofiilit ja laatupisteet | Mitä tiedostosta puuttuu |
| Kattava | Listaako se kaiken, mitä saamassasi ohjelmistossa on? | Vertailu buildiin tai toimitetun binäärin analyysiin | Mikään pelkkää SBOM:ia lukeva ei voi vastata tähän |
Useimmat vastaanottavat tiimit pysähtyvät ensimmäiselle tasolle. "Tiedosto validoituu" on tarkistuksen alku, ei sen tulos. Kolmas taso on SBOM:n kattavuus.
Viitekehykset minuutissa
Nimeä viitekehys jokaisessa pyynnössä ja jokaisessa palautteessa, jotta rima on julkaistu eikä sinun mielipiteesi.
- NTIA, The Minimum Elements for a Software Bill of Materials (12.7.2021). Seitsemän tietokenttää (supplier name, component name, version, other unique identifiers, dependency relationship, author of SBOM data, timestamp), automaatiotuki SPDX-, CycloneDX- tai SWID-tageina sekä käytännöt: frequency, depth, known unknowns, distribution and delivery, access control, accommodation of mistakes. Tiivisteet, lisenssit, elinkaaren vaihe ja allekirjoitukset mainitaan suositeltuina, minimin ulkopuolella.
- CISA, 2026 Minimum Elements for a Software Bill of Materials (29.7.2026, luonnoksen 22.8.2025 jälkeen). Korvaa NTIA:n elementit. Sen ovat laatineet 18 organisaatiota 14 maasta, muun muassa CISA, NSA, FBI, Saksan BSI sekä Japanin METI ja NCO. Siinä on 17 tietokenttää, joista kymmenen on uusia: SBOM author signature, data format name, data format version, generation context, tool name, tool version, SBOM version, component hash value, component hash algorithm ja component license. "Supplier name" muuttuu muotoon "Component Producer". Sen käytännöt ovat coverage, explicitly identifying unknown information, machine-processable data, accommodation of updates, frequency sekä distribution and delivery. Dokumentti muotoilee jokaisen elementin should-sanalla ja toteaa, ettei se luo uusia vaatimuksia; ostajat tekevät siitä sitovan kirjaamalla sen sopimuksiin.
- BSI, TR-03183-2 versio 2.1.0 (20.8.2025), Saksa. Kolmesta tiukin, ja se on kirjoitettu MUST-muotoon: JSON tai XML, CycloneDX 1.6 tai uudempi tai SPDX 3.0.1 tai uudempi, yksi SBOM ohjelmistoversiota kohden, rekursiivinen riippuvuuksien ratkaisu ja kunkin riippuvuuslistan kattavuuden ilmoittaminen, jokaisen käyttöön otettavan komponentin SHA-512-tiiviste, komponentin tiedostonimi, jakelulisenssit SPDX-tunnisteina sekä package URL tai CPE, "if it exists". Sen mukaan SBOM ei myöskään saa sisältää haavoittuvuustietoja; ne kuuluvat VEX-dokumenttiin tai tietoturvatiedotteeseen.
- Kansainvälinen yhdenmukaisuus. A Shared Vision of SBOM for Cybersecurity (3.9.2025) on 18 organisaation allekirjoittama 15 maasta. G7:n SBOM-työ koskee tekoälyjärjestelmiä ("A shared G7 vision on SBOM for AI", 2025, ja "SBOM for AI – Minimum Elements", toukokuu 2026), eikä se aseta vaatimuksia sulautettujen järjestelmien toimittajien SBOM:eille.
- Autoteollisuus. Auto-ISAC julkaisi SBOM Informational Reportin 11.2.2025.
Tarkistuslista
Näin luet solut: Pakollinen tarkoittaa, että dokumentissa lukee must. Vähimmäiselementti tarkoittaa, että se on kyseisen dokumentin minimilistassa (NTIA:n perustaso tai CISA:n should-elementit). Suositeltu tarkoittaa, että dokumentti mainitsee sen minimin ulkopuolella. Ei mainita tarkoittaa, ettei dokumentti edellytä sitä. Miten kukin tarkistus testataan ja mikä palauterivi lähetetään, kerrotaan seuraavassa osiossa.
SBOM-tason tarkistukset
| Tarkistus | Miksi sillä on merkitystä | NTIA 2021 | CISA 2026 | BSI TR-03183-2 |
|---|---|---|---|---|
| 1. Jäsentyy ja validoituu ilmoitettua skeemaansa vasten | Tiedosto, jota työkalusi eivät pysty lukemaan, ei ole SBOM | Pakollinen: SPDX, CycloneDX tai SWID-tagit | Käytäntö: koneellisesti käsiteltävä SPDX tai CycloneDX | Pakollinen: JSON tai XML |
| 2. Spesifikaatioversio täyttää vähimmäistasosi | Vanhat versiot eivät pysty sisältämään tarvitsemiasi kenttiä | Ei mainita | Vähimmäiselementti: dataformaatin nimi ja versio; vältä vanhentuneita versioita | Pakollinen: CycloneDX 1.6+ tai SPDX 3.0.1+ |
| 3. SBOM:n laatija | Joku vastaa sisällöstä | Vähimmäiselementti: "Author of SBOM Data" | Vähimmäiselementti: "SBOM Author", organisaatio, ei työkalu | Pakollinen: "Creator of the SBOM", sähköposti tai URL |
| 4. Aikaleima | Kertoo, mikä SBOM on ajantasainen | Vähimmäiselementti | Vähimmäiselementti | Pakollinen; UTC suositeltu |
| 5. Työkalun nimi ja versio | Kertoo, minkä kattamiseen SBOM:iin voi luottaa | Ei mainita | Vähimmäiselementti | Ei mainita |
| 6. Generointikonteksti | Saman julkaisun lähdekoodiskannaus ja buildikirjaus eroavat toisistaan | Suositeltu: elinkaaren vaihe ("source", "build", "post-build") | Vähimmäiselementti: "before build", "build" tai "after build" | Ei kenttää; sisällön on vastattava sitä, mitä buildin aikana oli saatavilla |
| 7. SBOM:n versio tai sarjanumero | Erottaa korjauksen alkuperäisestä | Ei mainita | Vähimmäiselementti: "SBOM Version" | Pakollinen, jos formaatissa on sellainen: "SBOM-URI" |
| 8. Laatijan allekirjoitus | Osoittaa, että tiedosto tuli toimittajalta muuttumattomana | Suositeltu: allekirjoittamiseen kannustetaan | Vähimmäiselementti: "SBOM Author Signature" | Vain informatiivinen: "ideally" allekirjoitettu |
| 9. Ylimmän tason komponentti vastaa saamaasi | Väärän julkaisun SBOM on huonompi kuin ei mitään | Vähimmäiselementti: pääkomponentit | Vähimmäiselementti: kohdekomponentti | Pakollinen: pääkomponentti, puun juuri |
Komponenttitason tarkistukset
| Tarkistus | Miksi sillä on merkitystä | NTIA 2021 | CISA 2026 | BSI TR-03183-2 |
|---|---|---|---|---|
| 10. Komponentin nimi | Ensimmäinen asia, jota jokainen täsmäytys käyttää | Vähimmäiselementti | Vähimmäiselementti | Pakollinen; tiedostonimi, jos nimeä ei ole |
11. Versio: ei arvoja latest, unknown tai tyhjää |
Tietoturvatiedotteet koskevat versioväliä | Vähimmäiselementti | Vähimmäiselementti; kerro, jos versio on tuntematon | Pakollinen; tiedoston päivämäärä, jos versiota ei ole |
| 12. Tuottaja tai toimittaja | Erottaa kaksi samannimistä komponenttia ja kertoo, kuka korjaa | Vähimmäiselementti: "Supplier Name" | Vähimmäiselementti: "Component Producer" | Pakollinen: "Component creator", sähköposti tai URL |
| 13. Package URL aina, kun ekosysteemissä on sellainen, muuten CPE; molemmat oikein muodostettuja | Ilman tunnistetta (package URL, CPE) mitään ei voi täsmäyttää haavoittuvuustietokantaan | Vähimmäiselementti: "Other Unique Identifiers", kuten CPE, SWID tai PURL, jos niitä on | Vähimmäiselementti: vähintään yksi tunniste, kuten CPE tai PURL; sisällytä kaikki | Pakollinen, jos sellainen on: CPE tai purl |
| 14. Tiivisteen arvo ja algoritmi, jotka vastaavat saamaasi tiedostoa | Todistaa, että tämä SBOM kuvaa tätä binääriä | Suositeltu | Vähimmäiselementti: suoritettavan artefaktin tiiviste algoritmilla, jonka jokin viranomainen, kuten NIST, on hyväksynyt | Pakollinen: käyttöön otettavan komponentin SHA-512 |
15. Lisenssi SPDX-tunnisteina tai -lausekkeina, ei yleistä NOASSERTION-arvoa |
Lisenssiasiantuntijasi arvioi sen perusteella copyleft- ja muut velvoitteet | Suositeltu | Vähimmäiselementti; SPDX-tunnisteet mahdollisuuksien mukaan | Pakollinen: jakelulisenssit, ensisijaisesti SPDX-tunnisteina |
| 16. Riippuvuussuhteet ja tieto siitä, onko lista kattava | Näyttää, mikä toi haavoittuvan paketin mukaan, ja voiko aukkoihin luottaa | Vähimmäiselementti; kerro, kun suorat riippuvuudet on listattu kokonaan | Vähimmäiselementti | Pakollinen, ja kunkin listan kattavuus on ilmoitettava |
| 17. Tiedostonimi | Yhdistää merkinnän laitteella olevaan tiedostoon | Ei mainita | Ei mainita | Pakollinen |
| 18. Executable-, archive- ja structured-ominaisuudet | Kertoo, millainen tiedosto kukin komponentti on | Ei mainita | Ei mainita | Pakollinen |
Kattavuustarkistukset
| Tarkistus | Miksi sillä on merkitystä | NTIA 2021 | CISA 2026 | BSI TR-03183-2 |
|---|---|---|---|---|
| 19. Transitiivinen syvyys, ei vain ylin taso | Suurin osa haavoittuvasta koodista tulee epäsuorasti | Ylin taso pakollinen; transitiiviset suositeltuja | Kattavuuskäytäntö: sisällytä transitiiviset riippuvuudet; ei vähimmäissyvyyttä | Pakollinen: rekursiivinen ratkaisu |
| 20. Tunnetut tuntemattomat ilmoitettu | SBOM:iin, joka ilmoittaa aukkonsa, voi luottaa siltä osin kuin se listaa | Pakollinen käytäntö | Käytäntö: tuntemattomat ja pidätetyt tiedot merkitty | Pakollinen kattavuusilmoituksen kautta |
| 21. Yksi SBOM jokaista toimitettua ohjelmistoversiota kohden | Merkitystä on sillä versiolla, jota ajat | Pakollinen: uusi SBOM jokaisesta buildista tai julkaisusta | Käytäntö: frequency | Pakollinen |
| 22. Korjaukset lähetetään uutena SBOM:na | Hiljaa korjattua virhettä ei voi jäljittää | Käytäntö: accommodation of mistakes | Käytäntö: accommodation of updates | Pakollinen: päivitetty SBOM, kun virheitä korjataan |
| 23. Uskottavuus: ei kaksoiskappaleita, tuotteeseen sopiva komponenttimäärä, käyttöjärjestelmän paketit mukana Linux-pohjaisessa laitteessa | Edullisin tapa koetella kattavuutta | Ei mainita | Kattavuuskäytäntö: useat instanssit listataan erikseen | Useat instanssit on listattava erikseen |
Miten kukin tarkistus testataan ja mitä toimittajalle kerrotaan
| Tarkistus | Miten testata automaattisesti | Palauterivi toimittajalle |
|---|---|---|
| 1, 2. Skeema ja spesifikaatioversio | Skeemavalidaattori ilmoitetulle formaatille ja versiolle; vertaa sitten specVersion-arvoa (CycloneDX) tai SPDX-versiota vähimmäistasoosi |
"Tiedosto ei läpäise CycloneDX 1.6:n skeemavalidointia luetelluissa poluissa. Generoi se uudelleen generaattorilla ja validoi se ennen lähettämistä." |
| 3–7. Laatija, aikaleima, työkalu, konteksti, versio | Vaaditut metatiedot ovat mukana: CycloneDX:ssä metadata.authors, metadata.timestamp, metadata.tools, metadata.lifecycles, serialNumber ja version; SPDX:ssä luontitiedot |
"SBOM ei kerro, mikä työkalu sen tuotti, eikä generointikontekstia. Molemmat ovat CISA 2026 Minimum Elements -elementtejä." |
| 8. Allekirjoitus | Allekirjoitus on mukana ja se vahvistuu toimittajan julkaisemaa avainta vasten | "Allekirjoita SBOM tai lähetä erillinen allekirjoitus, kuten CISA 2026 -elementti SBOM Author Signature kuvaa." |
| 9. Ylimmän tason komponentti | metadata.component-kohdan (CycloneDX) tai kuvatun juurielementin (SPDX) nimi ja versio vastaavat saamaasi osanumeroa ja ohjelmistoversiota |
"Tämä SBOM kuvaa versiota 5.2.0; saimme version 5.3.0. Lähetä version 5.3.0 SBOM." |
| 10, 11. Nimi ja versio | Ei tyhjiä nimiä; ei tyhjiä, latest- tai unknown-versioita, ellei versiota ole ilmoitettu tuntemattomaksi |
"14 komponentilta puuttuu versio. Ilmoita tarkka versio tai merkitse se tuntemattomaksi." |
| 12. Tuottaja | Jokaisella komponentilla on toimittaja, valmistaja tai laatija | "Komponenteilta puuttuu tuottaja, jota CISA 2026 -elementti Component Producer edellyttää." |
| 13. Tunnisteet | Jokainen purl jäsentyy ECMA-427:n mukaisella package URL -kirjastolla; jokainen CPE on kelvollista CPE 2.3 -syntaksia ja löytyy NVD:n CPE-sanakirjasta |
"Yhdelläkään komponentilla ei ole package URL:ia tai CPE:tä, joten mitään ei voi täsmäyttää haavoittuvuustietokantoihin. Lisää purl jokaiselle paketinhallinnasta tulevalle paketille." |
| 14. Tiivisteet | SHA-512-merkintä jokaisella käyttöön otettavalla komponentilla; laske saamastasi tiedostosta sha512sum ja vertaa |
"SBOM:ssa ei ole tiivisteitä. BSI TR-03183-2 edellyttää jokaisen käyttöön otettavan komponentin SHA-512-tiivistettä." |
| 15. Lisenssit | Lisenssitunnisteet tai -lausekkeet, jotka löytyvät SPDX-lisenssilistalta; laske NOASSERTION- ja tyhjät arvot |
"92 %:lla komponenteista lisenssinä on NOASSERTION. Ilmoita SPDX-lisenssitunnisteet." |
| 16. Riippuvuudet | dependencies-graafi (CycloneDX) tai riippuvuussuhteet (SPDX); kattavuusilmoitus, kuten CycloneDX:n compositions, jossa on aggregate-arvo |
"SBOM on litteä lista. Sisällytä riippuvuussuhteet ja ilmoita, onko kukin lista kattava." |
| 17, 18. Tiedostonimi ja tiedoston ominaisuudet | BSI TR-03183-2:n kullekin formaatille määrittelemät ominaisuudet ovat mukana | "Lisää tiedostonimi sekä executable-, archive- ja structured-ominaisuudet, kuten BSI TR-03183-2 v2.1.0 edellyttää." |
| 19–23. Kattavuus | Riippuvuusgraafin syvyys, kaksoiskappaleiden tunnistus, komponenttimäärän vertailu vastaaviin tuotteisiin, tuotetyypin mukaan odotettavat komponentit | "SBOM ei listaa Linux-pohjaisen näytön kerneliä, käynnistyslataajaa tai perusjärjestelmän paketteja. Lähetä koko levykuvan SBOM." |
Palauterivien prosenttiosuudet ja määrät ovat esimerkkejä. Käytä todellisia lukuja ja nimeä viitekehys ja versio joka kerta.
Mitä hyväksytty pistemäärä silti ohittaa
Tiedosto voi validoitua, saada 9 pistettä 10:stä ja silti jättää puolet tuotteesta pois. Laatupisteet lukevat kentät, jotka ovat mukana; ne eivät näe komponentteja, joita ei ole.
Esimerkki. Toimittaja lähettää Linux-pohjaisen näytön SBOM:n. Se on kelvollista CycloneDX 1.6:ta, jokaisella komponentilla on versio, package URL, lisenssi ja SHA-512-tiiviste, ja riippuvuusgraafi on oikein muodostettu. Se listaa näyttösovelluksen ja 40 kirjastoa. Se ei listaa Linux-kerneliä, käynnistyslataajaa eikä yhtään perusjärjestelmän pakettia. Jokainen kenttätarkistus menee läpi. SBOM on hyödytön kernelin CVE:iden kannalta, joita Linux-laitteesta on seurattava, koska kernel ei ole siinä.
Näin vastaanottava tiimi voi koetella kattavuutta:
- Vertaa toimitetun laiteohjelmiston binäärianalyysiin. Jotkin OEM-valmistajat käyttävät sitä korvaavana SBOM:na, kunnes toimittajan SBOM on riittävän hyvä, ja sen jälkeen ristiintarkistuksena.
- Tarkista tuotetyypin mukaan odotettavat komponentit. Linux-levykuvassa on kernel, C-kirjasto ja init-järjestelmä; teollisuusohjaimessa on sen protokollapinot.
- Kysy generointikontekstia ja työkalua. Lähdekoodiskannaus ei näe, mitä build haki.
- Kysy, tuliko SBOM siitä buildista, joka tuotti saamasi ohjelmiston. Se on kysymys, joka ratkaisee kolmannen tason.
Pienet SBOM:t voivat olla oikeutettuja. Bare metal -ohjainyksikössä (ECU), jossa on suljettu laiteohjelmisto ja toimittajan kalibrointi, voi rehellisesti olla kaksi komponenttia. Hyväksy se, kun SBOM kertoo sen ja ilmoittaa tunnetut tuntemattomansa, äläkä rankaise sitä koosta.
Työkalut, jotka automatisoivat tarkistukset
Tarkistettu GitHubista 11.11.2026. Yhtäkään näistä repoista ei ole arkistoitu.
| Työkalu | Mitä se tarkistaa | Mitä se ei tee | Tila |
|---|---|---|---|
| CycloneDX CLI | CycloneDX 1.0–1.7:n skeemavalidointi, JSON tai XML; --fail-on-errors CI:tä varten |
SPDX, kenttien laatu, viitekehysprofiilit | v0.33.1, heinäkuu 2026 |
| sbom-utility | CycloneDX 1.2–1.7:n ja SPDX 2.1–2.3 JSONin skeemavalidointi, myös omilla skeemamuunnelmilla | SPDX 3, XML, viitekehysprofiilit | v0.19.2, kesäkuu 2026 |
| SPDX tools-java | Verify SPDX 2.0–2.3:lle ja 3.0.1:lle |
CycloneDX, viitekehysprofiilit | v2.0.7, kesäkuu 2026 |
| SPDX tools-python | pyspdxtools -i: SPDX 2.2:n ja 2.3:n täysi validointi |
SPDX 3:n lukeminen, jonka tuki on kokeellinen | v0.8.5, maaliskuu 2026 |
| SPDX NTIA Conformance Checker | SPDX 2.2, 2.3 ja 3.0 NTIA 2021:tä, CISA FSCT3:a ja BSI TR-03183-2 v2.1.0:aa vasten; myös verkkoversio | CycloneDX; CISA 2026 on avoin pyyntö | v6.0.0, lokakuu 2026 |
| sbomqs | 0–10 pisteen score tunnistamisen, alkuperän, eheyden, kattavuuden, lisensoinnin, haavoittuvuuksien ja rakenteen osalta; compliance-profiilit CISA 2026:lle, NTIA 2021:lle, BSI TR-03183-2 v1.1–v2.1.0:lle, FSCT v3:lle ja OpenChain Telcolle |
Näe puuttuvia komponentteja | v2.1.3, lokakuu 2026; CISA 2026 -profiili versiosta v2.1.0, korjattu versiossa v2.1.2 |
| sbom-scorecard | Painotettu pistemäärä spesifikaation noudattamisesta, generointitiedoista sekä pakettien tunnisteista, versioista ja lisensseistä | Viitekehysprofiilit | 0.0.7, huhtikuu 2023, viimeisin julkaisu |
Toistaiseksi vain sbomqs tarkistaa CISA 2026 Minimum Elements -elementit. Tarkista kunkin työkalun julkaisutiedot ennen kuin luotat profiiliin:
sbomqs 2.1.1:ssä CISA 2026 -lippu ajoi vahingossa vuoden 2021 tarkistuksen. BSI TR-03183-2 v2.1.0:aa varten käytä sbomqs:ssä
lippua --bsi-v21 tai --bsi; --bsi-v2 tarkistaa version v2.0.0.
Minimaalinen vastaanottovaihe toimittajan CycloneDX-SBOM:lle:
# 1. Valid: fail the intake on schema errors
cyclonedx-cli validate --input-file supplier-sbom.json --input-format json --fail-on-errors
# 2. Usable: run the profile your requirement names
sbomqs compliance --bsi-v21 supplier-sbom.json
sbomqs compliance --ntia supplier-sbom.json # CISA 2026 Minimum Elements
# 3. Track field quality over time
sbomqs score supplier-sbom.json
# 4. The hash in the SBOM matches the file you received
sha512sum firmware-5.3.0.bin
SPDX:lle käytä NTIA Conformance Checkerin komentoa sbomcheck -s spdx3 -c bsi supplier-sbom.json. Lue
vaatimustenmukaisuusraportti ja hylkää tiedosto niiden tarkistusten perusteella, jotka vaatimuksesi tekee pakollisiksi; palauta se toimittajalle
yllä olevien palauterivien kanssa.
Näin kirjaat sen toimittajavaatimuksiin
Tarkistuslista, jota toimittaja ei ole koskaan nähnyt, ei ole vaatimus. Kirjaa se sopimuksen liitteeseen:
- Viitekehys ja versio: esimerkiksi "BSI TR-03183-2 v2.1.0" tai "CISA 2026 Minimum Elements". Nimeä yksi; älä kirjoita "alan standardi".
- Formaatti ja spesifikaation vähimmäisversio: esimerkiksi CycloneDX 1.6 tai uudempi tai SPDX 3.0.1 tai uudempi, JSON.
- Kentät, jotka lisäät niiden päälle, kuten SHA-512-tiivisteet tai package URL:t jokaiselle paketille.
- Toimitus: yksi SBOM jokaisesta toimitetusta ohjelmistoversiosta ennen ohjelmistoa tai sen mukana.
- Validointi, jonka toimittaja tekee ennen lähettämistä, nimettynä työkalun ja profiilin mukaan.
- Palautesilmukka: kuka vastaanottaa palautteen ja kuinka nopeasti korjattu SBOM on toimitettava.
Saman sopimuksen toimittajan puoli on SBOM-oppaassa toimittajille. Jos olet ohjelmistotoimittaja ja vastaat yksittäiseen pyyntöön, katso asiakkaiden SBOM-pyynnöt.
Palautepohja
Aihe: SBOM osanumerolle [osanumero], ohjelmistoversio [versio]: korjauksia tarvitaan
Tarkistimme [päivämäärä] lähettämäsi SBOM:n toimittajavaatimuksemme [viite] mukaista viitekehystä [viitekehys ja versio] vasten. Se läpäisee skeemavalidoinnin, mutta nämä tarkistukset epäonnistuvat: [tarkistusten numerot ja palauterivit]. Lähetä korjattu SBOM uudella SBOM-versiolla ja aikaleimalla viimeistään [päivämäärä]. Siihen asti seuraamme tätä ohjelmistoa oman binäärianalyysimme perusteella. Kysymykset: [yhteyshenkilö].
Hylätyn SBOM:n korjaaminen (toimittajille)
- Käsin kirjoitetut tiedostot. Käytä generaattoria tai SBOM-kirjastoa, älä koskaan tekstieditoria.
- Puuttuvat package URL:t. Generoi ne paketinhallinnasta tai buildista, ei käsin. Käsin kirjoitettu purl on arvattu purl.
- Puuttuvat lisenssit. Ota ilmoitettu lisenssi paketin metatiedoista SPDX-tunnisteena.
- Ei tiivisteitä. Laske ne niistä tiedostoista, jotka oikeasti toimitat, buildin lopussa.
- Väärä julkaisu. Generoi SBOM julkaisubuildissa ja nimeä se version mukaan.
- Vain ylin taso. Käytä menetelmää, joka ratkaisee transitiiviset riippuvuudet.
Luotettavin tapa korjata kattavuus ja tunnisteet kerralla on generoida SBOM siitä buildista, joka tuotti toimitetun ohjelmiston. Katso buildin aikana tallennetut SBOM:t ja SBOM:n parhaat käytännöt.
Mistä hyvät SBOM:t tulevat ja mihin CRACI sopii
Toimittajille, jotka buildaavat GitHub Actionsilla, CRACI korvaa GitHubin ylläpitämät runnerit ja tallentaa SBOM:n buildin aikana, joten se listaa sen, mitä build oikeasti haki.
- Jokainen paketti package URL:n kera ja jokainen komponentti ilmoitetun lisenssinsä kera.
- Transitiiviset riippuvuudet jokaisella syvyydellä, jonka build saavutti.
- Kattavuustila jokaiselle jobille, joka vastaa tunnettujen tuntemattomien kysymykseen buildikohtaisesti: Complete, Complete with connections, Incomplete, Unavailable tai Not recorded.
- Vienti CycloneDX- tai SPDX-muodossa; SBOM-API palauttaa CycloneDX 1.7 JSONia.
Koko kehitysorganisaation osalta katso SBOM-generoinnin standardointi, ja sulautetun Linuxin osalta miksi skannerit eivät näe, mitä Yocto-buildeissa on.
OEM-valmistajat voivat lisätä kolmansien osapuolten SBOM:eja CRACI:in, jolloin ostettuja komponentteja seurataan uusien haavoittuvuuksien varalta omien buildiesi rinnalla. Vertailu on sivulla SBOM-hallintatyökalut.
Milloin CRACI ei ole oikea ratkaisu
- Vastaanottamiesi SBOM:ien validointi ja pisteytys. CRACI ei tarjoa SBOM-validaattoria eikä laatupisteitä. Käytä yllä mainittuja työkaluja.
- Toimittajat ilman CI:tä tai ne, joiden koodi generoidaan mallipohjaisilla työkaluilla ilman pakettien hakua. Buildin tallentaja tuo vähän lisää; generaattorikirjastolla tehty validoitu SBOM on realistinen ratkaisu.
- Laiteohjelmisto, jonka saat vain binäärinä. Siihen vastaa binäärianalyysi.
- Allekirjoitetut SBOM:t, CISA 2026:n laatijan allekirjoitus. CRACI ei allekirjoita SBOM:eja.
SBOM:n laatu ja validointi: usein kysytyt kysymykset
Miten tarkistan toimittajan lähettämän SBOM:n laadun?
Testaa kolme tasoa. Validoi tiedosto skeemaansa vasten, tarkista kentät nimettyä viitekehystä, kuten BSI TR-03183-2:ta tai CISA 2026 Minimum Elements -elementtejä, vasten ja koettele sitten kattavuutta: vertaa sitä saamasi ohjelmiston binäärianalyysiin ja tarkista komponentit, jotka tuotetyypissä on oltava.
Mitä kenttiä SBOM:ssa on oltava?
Se riippuu nimeämästäsi viitekehyksestä. CISA:n 2026 Minimum Elements listaa 17 kenttää, muun muassa laatijan, aikaleiman, työkalun, generointikontekstin sekä komponenttikohtaisesti nimen, version, tuottajan, tunnisteet, tiivisteen ja lisenssin. BSI TR-03183-2 lisää SHA-512-tiivisteen, tiedostonimen ja tiedoston ominaisuudet ja tekee niistä pakollisia.
Mikä muuttui NTIA:n minimielementtien ja CISA:n 2026 Minimum Elements -elementtien välillä?
CISA:n vuoden 2026 lista korvaa NTIA:n seitsemän kenttää 17 kentällä. Uusia ovat laatijan allekirjoitus, dataformaatin nimi ja versio, generointikonteksti, työkalun nimi ja versio, SBOM:n versio, komponentin tiivisteen arvo ja algoritmi sekä komponentin lisenssi. Supplier name muuttui muotoon Component Producer, ja depth muuttui muotoon coverage.
Mitä BSI TR-03183-2 edellyttää SBOM:lta?
Versio 2.1.0 edellyttää CycloneDX 1.6+:aa tai SPDX 3.0.1+:aa JSON- tai XML-muodossa, yhtä SBOM:ia ohjelmistoversiota kohden, rekursiivisia riippuvuuksia kattavuus ilmoitettuna sekä komponenttikohtaisesti laatijaa, nimeä, versiota, tiedostonimeä, lisenssejä, SHA-512-tiivistettä ja tiedoston ominaisuuksia sekä package URL:ia tai CPE:tä, jos sellainen on.
Tarvitseeko SBOM tiivisteitä? Millä algoritmilla?
NTIA suositteli niitä; CISA 2026 tekee tiivisteestä vähimmäiselementin, ja algoritmin on oltava jonkin viranomaisen, kuten NISTin, hyväksymä; BSI TR-03183-2 edellyttää jokaisen käyttöön otettavan komponentin SHA-512-tiivistettä. Pyydä SHA-512 ja vertaa sitä saamaasi tiedostoon.
Tarvitsenko sekä CPE:n että PURL:n?
Ei aina. Pyydä package URL aina, kun ekosysteemissä on sellainen, ja CPE, kun ei ole, kuten monissa kaupallisissa tai sulautettujen järjestelmien komponenteissa. CISA 2026 pyytää vähintään yhden tunnisteen ja kaikki tunnetut; BSI edellyttää kumpaakin, jos sellainen on.
Miten validoin CycloneDX- tai SPDX-tiedoston?
CycloneDX:lle cyclonedx-cli validate ja --fail-on-errors tai sbom-utility. SPDX:lle SPDX tools-javan Verify-komento tai pyspdxtools SPDX 2.2:lle ja 2.3:lle. Aja sitten viitekehysprofiili sbomqs:llä tai SPDX NTIA Conformance Checkerilla.
Mikä on hyvä SBOM:n laatupistemäärä?
Standardoitua kynnysarvoa ei ole, eikä vertailuarvoa, jota lainaisimme. Pistemäärä mittaa mukana olevia kenttiä, ei kattavuutta: tiedosto voi saada 9 pistettä 10:stä ja jättää puolet tuotteesta pois. Määritä sen sijaan toimittajavaatimuksessasi hyväksymiskriteerit tarkistuskohtaisesti ja seuraa pistemäärää trendinä.
Toimitatko SBOM:eja OEM-valmistajille? Generoi ne buildista
Varaa demo ja aja yksi GitHub Actions -buildisi CRACI:lla. Saat SBOM:n siitä, mitä build haki, package URL:n jokaiselle paketille ja kattavuustilan.
Varaa demo