Ilmainen työkalu

Luo SBOM lähdekoodistasi

Pudota projektikansiosi tähän ja saat CycloneDX- tai SPDX-muotoisen ohjelmistokomponenttiluettelon sekunneissa. Analyysi tehdään tällä sivulla - koodisi ei koskaan poistu tietokoneeltasi.

Pudota projektikansio tai .zip-tiedosto tähän

Lock-tiedostot, manifestit ja projektiin sisällytetyt C/C++-kirjastot tunnistetaan. Mitään ei lähetetä minnekään.

Yksityinen jo rakenteeltaan. Tiedostosi lukee JavaScript tässä selaimen välilehdessä. Sivu ei saa lähettää tietoja minnekään (Content-Security-Policy connect-src 'none') - tarkista se selaimesi kehittäjätyökaluista tai katkaise verkkoyhteys ennen kuin pudotat kansion.

Asetukset

Mitä se lukee

Generaattori lukee tiedostot, jotka paketinhallintatyökalusi jo kirjoittavat. Lock-tiedostot antavat tarkat versiot ja koko riippuvuuspuun; pelkkä manifesti antaa vain suorat riippuvuudet.

EkosysteemiTiedostot
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++ (projektiin sisällytetyt)60 yleisen kirjaston (zlib, OpenSSL, mbedTLS, wolfSSL, SQLite, lwIP, FreeRTOS, cJSON, curl, fmt, littlefs, ...) otsaketiedostot, jotka tunnistetaan versiomakroistaan; .gitmodules
Käännöstiedostot (ilman lock-tiedostoa)CMake (find_package, pkg_check_modules, target_link_libraries, FetchContent, CPM), Makefilen -l-liput, qmake, meson, autoconf; tunnetut #include-otsakkeet. Listataan ilman versioita.
VerkkosivutCDN-linkit (unpkg, jsDelivr, cdnjs, esm.sh, code.jquery.com, ...) sekä mukana toimitetut jQuery, Bootstrap, Vue, pdf.js ja muut kirjastot, jotka tunnistetaan niiden otsakekommentista
KontitDockerfilen pohjaimaget (FROM)

Myös projektiin kopioidut kirjastot löytyvät: jokainen kansio third_party/-, vendor/-, external/- ja deps/-kansioissa sekä jokainen nimi-1.2.3-kansio, nimettynä ja versioituna sen omista tiedostoista. Kansiot kuten node_modules, .git, target, käännöskansiot ja virtuaaliympäristöt ohitetaan, ja testi-, dokumentaatio- ja esimerkkiprojektit lasketaan kehitysriippuvuuksiksi. Mitään ei suoriteta eikä pakettirekisteriin oteta yhteyttä, joten tulos riippuu vain kansion tiedostoista.

Työpöytä- ja CI-työkalu

Sama generaattori yhtenä ohjelmana Windowsille, macOS:lle ja Linuxille - suurille repositorioille, skripteille ja käännösputkille. Se antaa saman tuloksen kuin tämä sivu.

Windows

Lähdekoodi

Kaikki, mistä molemmat työkalut rakennetaan: tämän sivun JavaScript, C++-ohjelma, säännöt ja testit. Apache-2.0.

Binääreitä ei ole vielä allekirjoitettu koodiallekirjoituksella. Vertaa SHA-256-tarkistussummaa latauksen jälkeen. Windows SmartScreen voi pyytää vahvistusta (Lisätietoja > Suorita silti); macOS:ssä aja kerran xattr -d com.apple.quarantine kernwatch-sbom. SHA256SUMS · Versio 0.2.0

Käyttö

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

Käännösputkessa

Luo SBOM jokaisessa julkaisukäännöksessä ja lähetä se suoraan Kernwatch-työtilaasi API-avaimella (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

Generaattori on avointa lähdekoodia (Apache-2.0). Lähdekoodi (.zip)

Kysymyksiä

Lähetetäänkö lähdekoodini jonnekin?

Ei. Selaimessa tiedostot lukee JavaScript omassa välilehdessäsi, ja sivun Content-Security-Policy estää sitä lähettämästä tietoja. Työpöytätyökalu toimii ilman verkkoyhteyttä; se ottaa yhteyttä verkkoon vain, kun pyydät sitä lähettämään SBOMin Kernwatchiin.

Mitä SBOM-muotoja se luo?

CycloneDX 1.6 JSON ja SPDX 2.3 JSON, kaksi laajasti käytettyä koneluettavaa muotoa. Molemmat ovat virallisten skeemojen mukaisia, ja ne voi tuoda Kernwatchiin ja muihin SBOM-työkaluihin.

Riittääkö tämä SBOM kyberresilienssisäädöksen vaatimuksiin?

CRA edellyttää SBOMia yleisesti käytetyssä, koneluettavassa muodossa, joka kattaa vähintään ylimmän tason riippuvuudet ja säilytetään teknisen dokumentaation kanssa. Lock-tiedostoihin perustuva SBOM kattaa tämän ja enemmän. CRA edellyttää myös, että käsittelet haavoittuvuudet, joita näihin komponentteihin myöhemmin ilmaantuu - juuri niitä Kernwatch seuraa.

Miksi joillakin komponenteilla ei ole tarkkaa versiota?

Koska kansiossa on vain manifesti (kuten package.json, pom.xml tai .csproj) ilman lock-tiedostoa. Generaattori ei koskaan arvaa: se kirjaa ilmoitetun versiovälin ja kertoo siitä. Lisää lock-tiedosto versionhallintaan tai ota Gradlen dependency locking käyttöön, niin saat tarkat versiot ja transitiiviset riippuvuudet.

Skannaako se binäärejä tai firmware-kuvia?

Ei. Se lukee lähdekoodipuita: lock-tiedostoja, manifesteja ja projektiin sisällytettyjen C/C++-kirjastojen otsaketiedostoja. Ilmoita kirjastot, jotka toimitat vain binääreinä, Kernwatch-julkaisuusi käsin.

Varaa ilmainen Kernwatch-tilisi

Ilmainen paketti kattaa yhden tuotteen eikä vaadi luottokorttia. Maksulliset paketit tuovat lisää tuotteita ja käyttäjiä sekä koko raportointityönkulun - päivitä, kun tarvitset lisää.

  • Ilmainen paketti 1 tuotteelle
  • Ei luottokorttia

37 päivää CRA-raportoinnin alkamisesta · 419 päivää siihen, kun kaikki CRA-vaatimukset ovat voimassa

Ilmainen paketti · 1 tuote · ei luottokorttia

Aloita ilmaiseksi →

Ilmainen paketti 1 tuotteelle · Ei luottokorttia