Przejdź do głównej zawartości

Generator SBOM (Software Bill of Materials)

Moduł SBOM generuje dokument CycloneDX 1.4 JSON opisujący zależności wtyczki Polski for WooCommerce (oraz Polski Pro, jeśli zainstalowane). Zgodnie z CRA SBOM sporządza producent produktu z elementami cyfrowymi (załącznik I część II), a nie sklep, który tylko sprzedaje towary. SBOM bywa też załącznikiem do audytów bezpieczeństwa, a jego struktura CycloneDX jest akceptowana przez skanery podatności (Trivy, Dependency-Track, OWASP DT).

Źródło Zakres
vendor/composer/installed.json Pakiety PHP dostarczane w paczce wtyczki
composer.lock Pakiety PHP z sekcji packages (scope required) i packages-dev (scope optional), tylko w kopii deweloperskiej
package-lock.json Pakiety npm z mapy packages (npm v7+), tylko w kopii deweloperskiej. Opublikowana paczka nie ma tego pliku, więc biblioteki JavaScript dołączone do skryptów wtyczki nie są wymieniane
Nagłówek wtyczki Metadane komponentu aplikacji: name, version, publisher: WPPoland

Dla każdego pakietu budowany jest purl (Package URL) w formacie:

  • PHP: pkg:composer/<vendor>/<name>@<version>
  • JS: pkg:npm/<name>@<version>

Licencje są normalizowane do tablicy {license: {id: "<SPDX>"}}.

Przejdź do Polski > SBOM i kliknij Download SBOM (JSON) przy wybranym targecie (FREE lub PRO). Plik:

  • Nazwa: <slug>-sbom-<version>-<timestamp>.cdx.json
  • Content-Type: application/vnd.cyclonedx+json; charset=utf-8
  • Content-Disposition: attachment
{
"bomFormat": "CycloneDX",
"specVersion": "1.4",
"serialNumber": "urn:uuid:8f3a...",
"version": 1,
"metadata": {
"timestamp": "2026-04-19T09:00:00+00:00",
"tools": [{"vendor": "WPPoland", "name": "Polski SBOM generator", "version": "1.0"}],
"component": {
"type": "application",
"bom-ref": "wppoland/polski",
"name": "polski",
"version": "2.1.0",
"publisher": "WPPoland"
}
},
"components": [
{
"type": "library",
"bom-ref": "composer:symfony/console",
"name": "symfony/console",
"version": "6.4.0",
"scope": "required",
"purl": "pkg:composer/symfony/[email protected]",
"licenses": [{"license": {"id": "MIT"}}]
}
]
}

Dostęp do strony i pobranie: manage_woocommerce. Działanie oparte o admin_post + nonce polski_sbom_download.

Wygenerowany plik możesz bezpośrednio zaimportować do:

  • Dependency-Track (File Upload lub REST /api/v1/bom)
  • Trivy (trivy sbom <file>.cdx.json)
  • Grype (grype sbom:<file>.cdx.json)
  • OWASP CycloneDX CLI (cyclonedx validate)
  • SBOM opisuje tylko jeden katalog wtyczki; nie agreguje całego WordPressa
  • Brak rozdziału hashy plików (hashes) - dodawany będzie w PRO
  • Licencje nienormalizowane (np. MIT OR Apache-2.0) trafiają jako id w niezmienionej formie
  • Nie wykrywa zależności spoza vendor/composer/installed.json, composer.lock i package-lock.json; bibliotek JavaScript dołączonych do skryptów wtyczki nie wymienia