Quellcode scannen
kunnus sbom repo durchläuft einen Quellcode-Baum, erkennt jedes vorhandene Paket-Ökosystem und erzeugt eine einzige CycloneDX-1.6-SBOM für alle. Keine Konfigurationsdatei, kein Setup pro Sprache.
cd my-project
kunnus sbom repo --output sbom.cdx.jsonOhne --output geht die SBOM nach stdout und lässt sich pipen; alle Logausgaben gehen nach stderr. Das Pfad-Argument ist optional und zeigt standardmäßig auf das aktuelle Verzeichnis — kunnus sbom repo ~/src/firmware funktioniert genauso.
Was erkannt wird
Die Erkennung ist markerbasiert: kunnus sucht die Manifest- und Lockfiles jedes Ökosystems (package.json, go.mod, Cargo.lock, pom.xml, requirements.txt, …) und aktiviert die passenden Extraktoren. Ein Scan deckt über 20 Sprach-Ökosysteme ab — npm/pnpm/yarn/bun, Python (requirements, poetry, pdm, Pipfile, uv, conda), Go, Rust, Java (Maven, Gradle), .NET, PHP, Ruby, Swift (SwiftPM, CocoaPods), Haskell, Lua, R und C/C++ (Conan) — plus Embedded-Firmware-Manifeste und vendorte C/C++-Bibliotheksverzeichnisse.
Monorepos brauchen nichts Besonderes: Jedes irgendwo im Baum gefundene Ökosystem landet in derselben SBOM, und doppelte Deklarationen über Teilprojekte hinweg kollabieren in der Deduplizierung.
Scan einschränken
Um nur bestimmte Ökosysteme zu scannen, nutzen Sie --ecosystem (wiederholbar). Einzelne scalibr-Plugins lassen sich mit --enable / --disable hinzufügen oder entfernen.
kunnus sbom repo --ecosystem npm --ecosystem pythonHashes und Lizenzen
Wo ein Lockfile Content-Digests enthält (npm, yarn, pnpm, bun, poetry, uv, Cargo, Conan, ESP-IDF, …), übernimmt kunnus sie als Komponenten-Hashes in die SBOM — eine Anforderung der BSI TR-03183-2. Lizenzen stammen aus offline verfügbaren Paketdaten; für Ökosysteme ohne Lizenzangaben im Lockfile (Go, Rust, .NET) schließt das Opt-in-Flag --online-licenses die Lücke via deps.dev. Dieses Flag ist das einzige Scan-Feature mit Netzwerkzugriff.