Komponenšu identifikatori, versijas un licences SBOM
Nosaukums, versija un licence šķiet vienkārši lauki, līdz dažādi rīki par vienu komponenti dod atšķirīgu informāciju. Sāc ar datu izcelsmi.
Nosaukums viens pats nav droša identitāte
Vienā projektā var būt vienāda nosaukuma pakotnes no dažādām ekosistēmām vai vairākas vienas bibliotēkas versijas. Tāpēc saglabā ne tikai cilvēkam saprotamu nosaukumu, bet arī informāciju, kas ļauj atrast konkrēto pakotni un tās izcelsmi. Ja komanda nevar izskaidrot, no kurienes ieraksts radies, atzīmē to kā precizējamu jautājumu.
Package URL jeb purl specifikācija piedāvā strukturētu pakotnes identifikatoru. Tas var ietvert ekosistēmas tipu, nosaukumvietu, nosaukumu, versiju un citus precizējumus. Purl nav tas pats, kas brīvi izvēlēts vietējais ieraksta ID. Pārskatīšanā noskaidro, vai identifikators radīts no uzticamiem pakotnes datiem vai pievienots ar aptuvenu minējumu.
Nošķir dokumenta ID un pakotnes koordinātas
CycloneDX ieraksta bom-ref un SPDX SPDXID palīdz sasaistīt dokumenta elementus. Ja atsauces atkārtojas nepareizi, kļūst neskaidrs, uz kuru ierakstu norāda attiecība. Savukārt pakotnes koordinātas izmanto ārējā kontekstā. Abiem laukiem ir sava loma, un viena vērtība ne vienmēr aizstāj otru.
SBOM.lv skaita trūkstošus un atkārtotus inventāra ierakstu ID, bet neveic pilnu atkarību grafika validāciju. Tas nozīmē, ka nulle šajā skaitītājā neapliecina visu atsauču pareizību. Pārbaudi arī saistību virzienu un ārējo dokumentu pieejamību rīkā, kas atbalsta attiecīgo specifikāciju. Atsevišķi saglabā jautājumus par neidentificētām komponentēm.
Versijas izcelsme ir tikpat svarīga kā vērtība
Ja versija nav norādīta, vispirms meklē iemeslu. Varbūt ģenerators analizēja tikai failus, pakotnei nav ierastas versijas vai informācija pazuda pārvēršanas laikā. Neaizpildi lauku ar jaunāko internetā redzamo versiju tikai tāpēc, lai pazustu novērojums. Jāapraksta konkrētajā artefaktā esošā komponente. Vajadzības gadījumā salīdzini būvēšanas ierakstus un pakotnes metadatus.
Dažādi ģeneratori var atšķirīgi noformēt vienu un to pašu versiju. Pirms salīdzināšanas noskaidro, vai atšķirība ir tikai pierakstā vai arī saturā. Pārskatīšanas piezīmē norādi avotu, izmantoto laidienu un labojuma pamatojumu. Tas ļauj nākamajam pārskatītājam saprast lēmumu, atkārtoti nemeklējot visu informāciju no sākuma.
Licences ieraksts ir sākumpunkts izvērtējumam
SPDX licenču saraksts dod standartizētus īsos identifikatorus un atsauces uz licenču tekstiem. Licenču izteiksmēs AND, OR un WITH nav savstarpēji aizstājami. Pielāgots LicenseRef var norādīt uz atsevišķi aprakstītu licenci. Vienāda krāsa tabulā nevar aizstāt šo nosacījumu izlasīšanu un piemērošanu konkrētam lietojumam.
SPDX NOASSERTION nozīmē, ka attiecīgais secinājums nav sniegts, savukārt NONE norāda atšķirīgu apgalvojumu par licences neesamību attiecīgā lauka izpratnē. Tās nav vienādas vērtības. Šajā pārskatā abas aicina precizēt kontekstu; neviena automātiski nenozīmē pārkāpumu. Rīks nesniedz licences savietojamības vai juridiskas izmantošanas slēdzienu.
Pārvērt novērojumus labojumos
- Pie katra neskaidra ieraksta norādi atbildīgo un datu avotu, kuru viņš pārbaudīs.
- Ja kļūda atkārtojas daudzos ierakstos, labo ģeneratora konfigurāciju vai sākotnējos metadatus.
- Saglabā atšķirību starp piegādātāja deklarēto informāciju un savas komandas secinājumu.
- Pirms nodošanas pārbaudi formātu un pārliecinies, ka precizējumi attiecas uz pareizo produkta laidienu.
Izmanto metadatu pārskatu, lai sakārtotu sarunu par trūkstošajiem laukiem. Pēc labojumiem ģenerē jaunu eksportu un salīdzini rezultātu. Ja vēlies saprast, kā šos datus lietot drošības darbā, lasi par ievainojamībām un VEX. Datu kvalitāte palīdz pieņemt lēmumus, bet pati par sevi nav drošības garantija.
Avoti un atsauces
- Package URL specification Pakotņu identifikatoru struktūra un nozīme.
- SPDX License List Standartizētie licenču identifikatori un atsauces uz licenču tekstiem.
- SPDX 2.3 – Package Information Deklarētā un secinātā licence, NOASSERTION un NONE lauku nozīme.
- SPDX 2.3 – Relationships between SPDX Elements Ierakstu savstarpējo attiecību aprakstīšana.