- Pobierz link
- X
- Inne aplikacje
- Pobierz link
- X
- Inne aplikacje
SBOM (Software Bill of Materials), czyli "spis treści" oprogramowania, to dokument, który zawiera szczegółowy wykaz wszystkich komponentów używanych w danej aplikacji, w tym bibliotek open-source, frameworków i innych zależności. W kontekście narzędzia OWASP Dependency-Track, SBOM pełni kluczową rolę w zarządzaniu bezpieczeństwem i zgodnością oprogramowania.
Dlaczego SBOM jest ważne?
- Przejrzystość: Dzięki SBOM zespół ma pełny obraz używanych zależności, co ułatwia identyfikację potencjalnych podatności.
- Zgodność regulacyjna: SBOM staje się coraz bardziej wymagane przez przepisy prawa, takie jak Executive Order on Improving the Nation’s Cybersecurity w USA, które nakładają obowiązek dostarczania SBOM przez dostawców oprogramowania.
- Monitorowanie ryzyk: SBOM pozwala szybko reagować na nowe podatności, ponieważ dokładnie wiadomo, które komponenty wymagają uwagi.
Dependency-Track i SBOM
Dependency-Track automatycznie generuje i zarządza SBOM dla każdego projektu. Narzędzie obsługuje formaty standardowe, takie jak:
- CycloneDX – rekomendowany format SBOM rozwijany przez OWASP.
- SPDX (Software Package Data Exchange) – szeroko stosowany w dużych projektach open-source.
Dzięki wbudowanej obsłudze SBOM, Dependency-Track:
- Analizuje wszystkie komponenty wymienione w SBOM pod kątem znanych podatności.
- Monitoruje zmiany w zależnościach na przestrzeni czasu.
- Pozwala na łatwe udostępnianie SBOM interesariuszom i partnerom w celu spełnienia wymagań zgodności.
Praktyczne zastosowanie SBOM
Przykład: Jeśli pojawi się nowa podatność w popularnej bibliotece open-source, Dependency-Track automatycznie porówna SBOM projektu z bazą danych podatności (np. CVE). Jeśli podatna wersja znajduje się w projekcie, zespół natychmiast otrzyma ostrzeżenie wraz z zaleceniem aktualizacji lub usunięcia podatnego komponentu.
Budowanie SBOM (Software Bill of Materials) jest kluczowe dla zarządzania bezpieczeństwem zależności w projektach programistycznych. W różnych językach programowania można wykorzystać różne narzędzia i techniki do automatycznego generowania SBOM. Poniżej przedstawiam najpopularniejsze rozwiązania dla języków Java, C#, PHP i JavaScript.
1. Java
Java wykorzystuje narzędzia zarządzania zależnościami, takie jak Maven czy Gradle, które są kompatybilne z formatami SBOM, takimi jak CycloneDX.
Budowanie SBOM w Maven:
- Zainstaluj wtyczkę CycloneDX:
<plugin>
<groupId>org.cyclonedx</groupId>
<artifactId>cyclonedx-maven-plugin</artifactId>
<version>2.7.9</version>
</plugin>
- Uruchom wtyczkę:
mvn cyclonedx:makeAggregateBom
- Plik SBOM (
bom.xml
) zostanie wygenerowany w katalogu projektu.
<plugin>
<groupId>org.cyclonedx</groupId>
<artifactId>cyclonedx-maven-plugin</artifactId>
<version>2.7.9</version>
</plugin>
mvn cyclonedx:makeAggregateBom
bom.xml
) zostanie wygenerowany w katalogu projektu.Budowanie SBOM w Gradle:
- Dodaj wtyczkę CycloneDX do
build.gradle
:plugins {
id "org.cyclonedx.bom" version "1.7.4"
}
- Wygeneruj SBOM:
gradle cyclonedxBom
- Plik SBOM (
bom.xml
lub bom.json
) znajdziesz w katalogu build/reports
.
build.gradle
:plugins { id "org.cyclonedx.bom" version "1.7.4" }
gradle cyclonedxBom
bom.xml
lub bom.json
) znajdziesz w katalogu build/reports
.2. C#
W ekosystemie .NET generowanie SBOM można zrealizować za pomocą narzędzia dotnet CLI lub specjalnych bibliotek.
Budowanie SBOM za pomocą dotnet CLI:
- Zainstaluj narzędzie
dotnet-project-assets
:dotnet tool install -g dotnet-project-assets
- Wygeneruj SBOM:
dotnet-project-assets
- Plik
sbom.json
zawierający zależności projektu zostanie utworzony.
dotnet-project-assets
:dotnet tool install -g dotnet-project-assets
dotnet-project-assets
sbom.json
zawierający zależności projektu zostanie utworzony.Inne narzędzia:
- Użycie platformy CycloneDX: istnieją gotowe wtyczki dla .NET pozwalające na generowanie SBOM w formacie CycloneDX.
3. PHP
W projektach PHP zależności są zarządzane przez Composer, który również wspiera generowanie SBOM.
Budowanie SBOM za pomocą Composer:
- Dodaj wtyczkę Composer CycloneDX:
composer require --dev cyclonedx/cyclonedx-php-composer
- Wygeneruj SBOM:
vendor/bin/cyclonedx-composer make-bom
- Plik SBOM (
bom.json
) zostanie zapisany w katalogu projektu.
composer require --dev cyclonedx/cyclonedx-php-composer
vendor/bin/cyclonedx-composer make-bom
bom.json
) zostanie zapisany w katalogu projektu.Dodatkowe rozwiązania:
- Narzędzia takie jak SCA (Software Composition Analysis) mogą również generować SBOM dla projektów PHP.
4. JavaScript (Node.js)
W projektach JavaScript i Node.js używa się narzędzi takich jak npm lub yarn do zarządzania zależnościami.
Budowanie SBOM za pomocą CycloneDX npm:
- Zainstaluj CycloneDX CLI:
npm install -g @cyclonedx/cyclonedx-npm
- Wygeneruj SBOM:
cyclonedx-npm --output bom.json
- Plik
bom.json
zostanie zapisany w katalogu projektu.
npm install -g @cyclonedx/cyclonedx-npm
cyclonedx-npm --output bom.json
bom.json
zostanie zapisany w katalogu projektu.Budowanie SBOM za pomocą yarn:
- Zainstaluj wtyczkę CycloneDX:
yarn global add @cyclonedx/cyclonedx-npm
- Wygeneruj SBOM:
cyclonedx-npm --output bom.json
yarn global add @cyclonedx/cyclonedx-npm
cyclonedx-npm --output bom.json
Podsumowanie roli SBOM w Dependency-Track
SBOM jest fundamentem skutecznego zarządzania zależnościami. W kontekście Dependency-Track to nie tylko dokument, ale także narzędzie, które zapewnia bezpieczeństwo, przejrzystość i zgodność oprogramowania. Dzięki automatycznemu generowaniu i monitorowaniu SBOM, zespoły DevOps mogą zyskać pełną kontrolę nad komponentami swoich aplikacji i szybko reagować na pojawiające się zagrożenia.
- Pobierz link
- X
- Inne aplikacje
Komentarze
Prześlij komentarz