# Crei una SBOM dal suo codice sorgente

Source: https://kernwatch.com/it/generatore-sbom · Ultimo aggiornamento: 2026-10-18

Trascini qui la cartella del progetto e ottenga in pochi secondi una distinta base del software (SBOM) in formato CycloneDX o SPDX. L'analisi avviene in questa pagina: il suo codice non lascia mai il computer.

## Che cosa legge

Il generatore legge i file che i suoi package manager già scrivono. I lock file forniscono versioni esatte e l'intero albero delle dipendenze; un manifest da solo fornisce solo le dipendenze dirette.

| Ecosistema | File |
|---|---|
| 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++ (incluse nel progetto) | header di 60 librerie comuni (zlib, OpenSSL, mbedTLS, wolfSSL, SQLite, lwIP, FreeRTOS, cJSON, curl, fmt, littlefs, ...), riconosciute dalle loro macro di versione; .gitmodules |
| File di build (senza lock file) | CMake (find_package, pkg_check_modules, target_link_libraries, FetchContent, CPM), opzioni -l nei Makefile, qmake, meson, autoconf; header #include noti. Elencati senza versione. |
| Pagine web | Link CDN (unpkg, jsDelivr, cdnjs, esm.sh, code.jquery.com, ...) e librerie incluse come jQuery, Bootstrap, Vue e pdf.js, riconosciute dal commento di intestazione |
| Container | Immagini di base nel Dockerfile (FROM) |

Vengono trovate anche le librerie copiate nel progetto: ogni cartella in third_party/, vendor/, external/ e deps/ e ogni cartella del tipo nome-1.2.3, con nome e versione ricavati dai suoi file. Cartelle come node_modules, .git, target, cartelle di build e ambienti virtuali vengono saltate, e i progetti di test, documentazione ed esempio contano come dipendenze di sviluppo. Non viene eseguito nulla e non si contatta alcun registro di pacchetti: il risultato dipende solo dai file della cartella.

## Strumento desktop e CI

Lo stesso generatore come singolo programma per Windows, macOS e Linux, per repository di grandi dimensioni, script e pipeline di build. Fornisce lo stesso risultato di questa pagina.

## Domande

### Il mio codice sorgente viene caricato?

No. Nel browser i file vengono letti da JavaScript nella sua scheda, e la Content-Security-Policy della pagina gli vieta di inviare dati. Lo strumento desktop funziona offline; si connette alla rete solo quando lei gli chiede di caricare la SBOM su Kernwatch.

### Quali formati SBOM crea?

CycloneDX 1.6 JSON e SPDX 2.3 JSON, i due formati leggibili da dispositivo automatico più diffusi. Entrambi sono conformi agli schemi ufficiali e possono essere importati in Kernwatch e in altri strumenti SBOM.

### Questa SBOM basta per il Cyber Resilience Act?

Il CRA richiede una SBOM in un formato di uso comune e leggibile da dispositivo automatico, che copra almeno le dipendenze di primo livello e venga conservata con la documentazione tecnica. Una SBOM basata sui lock file copre questo e altro. Il CRA richiede inoltre di gestire le vulnerabilità che in seguito emergono in quei componenti: è proprio ciò che Kernwatch monitora.

### Perché alcuni componenti non hanno una versione esatta?

Perché la cartella contiene solo un manifest (come package.json, pom.xml o un .csproj) senza lock file. Il generatore non tira mai a indovinare: registra l'intervallo dichiarato e lo segnala. Esegua il commit del lock file, oppure attivi il dependency locking di Gradle, per ottenere versioni esatte e dipendenze transitive.

### Analizza binari o immagini firmware?

No. Legge alberi di codice sorgente: lock file, manifest e header delle librerie C/C++ incluse nel progetto. Dichiari a mano nella sua release Kernwatch le librerie che distribuisce solo come binari.
