Gratis tool
Maak een SBOM van je broncode
Sleep je projectmap hierheen en krijg binnen enkele seconden een softwarestuklijst (SBOM) in CycloneDX- of SPDX-formaat. De analyse draait in deze pagina - je code verlaat je computer nooit.
Sleep een projectmap of een .zip hierheen
Lockfiles, manifests en meegeleverde (vendored) C/C++-bibliotheken worden herkend. Er wordt niets geüpload.
Privé door ontwerp. Je bestanden worden gelezen door JavaScript in dit browsertabblad. De pagina mag nergens data naartoe sturen (Content-Security-Policy connect-src 'none') - controleer het in de ontwikkelaarstools van je browser, of verbreek de netwerkverbinding voordat je de map hierheen sleept.
Je SBOM is klaar
Er zijn geen bekende afhankelijkheidsbestanden gevonden. De ondersteunde bestanden staan hieronder.
| Component | Versie | Type | Gevonden in |
|---|
Volgende stap: upload het bestand naar een release in Kernwatch en krijg een alert zodra een van deze componenten een bekende of actief uitgebuite kwetsbaarheid krijgt. Monitor het gratis →
Wat hij leest
De generator leest de bestanden die je package managers al schrijven. Lockfiles geven exacte versies en de hele afhankelijkheidsboom; een manifest op zich geeft alleen de directe afhankelijkheden.
| Ecosysteem | Bestanden |
|---|---|
| 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++ (meegeleverd) | headers van 60 veelgebruikte bibliotheken (zlib, OpenSSL, mbedTLS, wolfSSL, SQLite, lwIP, FreeRTOS, cJSON, curl, fmt, littlefs, ...), herkend aan hun versiemacro's; .gitmodules |
| Buildbestanden (zonder lockfile) | CMake (find_package, pkg_check_modules, target_link_libraries, FetchContent, CPM), -l-vlaggen in Makefiles, qmake, meson, autoconf; bekende #include-headers. Zonder versies vermeld. |
| Webpagina's | CDN-links (unpkg, jsDelivr, cdnjs, esm.sh, code.jquery.com, ...) en meegeleverde jQuery, Bootstrap, Vue, pdf.js en andere bibliotheken, herkend aan hun bannercommentaar |
| Containers | Basisimages in de Dockerfile (FROM) |
Ook bibliotheken die in het project zijn gekopieerd worden gevonden: elke map in third_party/, vendor/, external/ en deps/ en elke map met de naam naam-1.2.3, met naam en versie uit de eigen bestanden. Mappen zoals node_modules, .git, target, buildmappen en virtuele omgevingen worden overgeslagen, en test-, documentatie- en voorbeeldprojecten tellen als ontwikkelafhankelijkheden. Er wordt niets uitgevoerd en geen pakketregister geraadpleegd, dus het resultaat hangt alleen af van de bestanden in de map.
Desktop- en CI-tool
Dezelfde generator als één programma voor Windows, macOS en Linux - voor grote repository's, scripts en build-pipelines. Het geeft hetzelfde resultaat als deze pagina.
Broncode
Alles waarvan beide tools worden gebouwd: de JavaScript van deze pagina, het C++-programma, de regels en de tests. Apache-2.0.
De binaries zijn nog niet code-signed. Vergelijk na het downloaden de SHA-256-checksum. Windows SmartScreen kan om bevestiging vragen (Meer informatie > Toch uitvoeren); voer op macOS eenmalig xattr -d com.apple.quarantine kernwatch-sbom uit. SHA256SUMS · Versie 0.2.0
Gebruik
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
In je build-pipeline
Genereer de SBOM bij elke release-build en stuur hem direct naar je Kernwatch-werkruimte met een API-sleutel (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
De generator is open source (Apache-2.0). Broncode (.zip)
Vragen
Wordt mijn broncode geüpload?
Nee. In de browser worden de bestanden gelezen door JavaScript in je eigen tabblad, en de Content-Security-Policy van de pagina verbiedt het versturen van data. De desktoptool werkt offline; hij maakt alleen verbinding met het netwerk als je hem vraagt de SBOM naar Kernwatch te uploaden.
Welke SBOM-formaten maakt hij?
CycloneDX 1.6 JSON en SPDX 2.3 JSON, de twee veelgebruikte machineleesbare formaten. Beide valideren tegen de officiële schema's en kunnen worden geïmporteerd in Kernwatch en andere SBOM-tools.
Is deze SBOM genoeg voor de Cyber Resilience Act?
De CRA vraagt om een SBOM in een gangbaar, machineleesbaar formaat die ten minste de afhankelijkheden op het hoogste niveau omvat en bij de technische documentatie wordt bewaard. Een SBOM op basis van lockfiles dekt dat en meer. De CRA verplicht je ook om de kwetsbaarheden af te handelen die later in die componenten opduiken - en dat is wat Kernwatch monitort.
Waarom hebben sommige componenten geen exacte versie?
Omdat de map alleen een manifest bevat (zoals package.json, pom.xml of een .csproj) zonder lockfile. De generator gokt nooit: hij legt het opgegeven bereik vast en meldt dat. Commit je lockfile, of zet Gradle dependency locking aan, om exacte versies en transitieve afhankelijkheden te krijgen.
Scant hij binaries of firmware-images?
Nee. Hij leest broncodebomen: lockfiles, manifests en de headers van meegeleverde C/C++-bibliotheken. Bibliotheken die je alleen als binary levert, geef je handmatig op in je Kernwatch-release.
Reserveer je gratis Kernwatch-account
Het gratis abonnement dekt één product en vraagt geen creditcard. Betaalde abonnementen voegen meer producten, meer gebruikers en de volledige meldworkflow toe - upgrade wanneer je het nodig hebt.
- Gratis voor 1 product
- Geen creditcard
37 dagen sinds de CRA-meldplicht van kracht is · 419 dagen tot alle CRA-eisen gelden
Gratis abonnement · 1 product · geen creditcard
Start gratis →Gratis voor 1 product · Geen creditcard