SBOM: informacje o komponentach, formatach i utrzymaniu

Sytance · Zaktualizowano

Zestawienie materiałów oprogramowania (SBOM) opisuje komponenty oprogramowania, z których składa się aplikacja lub system, oraz powiązania między nimi. Stanowi punkt wyjścia do sporządzenia wykazu komponentów, przeglądu licencji i badania podatności. Jego wartość zależy od tego, jak dokładnie opisuje faktycznie dostarczone oprogramowanie.

Produkt opisany w SBOM

SBOM opisuje konkretną wersję produktu, kompilację lub artefakt, taki jak obraz oprogramowania układowego lub pakiet instalacyjny. Wpisy komponentów identyfikują biblioteki i inne oprogramowanie objęte tym zakresem. Ich wersje, producenci, identyfikatory i relacje pomagają ustalić, co zostało uwzględnione.

W przypadku fikcyjnej bramy przemysłowej produktem docelowym jest wydanie oprogramowania układowego. Jego komponentami są aplikacja do zarządzania i wbudowane biblioteki. Zdalna usługa telemetryczna jest zależnością zewnętrzną; jej opis nie oznacza, że jej pakiety po stronie serwera zawarto w oprogramowaniu układowym.

Publiczny przykład wykorzystuje wymyślone komponenty, aby struktura była czytelna. Nie jest to wykaz komponentów Sytance ani wydanej bramy.

Identyfikatory komponentów

Dwa pakiety o podobnych nazwach mogą należeć do różnych ekosystemów pakietów. Package URL (purl) identyfikuje pakiet za pomocą takich pól jak typ, przestrzeń nazw, nazwa i wersja. Skrót pliku pomaga zidentyfikować dokładny plik, jeśli znany jest algorytm skrótu i plik, dla którego go obliczono.

Identyfikatory należy ustalać na podstawie metadanych pakietu lub informacji od dostawcy. purl utworzony na podstawie przypuszczalnej nazwy producenta może wskazywać niewłaściwy pakiet. Należy zachować pierwotny zapis wersji, ponieważ dalsza kompilacja może uwzględniać własną poprawkę.

Zarówno SPDX, jak i CycloneDX przedstawiają informacje o komponentach oprogramowania i ich relacjach. Dostępne pola i ich dokładne znaczenie zależą od wersji formatu. Należy wybrać wersję obsługiwaną przez narzędzia tworzące i odbierające plik.

Dokładność i zakres wykazu

Plik może być poprawnym dokumentem JSON, a mimo to opisywać niewłaściwe wydanie. Należy porównać SBOM z danymi wejściowymi kompilacji i dostarczonym artefaktem, a następnie zbadać rozbieżności. Lista zależności źródłowych może zawierać narzędzia programistyczne, których nie dostarczono, a pomijać biblioteki skopiowane do obrazu.

  • Produkt docelowy: produkt, wersja i artefakt odpowiadają wydaniu.
  • Identyfikacja: wersje i identyfikatory komponentów można powiązać z dowodami.
  • Relacje: ścieżki zależności są obecne i mają znaczenie.
  • Zakres: braki w danych dostawcy i nieprzeanalizowane części są widoczne.
  • Wymiana: narzędzie odbierające zachowuje pola potrzebne do zamierzonego użycia.

Minimalne elementy SBOM z 2026 r.

Minimalne elementy SBOM z 2026 r., opublikowane wspólnie przez CISA i agencje partnerskie, aktualizują wytyczne NTIA z 2021 r. Obejmują metadane dokumentu, dane komponentów oraz praktyki utrzymywania i udostępniania SBOM. Publikacja zawiera wytyczne i stwierdza, że nie ustanawia nowych wymagań.

W przypadku dostarczanego pliku należy określić uzgodnioną specyfikację, wersję formatu i dodatkowe wymagania klienta. Sam wynik walidacji schematu nie dowodzi kompletności informacji wymaganych przez klienta.

Dopasowanie podatności i wpływ na produkt

Dopasowanie podatności łączy zgłoszony problem z tożsamością lub wersją komponentu. Następnie należy ustalić, czy podatny kod znajduje się w produkcie i czy można go wykorzystać. Sprawdzić opcje kompilacji, modyfikacje, ścieżki wykonania oraz warunki opisane w komunikacie o podatności.

Vulnerability Exploitability eXchange (VEX) przekazuje ocenę wpływu określonej podatności na wskazane produkty. Należy powiązać tę ocenę z wydaniem i analizą stanowiącą jej podstawę. Brak dopasowania może wynikać z ograniczonego zakresu lub niekompletnych identyfikatorów.

Zapisy dotyczące wspieranych wydań

Oryginalny wykaz należy archiwizować wraz z wydaniem. Jeśli nowe informacje powodują korektę SBOM bez zmiany oprogramowania, należy wydać identyfikowalną rewizję dokumentu. Jeśli zmieni się oprogramowanie, należy utworzyć zapis dla nowego wydania.

Gdy nowy komunikat wskazuje podatność komponentu, należy przeszukać wykazy wszystkich wspieranych wydań. Klienci mogą nadal używać starszego wydania, którego komponenty różnią się od komponentów aktualnego produktu.

Dalsza lektura