Blog 24/7

SBOM (wykaz komponentów oprogramowania)

TAB. 1Hasłobez tłumaczenia
Po angielskusoftware bill of materials (SBOM)
Którą formą pisaćbez tłumaczenia Skrót, nazwa własna albo nazwa standardu — nie tłumaczymy w ogóle.
Inne formywykaz komponentów oprogramowania · spis komponentów oprogramowania · zestawienie podstawowych materiałów do produkcji oprogramowania
KategoriaChmura, kontenery i łańcuch dostaw

SBOM (Software Bill of Materials) to maszynowo czytelny wykaz komponentów, bibliotek i zależności, z których składa się oprogramowanie, wraz z ich wersjami. CISA opisuje SBOM jako zagnieżdżony spis, listę składników tworzących komponenty oprogramowania [1]. NTIA definiuje go jako formalny zapis szczegółów i relacji w łańcuchu dostaw komponentów użytych do zbudowania oprogramowania [2]. Dzięki takiemu wykazowi można szybko sprawdzić, czy produkt zawiera element z nowo ogłoszoną podatnością.

Jak działa

SBOM powstaje zwykle automatycznie podczas budowania oprogramowania. Narzędzie odczytuje pliki zależności, na przykład composer.lock czy package-lock.json, i zapisuje listę komponentów w standardowym formacie. Wykaz trafia do dokumentacji produktu albo do odbiorcy. Gdy pojawia się nowy wpis CVE, odbiorca porównuje go z wykazem, zamiast przeszukiwać kod.

Porównanie z bazą podatności, na przykład OSV, daje listę trafień. Nie każde trafienie oznacza realne zagrożenie: podatna funkcja może nie być używana. Do przekazania tej informacji służy VEX, czyli według CISA poświadczenie w formie komunikatu bezpieczeństwa, które mówi, czy produkt jest dotknięty znaną podatnością [1]. Cały obieg pokazuje schemat poniżej.

RYS. 1Obieg SBOM w zarządzaniu podatnościami

Składniki

Raport NTIA z 12 lipca 2021 roku, przygotowany na polecenie amerykańskiego rozporządzenia wykonawczego 14028, określa minimalne elementy SBOM [2]. Dane o każdym komponencie zestawia tabela.

PoleZnaczenie
dostawca [2]kto wytworzył komponent
nazwa komponentu [2]jak komponent się nazywa
wersja [2]którą wersję użyto
inne unikalne identyfikatory [2]np. identyfikator pakietu
relacja zależności [2]co zależy od czego
autor danych SBOM [2]kto sporządził wykaz
znacznik czasu [2]kiedy wykaz powstał

CISA opublikowała w 2025 roku projekt zaktualizowanych minimalnych elementów SBOM do konsultacji [1].

Formaty

W praktyce używa się dwóch otwartych standardów.

  • CycloneDX rozwijają OWASP Foundation i Ecma International; specyfikacja została znormalizowana jako ECMA-424 [5]. Poza SBOM opisuje też wymianę informacji o podatnościach (VEX) i dostępna jest w JSON, XML i Protocol Buffers [5].
  • SPDX to otwarty standard przekazywania informacji o składzie oprogramowania, w tym o pochodzeniu, licencjach i bezpieczeństwie; jest uznany jako norma ISO/IEC 5962:2021 i rozwijany jako projekt Linux Foundation [6].

Znaczenie

SBOM skraca czas od ogłoszenia podatności do odpowiedzi na pytanie, czy dotyczy ona danego produktu. Jest narzędziem zarządzania podatnościami i zarządzania ryzykiem dostawców (third-party risk management), a także podstawą obrony przed atakiem na łańcuch dostaw (supply chain attack). Sekurak, omawiając zgodność z NIS2, wymienia prowadzenie wykazu komponentów obok oceny kondycji projektów, zamrażania wersji, weryfikacji sum kontrolnych i szybkiej reakcji na podatności [8].

W Unii Europejskiej SBOM staje się obowiązkiem prawnym. Akt o cyberodporności (Cyber Resilience Act) w załączniku I wymaga od producentów identyfikowania i dokumentowania podatności i komponentów produktu, w tym sporządzenia zestawienia podstawowych materiałów do produkcji oprogramowania w powszechnie stosowanym formacie nadającym się do odczytu maszynowego, obejmującego co najmniej zależności najwyższego poziomu [3]. Organy nadzoru rynku mogą zwrócić się do producentów o przedłożenie takich zestawień [3]. Rozporządzenie weszło w życie 10 grudnia 2024 roku, obowiązki zgłaszania stosuje się od 11 września 2026 roku, a główne przepisy od 11 grudnia 2027 roku [4].

Ograniczenia

SBOM jest tylko wykazem. Nie usuwa podatności, nie ocenia jakości kodu i nie mówi, czy komponent jest nadal utrzymywany. Jego wartość zależy od kompletności: wykaz obejmujący tylko zależności bezpośrednie pominie biblioteki dołączone pośrednio. Wymóg aktu o cyberodporności obejmuje co najmniej zależności najwyższego poziomu [3], więc głębszy wykaz jest decyzją producenta. Wykaz starzeje się też z każdą aktualizacją, dlatego powinien powstawać razem z każdym wydaniem. Wreszcie SBOM odpowiada na pytanie, co jest w produkcie, ale nie na pytanie, czy da się to wykorzystać; do tego służą ocena trafień i dokumenty VEX [1].

W WordPressie

Strona WordPress to zbiór komponentów: rdzeń, wtyczki, motywy i biblioteki dołączone do nich przez autorów. Wytyczne katalogu WordPress.org wymagają, by wtyczki korzystały z bibliotek dostarczanych przez WordPress, takich jak jQuery, SimplePie czy PHPMailer, zamiast dołączać własne kopie [7]. Inne biblioteki, np. instalowane przez Composer, wtyczka może mieć w swoim katalogu i właściciel strony zwykle ich nie widzi.

Taka ukryta biblioteka bywa źródłem podatności we wtyczce, o której właściciel strony dowiaduje się dopiero z komunikatu autora. Kategoria Vulnerable and Outdated Components z listy OWASP opisuje właśnie ten problem. Namiastką SBOM na poziomie witryny jest spis wtyczek i motywów z wersjami, np. z polecenia wp plugin list, porównywany z bazami podatności. Warto przy tym oznaczać porzucone wtyczki, bo dla nich nikt nie wyda poprawki.

Autorzy wtyczek komercyjnych, którzy sprzedają je w UE, powinni sprawdzić, czy ich produkt podlega aktowi o cyberodporności [4].

Dobre praktyki

  • Generować SBOM automatycznie przy każdym wydaniu, a nie ręcznie.
  • Używać formatu CycloneDX albo SPDX [5] [6], żeby wykaz dało się przetwarzać narzędziami.
  • Porównywać wykaz z bazami podatności stale, a nie tylko w chwili wydania; zob. skanowanie podatności.
  • Publikować VEX dla trafień, które nie dotyczą produktu [1].
  • Łączyć SBOM z podpisywaniem kodu (code signing), by odbiorca wiedział, że wykaz i artefakt pochodzą od producenta.
  • Dla obrazów kontenerów stosować skanowanie obrazów kontenerów przed wdrożeniem.
TAB. 2

Przypisy

8
  1. [1] Software Bill of Materials (SBOM) · CISA
  2. [2] The Minimum Elements For a Software Bill of Materials (SBOM) · NTIA
  3. [3] Rozporządzenie (UE) 2024/2847 (akt o cyberodporności) · EUR-Lex
  4. [4] Cyber Resilience Act — summary · Komisja Europejska
  5. [5] CycloneDX Specification Overview · OWASP / Ecma International
  6. [6] SPDX Overview · Linux Foundation
  7. [7] Detailed Plugin Guidelines · WordPress.org
  8. [8] Czy open source wystarczy do zapewnienia zgodności z NIS2/KSC2? · Sekurak
TAB. 3

Hasła w tym artykule

14
TAB. 4

Linkują tutaj

15

Wszystkie kategorie → · Hasło w słowniku →

Blog 24/7
05.11CISA i FBI wzywają do zabezpieczenia sterowników chłodzenia po atakach w Europietherecord.media05.11Midnight Blizzard atakowała iPhone'y i Androidy przez zainfekowane strony w Europie i USAsecurityweek.com05.11APT29 kradła dane z iPhone'ów i Androidów przez przejęte i podrobione stronytherecord.media05.11Grupa APT29 przejęła skrypt Plerdy i atakowała niezałatane iPhone'y i Androidythehackernews.com05.11Microsoft wykrył 7,3 mld wiadomości phishingowych w III kwartale 2026microsoft.com05.11DigiCert ujawnia wyciek danych klientów i skanów dokumentów tożsamościbleepingcomputer.com05.11CWPdoor podmienia serwer cwpsrv w Control Web Panel i otwiera tylne wejście do Linuksableepingcomputer.com05.11Brytyjskie NCSC ostrzega, że narzędzia AI zwiększyły liczbę wykrywanych luk zero-daythehackernews.com05.11Skaner RootEvidence sprawdza starą lukę w Cisco IOS i dodaje nagłówki Opt-Outisc.sans.edu05.11Włamanie do portalu grantowego Norad, zagrożone dane 20 614 użytkownikówhelpnetsecurity.com