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.
SBOM on valmis
Tunnettuja riippuvuustiedostoja ei löytynyt. Tuetut tiedostot on lueteltu alla.
| Komponentti | Versio | Tyyppi | Löytyi tiedostosta |
|---|
Seuraava vaihe: lataa tiedosto julkaisuun Kernwatchissa ja saat hälytyksen, kun johonkin näistä komponenteista tulee tunnettu tai aktiivisesti hyväksikäytetty haavoittuvuus. Seuraa sitä ilmaiseksi →
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.
| Ekosysteemi | Tiedostot |
|---|---|
| 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++ (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. |
| Verkkosivut | CDN-linkit (unpkg, jsDelivr, cdnjs, esm.sh, code.jquery.com, ...) sekä mukana toimitetut jQuery, Bootstrap, Vue, pdf.js ja muut kirjastot, jotka tunnistetaan niiden otsakekommentista |
| Kontit | Dockerfilen 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.
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