SBOM
CycloneDX czy SPDX
CycloneDX i SPDX to dwa formaty SBOM obsługiwane przez niemal każde narzędzie. Oba opisują komponenty oprogramowania i relacje między nimi. Różnią się pochodzeniem, tym, co jeszcze zawierają, oraz organizacją normalizacyjną, która za nimi stoi.
Zaktualizowano
Krótka odpowiedź
Należy użyć formatu, o który proszą Państwa klienci, regulatorzy lub narzędzia. Jeśli nikt nie prosi, CycloneDX jest częstszym wyborem w pracy nad bezpieczeństwem, ponieważ natywnie zawiera VEX, a SPDX częstszym wyborem tam, gdzie na pierwszym planie jest zgodność licencyjna. Większość generatorów, w tym CRACI, potrafi wygenerować oba.
Porównanie
| Funkcja | CycloneDX | SPDX |
|---|---|---|
| Kto utrzymuje | OWASP Foundation i Ecma International | Linux Foundation |
| Standard | ECMA-424 | ISO/IEC 5962:2021 |
| Aktualna wersja | 1.7, październik 2025 | 3.0, kwiecień 2024 |
| Punkt wyjścia | Bezpieczeństwo i ryzyko w łańcuchu dostaw | Zgodność licencyjna |
| Rodzaje zestawień | SBOM, SaaSBOM, HBOM i inne | Profile dla bezpieczeństwa, buildu, zbiorów danych i AI |
| Dane o podatnościach | Wbudowany VEX | Profil bezpieczeństwa w wersji 3.0 |
| Kodowania | JSON, XML, Protocol Buffers | Kilka, w tym JSON |
CycloneDX
CycloneDX jest rozwijany przez OWASP Foundation i znormalizowany przez Ecma International jako ECMA-424. Wersja 1.7 ukazała się w październiku 2025. Format wyszedł od bezpieczeństwa i ryzyka w łańcuchu dostaw i obejmuje nie tylko oprogramowanie: SBOM-y, SaaSBOM-y dla usług i HBOM-y dla sprzętu. Obsługuje VEX, więc ten sam format może określać, czy podatność dotyczy produktu. Jest serializowany jako JSON, XML lub Protocol Buffers.
SPDX
SPDX to projekt open source prowadzony przez Linux Foundation i uznany za międzynarodowy standard ISO/IEC 5962:2021. Wyszedł od zgodności licencyjnej, a jego identyfikatory licencji są używane daleko poza SBOM-ami. SPDX 3.0, wydany w kwietniu 2024, dodał profile dla bezpieczeństwa, buildu, zbiorów danych i AI.
Do obejrzenia: podstawy SBOM
Z naszego wystąpienia na KCD Helsinki: co rejestruje SBOM, czym w praktyce różnią się SPDX i CycloneDX oraz co dodaje OpenVEX.
SBOM basics: SPDX, CycloneDX and OpenVEX
Petteri Pulkkinen i Erika Marttinen na Kubernetes Community Days Helsinki 2026, od 16:50 do 22:05 nagrania SBOMbastic: Getting Ready for Upcoming EU Cybersecurity Regulation in Software Supply Chains.
Co akceptują regulatorzy
Unijny Cyber Resilience Act wymaga dla SBOM „powszechnie stosowanego formatu czytelnego maszynowo” i nie wskazuje żadnego konkretnego. Niemiecka wytyczna BSI TR-03183-2, wersja 2.1.0, jest bardziej szczegółowa: CycloneDX 1.6 lub nowszy albo SPDX 3.0.1 lub nowszy, w JSON lub XML. Zob. wymagania CRA dotyczące SBOM.
Format ma mniejsze znaczenie niż zawartość
Oba formaty mogą zawierać niekompletny SBOM. O przydatności SBOM decyduje to, czy wymienia wszystko, co trafiło do produktu, łącznie z zależnościami przechodnimi. CRACI rejestruje SBOM podczas działania Państwa buildu GitHub Actions, określa jego kompletność dla każdego zadania i każdego cache i eksportuje go w formacie CycloneDX lub SPDX. Zob. generowanie SBOM w czasie buildu.
CycloneDX czy SPDX: najczęściej zadawane pytania
Co jest lepsze: CycloneDX czy SPDX?
Żaden nie jest lepszy w każdym przypadku. CycloneDX wyrósł z zastosowań bezpieczeństwa i natywnie zawiera VEX; SPDX wyrósł ze zgodności licencyjnej i jest standardem ISO. Większość narzędzi potrafi wygenerować oba. Należy wybrać ten, o który proszą Państwa klienci, regulatorzy lub narzędzia.
Jakiego formatu SBOM wymaga unijny Cyber Resilience Act?
CRA wymaga powszechnie stosowanego formatu czytelnego maszynowo i nie wskazuje żadnego konkretnego. Niemiecka wytyczna BSI TR-03183-2 akceptuje CycloneDX 1.6 lub nowszy oraz SPDX 3.0.1 lub nowszy, w JSON lub XML.
Czy można konwertować między CycloneDX a SPDX?
Istnieją narzędzia do konwersji w obie strony, ale formaty nie odpowiadają sobie jeden do jednego, więc przy konwersji można utracić szczegóły. Jeśli to możliwe, należy od razu wygenerować potrzebny format.
Czy CRACI eksportuje CycloneDX czy SPDX?
Oba. CRACI rejestruje SBOM podczas działania Państwa buildu GitHub Actions i eksportuje go w formacie CycloneDX lub SPDX, łącznie z zależnościami przechodnimi i deklarowaną licencją każdego komponentu.
Oba formaty z jednego buildu
Proszę uruchomić jedno zadanie GitHub Actions na CRACI i wyeksportować zarejestrowany SBOM w formacie CycloneDX lub SPDX.
Umów demo