Strumento gratuito
Crei una SBOM dal suo codice sorgente
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.
Trascini qui una cartella di progetto o un file .zip
Vengono riconosciuti lock file, manifest e librerie C/C++ incluse nel progetto (vendored). Non viene caricato nulla.
Riservatezza fin dalla progettazione. I suoi file vengono letti da JavaScript in questa scheda del browser. La pagina non può inviare dati da nessuna parte (Content-Security-Policy connect-src 'none'): può verificarlo negli strumenti per sviluppatori del browser, oppure scollegarsi dalla rete prima di trascinare la cartella.
La sua SBOM è pronta
Non è stato trovato alcun file di dipendenze noto. I file supportati sono elencati qui sotto.
| Componente | Versione | Tipo | Trovato in |
|---|
Prossimo passo: carichi il file in una release su Kernwatch e riceva un avviso quando uno di questi componenti presenta una vulnerabilità nota o sfruttata attivamente. La monitori gratis →
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.
Codice sorgente
Tutto ciò da cui sono costruiti entrambi gli strumenti: il JavaScript di questa pagina, il programma C++, le regole e i test. Apache-2.0.
I binari non sono ancora firmati digitalmente. Dopo il download confronti il checksum SHA-256. Windows SmartScreen potrebbe chiederle una conferma (Ulteriori informazioni > Esegui comunque); su macOS esegua una volta xattr -d com.apple.quarantine kernwatch-sbom. SHA256SUMS · Versione 0.2.0
Utilizzo
kernwatch-sbom ./my-product --name my-product --version 2.4.0 -o my-product.cdx.json
kernwatch-sbom ./my-product --format spdx -o my-product.spdx.json
kernwatch-sbom --help
Nella sua pipeline di build
Generi la SBOM a ogni build di release e la invii direttamente al suo spazio di lavoro Kernwatch con una chiave API (Settings > API keys):
# GitHub Actions step (secret KERNWATCH_API_KEY = a key with the SBOM upload scope)
- name: SBOM to Kernwatch
env:
KERNWATCH_API_KEY: ${{ secrets.KERNWATCH_API_KEY }}
run: |
curl -fsSLo kernwatch-sbom https://kernwatch.com/downloads/kernwatch-sbom/0.2.0/kernwatch-sbom-0.2.0-linux-x86_64
chmod +x kernwatch-sbom
./kernwatch-sbom . --name my-product --version "$GITHUB_REF_NAME" -o sbom.cdx.json \
--upload https://kernwatch.com/rest/v1/cra/sbom/kernwatch_db
Il generatore è open source (Apache-2.0). Codice sorgente (.zip)
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.
Riservi il suo account Kernwatch gratuito
Il piano gratuito copre un prodotto e non richiede carta di credito. I piani a pagamento aggiungono più prodotti, più utenti e il flusso di segnalazione completo: passi a un piano superiore quando ne ha bisogno.
- Gratis per 1 prodotto
- Nessuna carta di credito
37 giorni dall'avvio degli obblighi di segnalazione CRA · 419 giorni fino all'applicazione di tutti i requisiti CRA
Piano gratuito · 1 prodotto · nessuna carta di credito
Inizia gratis →Gratis per 1 prodotto · Nessuna carta di credito