# Luo SBOM lähdekoodistasi

Source: https://kernwatch.com/fi/sbom-generaattori · Päivitetty viimeksi: 2026-10-18

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

## 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.

## 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.
