Zoznam softvérových komponentov (Software Bill of Materials) mení zloženie aplikácie na štruktúrovaný a prehľadný záznam. Presne identifikuje jednotlivé komponenty v konkrétnom produkte alebo builde a popisuje ich vzájomné vzťahy. Tím tak dokáže rýchlo zistiť, kde sa daný balík nachádza, bez nutnosti manuálneho prehľadávania repozitárov.
Čo SBOM zaznamenáva
SBOM zvyčajne identifikuje každý komponent pomocou jeho názvu a verzie, ukladá informácie o dodávateľovi alebo pôvode a popisuje vzťahy medzi závislosťami. Tento formát môže obsahovať aj haše, licenčné podmienky a odkazy na externé identifikátory. Keďže dokument reprezentuje presne definovaný softvérový artefakt alebo release, je oveľa presnejší než bežný zoznam knižníc, ktoré tím v projekte používa.
| Pole SBOM | Otázka, ktorú zodpovedá | Využitie pri audite |
|---|---|---|
| Komponent a verzia | Aký presný balík je prítomný? | Priradenie nálezov k nasadenému kódu |
| Dodávateľ alebo pôvod | Odkiaľ komponent pochádza? | Kontrola zdroja a údržby kódu |
| Vzťah závislosti | Ktorý komponent ho priniesol? | Sledovanie nepriameho vystavenia rizikám |
| Haš alebo identifikátor | Ktorý artefakt záznam popisuje? | Porovnanie buildov a inventárov |
| Licencia | Za akých podmienok sa používa? | Označenie chýbajúcich alebo nekompatibilných licencií |
Ako sa tento prehľad vytvára
Záznam môže vzniknúť na základe deklarovaných závislostí, vyriešeného grafu závislostí, procesu zostavenia (build), analýzy artefaktov alebo bežiaceho prostredia. Tieto metódy však môžu priniesť odlišné výsledky. Kým záznam založený na manifeste popisuje plánované vstupy, verzia z buildu zachytáva komponenty reálne prítomné na výstupe.
Analýza zloženia softvéru (Software Composition Analysis) je bežný spôsob, ako odhaliť komponenty a vygenerovať potrebné podkladové dáta. Dôkladný audit si všíma, ako SBOM vznikol, ktorý konkrétny artefakt reprezentuje a či dynamické alebo externe dodávané knižnice nespadajú mimo jeho rozsah.
Základný postup zahŕňa tieto kroky:
- Výber predmetu: Určenie aplikácie, verzie, buildu alebo popisovaného artefaktu.
- Zhromaždenie komponentov: Vyhodnotenie priamych balíkov a každej tranzitívnej závislosti.
- Normalizácia identít: Konzistentné zaznamenanie verzií a identifikátorov.
- Validácia výstupu: Porovnanie prehľadu s manifestmi, lockfile súbormi a artefaktmi.
- Udržiavanie záznamu: Generovanie nového SBOM-u pri každej zmene softvéru.
Prínos pre audit kódu
Pri audite vibe-coded softvéru slúži SBOM ako kľúčový dôkaz o stave kódu tretích strán v aplikácii. Pomáha identifikovať umiestnenie zasiahnutého komponentu, určiť priamy balík, ktorý ho do systému priniesol, a odlíšiť zastaranú knižnicu od tej, ktorá je prítomná v aktuálnom builde.
Samotný dokument nerozhoduje o tom, či je zraniteľnosť reálne dosiahnuteľná alebo či sa má daný balík nahradiť. Taktiež rýchlo zastará, ak sa zmení build bez vytvorenia nového záznamu. Tieto rozhodnutia si stále vyžadujú sledovanie kódu, určenie vlastníctva a dôkazy z testovania. SBOM poskytuje mapu komponentov, vďaka ktorej je táto práca opakovateľná, a podporuje produkčné postupy popísané v článku o zmenách pri nasadení generovaného kódu.