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.

Opciones

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.

EcosistemaArchivos
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++ (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 webEnlaces 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
ContenedoresImá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.

Windows

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