# Utwórz SBOM ze swojego kodu źródłowego

Source: https://kernwatch.com/pl/generator-sbom · Ostatnia aktualizacja: 2026-10-18

Upuść folder projektu i w kilka sekund otrzymaj wykaz komponentów oprogramowania (SBOM) w formacie CycloneDX lub SPDX. Analiza odbywa się na tej stronie - Twój kod nigdy nie opuszcza Twojego komputera.

## Co odczytuje

Generator odczytuje pliki, które Twoje menedżery pakietów już zapisują. Pliki lock dają dokładne wersje i całe drzewo zależności; sam manifest daje tylko zależności bezpośrednie.

| Ekosystem | Pliki |
|---|---|
| JavaScript / TypeScript | package-lock.json, npm-shrinkwrap.json, yarn.lock (v1, berry), pnpm-lock.yaml, bun.lock, deno.lock, deno.json, package.json |
| Python | uv.lock, poetry.lock, Pipfile.lock, requirements*.txt, pyproject.toml, environment.yml |
| Go | go.mod |
| Rust | Cargo.lock, Cargo.toml |
| Java / Kotlin / Scala | pom.xml, gradle.lockfile, libs.versions.toml, build.gradle(.kts), build.sbt |
| .NET | packages.lock.json, *.csproj, packages.config, Directory.Packages.props |
| PHP | composer.lock, composer.json |
| Ruby | Gemfile.lock |
| Swift / iOS | Package.resolved, Package.swift, Podfile.lock, Cartfile.resolved |
| Dart / Flutter | pubspec.lock, pubspec.yaml |
| Elixir / Erlang | mix.lock, rebar.lock |
| Haskell, Julia, R, Lua, Zig, OCaml, Perl | cabal.project.freeze, stack.yaml.lock, *.cabal, Manifest.toml, Project.toml, renv.lock, DESCRIPTION, *.rockspec, build.zig.zon, *.opam, cpanfile |
| C/C++ package managers | conan.lock, conanfile.txt, conanfile.py, vcpkg.json, meson .wrap, MODULE.bazel |
| Embedded | platformio.ini, idf_component.yml, dependencies.lock (ESP-IDF), west.yml (Zephyr), library.properties, library.json |
| Nix | flake.lock |
| C/C++ (dołączone do projektu) | nagłówki 60 popularnych bibliotek (zlib, OpenSSL, mbedTLS, wolfSSL, SQLite, lwIP, FreeRTOS, cJSON, curl, fmt, littlefs, ...) rozpoznawane po makrach wersji; .gitmodules |
| Pliki budowania (bez pliku lock) | CMake (find_package, pkg_check_modules, target_link_libraries, FetchContent, CPM), flagi -l w Makefile, qmake, meson, autoconf; znane nagłówki #include. Wymienione bez wersji. |
| Strony WWW | Linki CDN (unpkg, jsDelivr, cdnjs, esm.sh, code.jquery.com, ...) oraz dołączone biblioteki jQuery, Bootstrap, Vue, pdf.js i inne, rozpoznawane po komentarzu nagłówkowym |
| Kontenery | Obrazy bazowe w Dockerfile (FROM) |

Wykrywane są też biblioteki skopiowane do projektu: każdy folder w third_party/, vendor/, external/ i deps/ oraz każdy folder o nazwie nazwa-1.2.3, z nazwą i wersją z jego własnych plików. Foldery takie jak node_modules, .git, target, katalogi budowania i środowiska wirtualne są pomijane, a projekty testowe, dokumentacji i przykładów liczą się jako zależności deweloperskie. Nic nie jest uruchamiane i żaden rejestr pakietów nie jest odpytywany, więc wynik zależy tylko od plików w folderze.

## Narzędzie desktopowe i CI

Ten sam generator jako pojedynczy program dla Windows, macOS i Linuksa - dla dużych repozytoriów, skryptów i potoków budowania. Daje ten sam wynik co ta strona.

## Pytania

### Czy mój kod źródłowy jest wysyłany?

Nie. W przeglądarce pliki odczytuje JavaScript w Twojej własnej karcie, a Content-Security-Policy strony zabrania mu wysyłania danych. Narzędzie desktopowe działa offline; łączy się z siecią tylko wtedy, gdy poprosisz je o przesłanie SBOM do Kernwatch.

### Jakie formaty SBOM tworzy?

CycloneDX 1.6 JSON i SPDX 2.3 JSON - dwa powszechnie stosowane formaty nadające się do odczytu maszynowego. Oba przechodzą walidację względem oficjalnych schematów i można je zaimportować do Kernwatch oraz innych narzędzi SBOM.

### Czy ten SBOM wystarczy na potrzeby Cyber Resilience Act?

CRA wymaga SBOM w powszechnie stosowanym formacie nadającym się do odczytu maszynowego, obejmującego co najmniej zależności najwyższego poziomu i przechowywanego wraz z dokumentacją techniczną. SBOM oparty na plikach lock spełnia to z nawiązką. CRA wymaga też obsługi podatności, które później pojawią się w tych komponentach - właśnie to monitoruje Kernwatch.

### Dlaczego niektóre komponenty nie mają dokładnej wersji?

Ponieważ folder zawiera tylko manifest (np. package.json, pom.xml lub .csproj) bez pliku lock. Generator nigdy nie zgaduje: zapisuje zadeklarowany zakres i informuje o tym. Dodaj plik lock do repozytorium lub włącz dependency locking w Gradle, aby uzyskać dokładne wersje i zależności przechodnie.

### Czy skanuje pliki binarne lub obrazy firmware?

Nie. Odczytuje drzewa kodu źródłowego: pliki lock, manifesty i nagłówki dołączonych do projektu bibliotek C/C++. Biblioteki, które dostarczasz tylko w postaci binarnej, zadeklaruj ręcznie w swoim wydaniu w Kernwatch.
