CycloneDX vai SPDX: kā izvēlēties SBOM formātu

Atjaunināts 3 min lasīšanaiSBOM.lv redakcija

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

  1. Specification Overview OWASP CycloneDX Aktuālā versija, serializācijas un komponenšu, metadatu un atkarību modelis.
  2. SPDX 2.3 – Package Information SPDX Project SPDXID un pakotnes versijas lauka nozīme un obligātums.
  3. SPDX Specification 3.0.1 SPDX Project Atsevišķās 3. versijas specifikācija un modelis.