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.

Opties

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.

EcosysteemBestanden
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++ (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'sCDN-links (unpkg, jsDelivr, cdnjs, esm.sh, code.jquery.com, ...) en meegeleverde jQuery, Bootstrap, Vue, pdf.js en andere bibliotheken, herkend aan hun bannercommentaar
ContainersBasisimages 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.

Windows

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