CycloneDX vai SPDX: kā izvēlēties SBOM formātu
Formāta nosaukums ir tikai sākums. Vienojies par konkrētu versiju, serializāciju un datiem, kuri jāsaglabā, pārvietojot dokumentu starp rīkiem.
Sāc ar dokumenta saņēmēju
Pirms izvēlies ģeneratoru, noskaidro, kas SBOM izmantos. Vai tas nonāks klienta ievainojamību pārvaldības sistēmā, iekšējā repozitorijā vai piegādātāju novērtēšanas procesā? Saņēmēja prasībām jāietver formāts, atbalstītā versija un eksporta veids. Frāze “atsūtiet SBOM” viena pati nenodrošina savietojamību. Palūdz arī nelielu pieņemama faila piemēru, ja tāds ir pieejams.
Pārbaudi visu ceļu ar vienu zināmu laidienu. Ģenerē dokumentu, importē to paredzētajā sistēmā un salīdzini dažus konkrētus ierakstus. Skaties ne tikai to, vai imports pabeidzas, bet arī to, vai saglabājas pakotņu versijas, licences un atkarību attiecības. Šāda pārbaude ir vērtīgāka par formātu izvēli pēc popularitātes.
CycloneDX dokumenta orientieri
CycloneDX specifikācijas pārskatā pašreizējā versija ir 1.7. JSON dokumentu identificē lauks bomFormat ar vērtību CycloneDX un lauks specVersion. Modelis var aprakstīt komponentes, pakalpojumus, atkarības un citus piegādes ķēdes datus. Tāpēc viss CycloneDX dokuments nav obligāti tikai vienkāršs bibliotēku saraksts.
Šajā vietnē apskatām components ierakstus, ieskaitot tajos ligzdotās komponentes. Produkta metadatos norādīto saknes komponenti nepieskaitām inventāra skaitam. Lauks bom-ref kalpo ieraksta atsaucēm dokumentā. Tas jāatšķir no purl, kas palīdz identificēt pakotni ārpus viena dokumenta. Gaidāmo lauku nozīmi vienmēr pārbaudi izvēlētās versijas specifikācijā.
SPDX versijai ir nozīme
SPDX 2.3 pakotņu modelī dokumenta elementus sasaista ar SPDXID. Tas ļauj nošķirt dažādas viena nosaukuma pakotnes un norādīt attiecības. Pakotnes versija ir noderīga identificēšanai, taču 2.3 specifikācijā tā ir izvēles lauks. Tās neesamība mūsu rīkā ir darba novērojums, nevis automātisks pierādījums nederīgam dokumentam.
SPDX 3.0.1 specifikācija izmanto jaunu modeli. Nevajag pieņemt, ka 2.3 JSON lasītājs spēs pareizi izlasīt arī 3. versijas JSON-LD. SBOM.lv pieņem SPDX JSON 2.2 un 2.3; jaunāka formāta gadījumā paziņo par atbalsta robežu. Oriģinālu saglabā un izvēlies tam atbilstošu rīku, nevis pārdēvē versijas lauku.
Pārvēršana nav vienkārša pārsaukšana
Pārvēršot dokumentu, var mainīties tas, kā attēlotas licences, attiecības un papildu metadati. Izveido nelielu pārbaudes sarakstu ar datiem, kurus nedrīkst zaudēt: produkta identitāti, komponenšu atsaucēm, versijām un vajadzīgajām licenču vērtībām. Pārvērsto dokumentu salīdzini ar oriģinālu un saglabā izmantotā pārveidotāja versiju.
- Vienojies par konkrētu formātu un versiju, ne tikai faila paplašinājumu.
- Pārbaudi, vai saņēmējs apstrādā tiešās un tranzitīvās atkarību attiecības.
- Pārliecinies, ka pielāgotie lauki un ārējās atsauces netiek nemanāmi atmesti.
- Shēmas validāciju veic ar atbilstošu validatoru; metadatu apskate to neaizstāj.
Praktiska izvēle komandai
Izvēlies vienu pamata formātu iekšējam procesam, dokumentē eksporta iestatījumus un pārveido tikai tad, kad to prasa saņēmējs. Tas samazina variantu skaitu, kurus komandai jāuztur. Saglabā oriģinālu kopā ar laidienu, bet atsevišķi atzīmē klientam izsniegto dokumenta versiju un tās sagatavošanas datumu.
Ja abi formāti tavā vidē strādā vienlīdz labi, izšķiroša var būt rīka spēja uzticami identificēt gala artefaktu. Nākamais solis ir atkārtojama SBOM ģenerēšana, nevis vairāku eksportu manuāla pārrakstīšana. Lokālais pārskats var palīdzēt pamanīt acīmredzamus metadatu jautājumus pirms nodošanas.
Avoti un atsauces
- Specification Overview Aktuālā versija, serializācijas un komponenšu, metadatu un atkarību modelis.
- SPDX 2.3 – Package Information SPDXID un pakotnes versijas lauka nozīme un obligātums.
- SPDX Specification 3.0.1 Atsevišķās 3. versijas specifikācija un modelis.