Příručka k SBOM (Software Bill of Materials)
Dokumenty typu SBOM (Software Bill of Materials) obsahují soupis použitých komponent softwarového produktu - včetně verzí, licencí a vzájemných závislostí komponent. Aplikace SEAL umožňuje pomocí těchto dokumentů sledovat zranitelnosti ve vlastních aplikacích i v aplikacích třetích stran.
Podporovány jsou SBOM dokumenty ve formátu JSON a XML podle specifikace CycloneDX 1.5 (https://cyclonedx.org/).
Jako zdroje informací o zranitelnostech jsou využívány agregátor veřejně dostupných informací o zranitelnostech OSV (https://osv.dev/) a databáze NIST NVD (https://nvd.nist.gov/).
Základní jednotkou organizace dat v SBOM modulu je SBOM projekt který obsahuje jednu nebo více Verzí projektu. Import SBOM dokumentu se provádí pro konkrétní Verzi projektu.
Obsah:
Návod pro založení projektu a analýzu SBOM dokumentu
Založení projektu
Založit projekt je možné pomocí následující volby v nabídce aplikace:
SBOM → SBOM projects → Add
Oprávnění: Nový SBOM projekt může založit uživatel s právem Manage organization SBOM projects.
Založení verze projektu
Založit verzi projektu je možné z detailu SBOM projektu pomocí volby Add v sekci Project versions:
Volba Suppress in reports způsobí vyřazení verze projektu z e-mailových hlášení (např. u zkušebních nebo zastaralých verzí).
Oprávnění: Novou Verzi projektu může založit uživatel s právem Manage organization SBOM projects nebo právem Manage SBOM project na konkrétním projektu.
Import SBOM dokumentu
Dokument je možné importovat z detailu Verze projektu:
Po importu SBOM dokumentu dochází automaticky k vyhodnocení zranitelnosti obsažených komponent. Po dokončení analýzy je v horní části stránky zobrazen souhrn zranitelností komponent:
Pomocí tlačítka Evaluate components je možné spustit okamžitou kontrolu zranitelnosti komponent. Automatická kontrola zranitelnosti komponent probíhá jednou za hodinu.
Volba Adopt analysis umožňuje převzít analýzu z jiné verze projektu (běžně z předchozí).
Oprávnění: SBOM dokument může importovat uživatel s právem Manage organization SBOM projects nebo právem Manage SBOM project na konkrétním projektu.
Analýza zranitelných komponent
V detailu Verze projektu je v sekci Vulnerable components zobrazen seznam zranitelných SBOM komponent:
U každé zranitelné komponenty je nutné provést analýzu dopadu na konkrétní verzi projektu:
Pole pro analýzu jsou založena na CISA dokumentu Minimum Requirements for Vulnerability
Exploitability eXchange (viz. https://www.cisa.gov/sites/default/files/2023-04/minimum-requirements-for-vex-508c.pdf).
Stav analýzy je zobrazen u každé komponenty a u každé Verze projektu pomocí kruhového indikátoru:
Pokud zranitelnost ovlivňuje mnoho verzí projektů příp. pokud se zranitelnost týká více komponent a závěr analýzy se neliší, je možné analýzu aplikovat na více komponent resp. více verzí projektu najednou:
Oprávnění: Analýzu SBOM komponent může provádět uživatel s právem Manage organization SBOM projects nebo právem Analyze SBOM project na konkrétním projektu.
Založení SBOM hlášení (reportu)
Založit hlášení je možné pomocí následující volby v nabídce aplikace:
SBOM → Report definitions → Add
V poli SBOM projects se vybírají SBOM projekty které se mají sledovat. V polích Days, Hours a Time zone je volena četnost a čas odesílání hlášení (na obrázku je vidět každodenní hlášení v 8:00 v časové zóně Europe/Prague).
Pomocí volby Generate empty report je možné vynutit odeslání prázdného hlášení (pokud se v daném časovém období neobjevila žádná nová zranitelnost).
Hlášení upozorňuje na všechny neanalyzované komponenty vybraných projektů, tj. buď na nově objevené zranitelnosti nebo existující zranitelnosti u kterých došlo ke změně hodnocení.
Oprávnění: Nové SBOM hlášení (report) může založit uživatel s právem Manage organization SBOM projects.
Oprávnění a role
Pro oblast SBOM projektů existují následující oprávnění:
Manage organization SBOM projects
Umožňuje uživateli spravovat všechny SBOM projekty organizace a definovat hlášení.
Read SBOM project on <SBOM project>
Umožňuje uživatel číst informace konkrétního SBOM projektu.
Analyze SBOM project on <SBOM project>
Umoňuje uživateli upravovat analýzu zranitelných komponent konkrétního SBOM projektu.
Manage SBOM project on <SBOM project>
Umožňuje uživateli spravovat konkrétní SBOM projekt včetně jeho verzí a provádět Import SBOM dokumentu. Toto právo je potřebné pro automatický upload pomocí API.
Oprávnění je potřeba přiřadit konkrétní roli a tuto roli potom přiřadit jednomu nebo více uživatelům.
Založit roli je možné pomocí následující volby v nabídce aplikace:
Users and roles → User roles → Add
V detailu role je pak možné v sekci SBOM projects přiřazovat roli konkrétní práva. Např. pro roli SBOM manager - SEAL by vypadalo nastavení práv takto:
Uživatel s touto rolí by mohl spravovat Verze projektu SEAL a upravovat analýzu zranitelných komponent. Jednu nebo více rolí je možné uživateli přiřadit z detailu uživatele akcí Edit:
Role s právem Analyze SBOM project musí zároveň obsahovat oprávnění Read SBOM project a role s právem Manage SBOM project musí zároveň obsahovat oprávnění Read SBOM project a volitelně Analyze SBOM project.
Oprávnění: Spravovat role a uživatele může uživatel s právem Manage users. Toto právo je součástí standardní role User manager.
Zveřejnění SBOM dokumentů
Pro veřejný přístup k SBOM dokumentům je možné vytvořit vyhrazeného uživatele typu public access account a přiřadit mu roli určující ke kterým SBOM projektům a jejich verzím bude mít přístup.
Podrobný postup je následující:
Vytvoření nové role
Založíme novou roli pomocí následující volby v nabídce aplikace:
Users and roles → User roles → Add
a přidáme k roli právo čtení SBOM projektu. Např. následující nastavení povoluje čtení SBOM projektu SEAL a jeho verzí označených jako stable (takto označené mohou být ruční úpravou vlastností verze projektu anebo z externího API):
Založení nového uživatele
Založíme nového uživatele pomocí následující volby v nabídce aplikace:
Users and roles → Users → Add
a přiřadíme mu výše vytvořenou roli a označíme uživatele jako public access account:
Po vytvoření uživatele je zobrazen jeho detail včetně vyhrazeného URL pomocí kterého je možné veřejně prohlížet SBOM dokumenty:
Externí API pro aplikace třetích stran
Pro přístup k aplikaci SEAL pomocí API je nejprve nutné vytvořit API token a ten svázat s již existujícím uživatelem.
Založit API token je možné pomocí následující volby v nabídce aplikace:
Users and roles → API tokens → Add
API v současné době umožňuje nahrávání SBOM dokumentů a správu štítků na verzích SBOM projektů, dokumentace k API je dostupná na adrese https://seal.sonpo.cz/api/v1/user/cs/.
Pro nahrávání SBOM dokumentů a správu štítků musí mít uživatel svázaný s API tokenem právo Manage SBOM project on <SBOM project> na daném projektu.