Herramienta gratuita
Cree una SBOM a partir de su código fuente
Suelte la carpeta de su proyecto y obtenga en segundos una lista de materiales de software (SBOM) en formato CycloneDX o SPDX. El análisis se ejecuta en esta página: su código nunca sale de su ordenador.
Suelte aquí una carpeta de proyecto o un .zip
Se reconocen archivos de bloqueo (lock files), manifiestos y bibliotecas C/C++ incluidas en el repositorio (vendored). No se sube nada.
Privado por diseño. Sus archivos los lee JavaScript en esta pestaña del navegador. La página no puede enviar datos a ningún sitio (Content-Security-Policy connect-src 'none'): compruébelo en las herramientas para desarrolladores de su navegador o desconéctese de la red antes de soltar la carpeta.
Su SBOM está lista
No se han encontrado archivos de dependencias conocidos. Los archivos compatibles se enumeran más abajo.
| Componente | Versión | Tipo | Encontrado en |
|---|
Siguiente paso: cargue el archivo en una versión en Kernwatch y reciba una alerta cuando uno de estos componentes tenga una vulnerabilidad conocida o explotada activamente. Vigílela gratis →
Qué lee
El generador lee los archivos que sus gestores de paquetes ya escriben. Los archivos de bloqueo dan versiones exactas y todo el árbol de dependencias; un manifiesto por sí solo da únicamente las dependencias directas.
| Ecosistema | Archivos |
|---|---|
| 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++ (incluidas en el repositorio) | cabeceras de 60 bibliotecas habituales (zlib, OpenSSL, mbedTLS, wolfSSL, SQLite, lwIP, FreeRTOS, cJSON, curl, fmt, littlefs, ...), reconocidas por sus macros de versión; .gitmodules |
| Archivos de compilación (sin archivo de bloqueo) | CMake (find_package, pkg_check_modules, target_link_libraries, FetchContent, CPM), opciones -l de Makefile, qmake, meson, autoconf; cabeceras #include conocidas. Se listan sin versiones. |
| Páginas web | Enlaces CDN (unpkg, jsDelivr, cdnjs, esm.sh, code.jquery.com, ...) y bibliotecas incluidas como jQuery, Bootstrap, Vue o pdf.js, reconocidas por su comentario de cabecera |
| Contenedores | Imágenes base del Dockerfile (FROM) |
También se encuentran las bibliotecas copiadas en el proyecto: cada carpeta de third_party/, vendor/, external/ y deps/ y cada carpeta con nombre nombre-1.2.3, con nombre y versión tomados de sus propios archivos. Se omiten carpetas como node_modules, .git, target, árboles de compilación y entornos virtuales, y los proyectos de pruebas, documentación y ejemplos cuentan como dependencias de desarrollo. No se ejecuta nada ni se consulta ningún registro de paquetes: el resultado depende solo de los archivos de la carpeta.
Herramienta de escritorio y de CI
El mismo generador como un único programa para Windows, macOS y Linux, pensado para repositorios grandes, scripts y pipelines de compilación. Da el mismo resultado que esta página.
Código fuente
Todo aquello con lo que se construyen ambas herramientas: el JavaScript de esta página, el programa en C++, las reglas y las pruebas. Apache-2.0.
Los binarios aún no están firmados digitalmente. Compare la suma de comprobación SHA-256 después de descargarlos. Windows SmartScreen puede pedirle confirmación (Más información > Ejecutar de todas formas); en macOS, ejecute una vez xattr -d com.apple.quarantine kernwatch-sbom. SHA256SUMS · Versión 0.2.0
Uso
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
En su pipeline de compilación
Genere la SBOM en cada compilación de versión y envíela directamente a su espacio de trabajo de Kernwatch con una clave de API (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
El generador es de código abierto (Apache-2.0). Código fuente (.zip)
Preguntas
¿Se sube mi código fuente?
No. En el navegador, los archivos los lee JavaScript en su propia pestaña, y la Content-Security-Policy de la página le prohíbe enviar datos. La herramienta de escritorio funciona sin conexión; solo se conecta a la red cuando usted le pide que suba la SBOM a Kernwatch.
¿Qué formatos de SBOM crea?
CycloneDX 1.6 JSON y SPDX 2.3 JSON, los dos formatos legibles por máquina de uso más extendido. Ambos se validan con los esquemas oficiales y pueden importarse en Kernwatch y en otras herramientas de SBOM.
¿Basta esta SBOM para el Reglamento de Ciberresiliencia?
El CRA exige una SBOM en un formato de uso común y legible por máquina que abarque, como mínimo, las dependencias de nivel superior y que se conserve con la documentación técnica. Una SBOM basada en archivos de bloqueo cubre eso y más. El CRA también le obliga a gestionar las vulnerabilidades que aparezcan más adelante en esos componentes: eso es lo que vigila Kernwatch.
¿Por qué algunos componentes no tienen una versión exacta?
Porque la carpeta solo contiene un manifiesto (como package.json, pom.xml o un .csproj) sin archivo de bloqueo. El generador nunca adivina: registra el rango declarado y lo indica. Añada su archivo de bloqueo al repositorio, o active el bloqueo de dependencias de Gradle (dependency locking), para obtener versiones exactas y dependencias transitivas.
¿Analiza binarios o imágenes de firmware?
No. Lee árboles de código fuente: archivos de bloqueo, manifiestos y las cabeceras de las bibliotecas C/C++ incluidas en el repositorio. Declare a mano en su versión de Kernwatch las bibliotecas que solo distribuye como binarios.
Reserve su cuenta gratuita de Kernwatch
El plan gratuito cubre un producto y no requiere tarjeta de crédito. Los planes de pago añaden más productos, más usuarios y el flujo completo de notificación: amplíe su plan cuando lo necesite.
- Plan gratuito para 1 producto
- Sin tarjeta de crédito
37 días desde el inicio de la obligación de notificación del CRA · 419 días hasta que se apliquen todos los requisitos del CRA
Plan gratuito · 1 producto · sin tarjeta de crédito
Empiece gratis →Plan gratuito para 1 producto · Sin tarjeta de crédito