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.

Opzioni

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.

EcosistemaFile
JavaScript / TypeScriptpackage-lock.json, npm-shrinkwrap.json, yarn.lock (v1, berry), pnpm-lock.yaml, bun.lock, deno.lock, deno.json, package.json
Pythonuv.lock, poetry.lock, Pipfile.lock, requirements*.txt, pyproject.toml, environment.yml
Gogo.mod
RustCargo.lock, Cargo.toml
Java / Kotlin / Scalapom.xml, gradle.lockfile, libs.versions.toml, build.gradle(.kts), build.sbt
.NETpackages.lock.json, *.csproj, packages.config, Directory.Packages.props
PHPcomposer.lock, composer.json
RubyGemfile.lock
Swift / iOSPackage.resolved, Package.swift, Podfile.lock, Cartfile.resolved
Dart / Flutterpubspec.lock, pubspec.yaml
Elixir / Erlangmix.lock, rebar.lock
Haskell, Julia, R, Lua, Zig, OCaml, Perlcabal.project.freeze, stack.yaml.lock, *.cabal, Manifest.toml, Project.toml, renv.lock, DESCRIPTION, *.rockspec, build.zig.zon, *.opam, cpanfile
C/C++ package managersconan.lock, conanfile.txt, conanfile.py, vcpkg.json, meson .wrap, MODULE.bazel
Embeddedplatformio.ini, idf_component.yml, dependencies.lock (ESP-IDF), west.yml (Zephyr), library.properties, library.json
Nixflake.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 webLink CDN (unpkg, jsDelivr, cdnjs, esm.sh, code.jquery.com, ...) e librerie incluse come jQuery, Bootstrap, Vue e pdf.js, riconosciute dal commento di intestazione
ContainerImmagini 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.

Windows

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