encyklopedia.space

CycloneDX

CycloneDX jest otwartym standardem opisującym Software Bill of Materials (SBOM) – listę komponentów, zależności i metadanych używanych w aplikacjach oraz ich artefaktach. Standard został opracowany w ramach inicjatywy OWASP i po raz pierwszy opublikowany w 2020 roku. Jego głównym celem jest udostępnienie niezależnego i interoperacyjnego formatu, który umożliwia wymianę informacji o łańcuchu dostaw oprogramowania oraz wsparcie procesów zarządzania ryzykiem i bezpieczeństwa łańcucha dostaw.

Historia

W odpowiedzi na rosnące zapotrzebowanie na przejrzyste i standaryzowane dane o komponentach oprogramowania, grupa OWASP stworzyła projekt CycloneDX. Pierwsza wersja specyfikacji (1.0) została wydana w 2020 roku, a od tego czasu standard jest stale rozwijany – najnowsza stabilna wersja to 1.5, opublikowana w 2023 roku. Rozwój projektu jest otwarty i prowadzony przez społeczność, a jego kod źródłowy jest dostępny w repozytorium GitHub (link wewnętrzny do artykułu o platformie GitHub).

Zakres i przeznaczenie

CycloneDX służy do:

  • Tworzenia i udostępniania SBOM w formacie JSON lub XML.
  • Wspierania procesów Software Composition Analysis (SCA) oraz zarządzania podatnościami.
  • Ułatwiania automatycznej integracji z narzędziami CI/CD, systemami zarządzania ryzykiem oraz platformami do monitorowania bezpieczeństwa.
  • Umożliwienia zgodności z wymaganiami prawnymi i regulacyjnymi, takimi jak NIST czy ISO 27001.

Struktura specyfikacji

Specyfikacja CycloneDX definiuje następujące podstawowe sekcje dokumentu:

  • metadata – informacje o projekcie, wersji, autorach oraz zastosowanych standardach.
  • components – lista komponentów (bibliotek, modułów, kontenerów) wraz z ich identyfikatorami, wersjami, licencjami i źródłami.
  • dependencies – zależności pomiędzy komponentami, opisujące drzewo zależności.
  • services – opis usług zewnętrznych i API, które są wykorzystywane przez aplikację.
  • vulnerabilities – opcjonalna sekcja zawierająca znane podatności i ich referencje.

Formaty plików

Dokumenty CycloneDX mogą być zapisywane w dwóch głównych formatach:

  • JSON – bardziej kompaktowy, łatwy do przetwarzania w aplikacjach webowych i skryptach.
  • XML – lepszy do integracji z istniejącymi systemami opartymi na XML oraz do walidacji przy użyciu schematów XSD.

Wsparcie narzędziowe

Wiele popularnych narzędzi i platform wspiera generowanie oraz analizę CycloneDX, m.in.:

  • Maven i Gradle – wtyczki do generowania SBOM dla projektów Java.
  • npm oraz Yarn – integracje umożliwiające eksport zależności Node.js.
  • Docker – narzędzia do tworzenia SBOM z obrazów kontenerowych.
  • Komercyjne platformy SCA, takie jak Snyk, Black Duck czy WhiteSource, które potrafią importować i analizować pliki CycloneDX.

Powiązane standardy

CycloneDX współistnieje i jest kompatybilny z innymi standardami SBOM, w tym:

  • SPDX – rozwijany przez Linux Foundation, koncentrujący się na licencjonowaniu i prawach własności.
  • ISO/IEC 19770‑2 – opisujący metodologię zarządzania zasobami oprogramowania.

Licencja i rozwój

Specyfikacja oraz wszystkie narzędzia referencyjne CycloneDX są udostępniane na licencji Apache License 2.0, co pozwala na szerokie wykorzystanie komercyjne oraz modyfikacje przez społeczność.

Znaczenie dla bezpieczeństwa i zgodności

Dzięki standaryzowanemu opisowi komponentów, CycloneDX umożliwia:

Zobacz także