SBOM dla producentów urządzeń i maszyn: przygotowanie do CRA przed grudniem 2027 r.

Eksplozja światła z napisem „Boom! Tak, to ja – SBOM”
  • Gosia Petlińska-Kordel

    Małgorzata Petlińska-Kordel

    Marketing Ringmaster

Z pomocą AI

Ten artykuł powstał częściowo z pomocą sztucznej inteligencji.

W skrócie: SBOM (software bill of materials) to wykaz komponentów oprogramowania, czyli lista bibliotek, modułów i ich wersji, z których zbudowano produkt. Od 11 grudnia 2027 r. Cyber Resilience Act wymaga od producentów produktów z elementami cyfrowymi sporządzenia SBOM w powszechnie używanym formacie odczytywalnym maszynowo, obejmującym co najmniej zależności najwyższego poziomu. Wykaz nie musi być publiczny, ale musi być częścią dokumentacji technicznej. Dla producentów urządzeń to także warunek dotrzymania 24-godzinnego terminu zgłoszenia podatności, który obowiązuje już dziś.

Ten tekst uzupełnia nasz przewodnik o tym, czego NIS2 i CRA wymagają od firm z oprogramowaniem.

Najważniejsze fakty:

  • Wymóg sporządzenia wykazu wynika z części II załącznika I do rozporządzenia o Cyber Resilience Act.
  • Wykaz ma obejmować co najmniej zależności najwyższego poziomu i być w formacie odczytywalnym maszynowo.
  • Najpopularniejsze formaty to SPDX (norma ISO/IEC 5962:2021) i CycloneDX (standard ECMA-424).
  • Organy nadzoru rynku mogą zażądać wykazu; producent nie musi go publikować.
SBOM: jak wykaz komponentów oprogramowania łączy produkt z bazami podatności

SBOM: co to jest i po co producentowi?

Taki wykaz to dla oprogramowania to, czym lista składników jest dla produktu spożywczego. Pokazuje, z jakich gotowych elementów zbudowano oprogramowanie: biblioteki open source, komponenty od dostawców, systemy operacyjne czasu rzeczywistego, sterowniki. Dla każdego elementu podaje nazwę, wersję, dostawcę i zależności.

Producent potrzebuje wykazu komponentów z trzech powodów. Po pierwsze, wymaga go Cyber Resilience Act. Po drugie, bez niego nie da się szybko odpowiedzieć na pytanie, czy nowa podatność w popularnej bibliotece dotyczy produktu, a od 11 września 2026 r. aktywnie wykorzystywaną podatność trzeba zgłosić w 24 godziny; opisujemy to w tekście o tym, jak działa 24-godzinny termin zgłoszenia z CRA. Po trzecie, klienci objęci NIS2 coraz częściej pytają dostawców o taki wykaz w ramach oceny łańcucha dostaw.

Czego Cyber Resilience Act wymaga od SBOM?

Według rozporządzenia (UE) 2024/2847 producent musi identyfikować i dokumentować podatności i komponenty produktu, w tym sporządzić SBOM w powszechnie używanym formacie odczytywalnym maszynowo, obejmujący co najmniej zależności najwyższego poziomu. Wykaz jest częścią dokumentacji technicznej, którą producent przechowuje i udostępnia organom nadzoru rynku na żądanie.

Przepisy nie narzucają formatu, ale w praktyce wybór sprowadza się do SPDX i CycloneDX. Minimalny zestaw danych dobrze opisuje dokument NTIA o minimalnych elementach SBOM: nazwa dostawcy, nazwa komponentu, wersja, unikalny identyfikator, relacje zależności, autor danych i znacznik czasu.

SPDX czy CycloneDX?

SPDX rozwija Linux Foundation; format ma status normy międzynarodowej ISO/IEC 5962:2021 i jest mocny w opisie licencji. CycloneDX powstał w ramach OWASP i jest nastawiony na bezpieczeństwo: dobrze obsługuje informacje o podatnościach i dokumenty VEX, w których producent wyjaśnia, że dana podatność nie dotyczy produktu. Oba formaty spełniają wymóg „powszechnie używanego formatu odczytywalnego maszynowo”. Wybór zwykle zależy od narzędzi, których firma już używa, i od tego, czego oczekują klienci.

Gdzie SBOM sprawia problem producentom urządzeń

W aplikacjach webowych wykaz da się wygenerować z menedżera pakietów w kilka minut. W urządzeniach i maszynach jest trudniej:

  • Firmware w C i C++ często nie ma menedżera pakietów, a biblioteki są skopiowane do repozytorium.
  • Pakiety SDK od producentów układów zawierają komponenty binarne bez pełnego opisu zawartości.
  • Produkt ma wiele wersji w obiegu, a każda potrzebuje własnego wykazu.
  • Część oprogramowania pochodzi od podwykonawców, którzy nie dostarczają wykazu komponentów.

Dlatego wykaz warto generować automatycznie przy każdym budowaniu wersji, a nie ręcznie raz w roku. Agencja CISA zebrała materiały o SBOM, w tym o dokumentach VEX i o udostępnianiu wykazu klientom.

Plan na 13 miesięcy do grudnia 2027 r.

  1. Spisz produkty z elementami cyfrowymi i wersje oprogramowania, które są wspierane.
  2. Wybierz format (SPDX lub CycloneDX) i narzędzia; dostępne są dojrzałe narzędzia open source do generowania i analizy wykazów.
  3. Dodaj generowanie wykazu do procesu budowania, tak żeby każda wersja miała własny wykaz.
  4. Uzupełnij ręcznie komponenty, których narzędzia nie wykrywają: biblioteki skopiowane do kodu i elementy binarne z SDK.
  5. Poproś dostawców i podwykonawców o wykazy komponentów i wpisz ten obowiązek do umów.
  6. Podłącz wykaz do monitorowania podatności i ustal, kto reaguje na alerty.

SBOM i VEX: jak nie utonąć w alertach

Pierwsze połączenie wykazu komponentów z bazą podatności zwykle kończy się zaskoczeniem: setki alertów dla jednego produktu. Większość z nich nie oznacza realnego zagrożenia. Biblioteka może zawierać podatną funkcję, której produkt nie używa, albo podatność dotyczy konfiguracji, której w urządzeniu nie ma.

Do opisywania takich sytuacji służy VEX (Vulnerability Exploitability eXchange), czyli dokument, w którym producent dla każdej znanej podatności podaje status, na przykład „nie dotyczy”, „dotyczy, poprawka w przygotowaniu” albo „naprawiono w wersji X”. VEX oszczędza czas zespołu i klientów, którzy dostają wykaz, bo nie muszą sami analizować każdego alertu. Format CycloneDX obsługuje VEX bezpośrednio, a materiały CISA opisują minimalne wymagania dla takich dokumentów.

Ważne, żeby decyzje „nie dotyczy” miały uzasadnienie zapisane w dokumentacji. Jeśli podatność okaże się jednak wykorzystywana, organ nadzoru rynku zapyta, na jakiej podstawie producent ją wcześniej odrzucił.

Jak udostępniać SBOM klientom i organom nadzoru

Cyber Resilience Act nie wymaga publikowania wykazu komponentów, ale klienci przemysłowi, szczególnie objęci NIS2, coraz częściej pytają o niego przy ocenie dostawców. W praktyce stosuje się trzy modele. Pierwszy: wykaz tylko w dokumentacji technicznej, udostępniany organom nadzoru na żądanie. Drugi: wykaz dla klientów na podstawie umowy o poufności, na przykład w portalu klienta. Trzeci: wykaz publiczny, co ma sens głównie dla oprogramowania open source albo produktów, w których przejrzystość jest argumentem sprzedażowym.

Niezależnie od modelu wykaz powinien być powiązany z konkretną wersją produktu i aktualizowany przy każdym wydaniu. Wykaz sprzed dwóch lat dla urządzenia, które od tego czasu dostało pięć aktualizacji, jest gorszy niż jego brak, bo daje fałszywe poczucie wiedzy o produkcie.

Najczęstsze błędy przy wdrażaniu SBOM

  • Wykaz generowany ręcznie raz w roku zamiast automatycznie przy każdym budowaniu wersji.
  • Pominięcie komponentów binarnych i bibliotek skopiowanych do repozytorium, bo narzędzie ich nie wykryło.
  • Brak właściciela: wykaz powstaje, ale nikt nie reaguje na alerty o nowych podatnościach.
  • Jeden wykaz dla całej rodziny produktów zamiast osobnego dla każdej wersji w obiegu.
  • Brak wymagań wobec podwykonawców, przez co część oprogramowania pozostaje czarną skrzynką.

Każdy z tych błędów da się uniknąć na etapie projektowania procesu. Najwięcej kosztuje naprawianie ich pod presją czasu, na przykład w dniu, w którym trzeba w 24 godziny ustalić, czy nowa podatność dotyczy produktu sprzedanego trzy lata temu.

SBOM w praktyce: przykład sterownika z modułem Wi-Fi

Producent sterowników ogrzewania sprzedaje trzy generacje urządzeń. Najnowsza ma firmware oparty na systemie czasu rzeczywistego, stos sieciowy od producenta układu i kilkanaście bibliotek open source, w tym bibliotekę TLS. Do tego dochodzi aplikacja mobilna i backend w chmurze, z którego urządzenia pobierają aktualizacje.

Pełny obraz wymaga kilku wykazów: dla firmware każdej wspieranej generacji, dla aplikacji mobilnej i dla backendu. Firmware jest najtrudniejszy, bo część bibliotek skopiowano do repozytorium lata temu, a SDK od producenta układu zawiera pliki binarne. Zespół generuje je więc automatycznie w systemie budowania, a brakujące komponenty uzupełnia na podstawie dokumentacji SDK i ręcznego przeglądu katalogów z kodem zewnętrznym.

Efekt widać przy pierwszym poważnym alercie. Gdy w bibliotece TLS pojawia się krytyczna podatność, zespół w kilkanaście minut ustala, że dotyczy ona dwóch z trzech generacji, sprawdza, czy podatna funkcja jest używana, i przygotowuje dokument VEX dla klientów. Bez wykazu ta sama analiza wymagałaby przeszukiwania repozytoriów i dopytywania byłych pracowników, która wersja biblioteki trafiła do której wersji firmware.

SBOM a wymagania klientów objętych NIS2

Producent, który sprzedaje urządzenia firmom energetycznym, wodociągom czy zakładom produkcyjnym, będzie coraz częściej słyszał pytanie o wykaz komponentów od klientów. Firmy objęte NIS2 muszą oceniać bezpieczeństwo swoich dostawców, w tym jakość ich produktów i procedur bezpiecznego wytwarzania. SBOM i dokumenty VEX są prostym sposobem, żeby to wykazać. Producent, który ma je gotowe, skraca proces oceny dostawcy i zyskuje przewagę w przetargach, w których wymagania bezpieczeństwa należą do kryteriów wyboru.

SBOM w procesie budowania: wdrożenie i utrzymanie

Sanddev wdraża automatyczne generowanie wykazu komponentów w procesie budowania, porządkuje zależności w starszym kodzie i łączy wykaz z monitorowaniem podatności. Opisujemy to na stronie o tym, jak wygląda budowa i rozwój oprogramowania na zamówienie.

Najczęściej zadawane pytania

Co to jest SBOM?

SBOM (software bill of materials) to wykaz komponentów oprogramowania: lista bibliotek, modułów i ich wersji, z których zbudowano produkt, wraz z dostawcami i zależnościami. Pozwala szybko ustalić, czy nowa podatność dotyczy produktu.

Czy Cyber Resilience Act wymaga SBOM?

Tak. Od 11 grudnia 2027 r. Cyber Resilience Act wymaga od producentów produktów z elementami cyfrowymi sporządzenia SBOM w formacie odczytywalnym maszynowo, obejmującego co najmniej zależności najwyższego poziomu, jako części dokumentacji technicznej.

Czy SBOM trzeba publikować?

Nie. Cyber Resilience Act nie wymaga publikowania wykazu. Producent przechowuje go w dokumentacji technicznej i udostępnia organom nadzoru rynku na żądanie; może też zdecydować się udostępnić go klientom.

Jaki format SBOM wybrać: SPDX czy CycloneDX?

Oba formaty spełniają wymagania CRA. SPDX jest normą ISO/IEC 5962:2021 i dobrze opisuje licencje, a CycloneDX (ECMA-424) jest nastawiony na bezpieczeństwo i obsługuje dokumenty VEX. Wybór zależy od narzędzi i oczekiwań klientów.

Czy SBOM musi obejmować wszystkie zależności?

CRA wymaga co najmniej zależności najwyższego poziomu. W praktyce pełniejszy wykaz, obejmujący także zależności pośrednie, lepiej sprawdza się przy ocenie, czy nowa podatność dotyczy produktu.