Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
ndaal_public_SBOM_Auditor — Aplicación web offline de binario único que ingiere SBOMs de CycloneDX, SPDX y syft, ejecuta un conjunto de escáneres de CVE, enriquece los hallazgos con EPSS, CISA-KEV y nuclei, y exporta SARIF, CSAF y PDF. | Kitploit
Herramientas/GitLabGitLab/vpierre/ndaal_public_sbom_auditor
Herramientas DefensivasGestión de Indicadores de Compromiso (IOC)Análisis EstáticoEscáneres de VulnerabilidadesAnálisis de VulnerabilidadesAuditoría de ConfiguraciónDevSecOpsUtilidades y Frameworks
Inteligencia de Amenazas
Seguridad de Cadena de Suministro
GitLabvpierre/ndaal_public_sbom_auditor

ndaal_public_SBOM_Auditor

Aplicación web offline de binario único que ingiere SBOMs de CycloneDX, SPDX y syft, ejecuta un conjunto de escáneres de CVE, enriquece los hallazgos con EPSS, CISA-KEV y nuclei, y exporta SARIF, CSAF y PDF.

Ver RepositorioSitio web
37hace 1 díaAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

ndaal SBOM Auditor

Una aplicación web offline de binario único para investigar archivos SBOM (Software Bill of Materials). Suba un SBOM o importe una carpeta de ellos, analice cada uno con un conjunto de herramientas independientes, revise los hallazgos normalizados en una única interfaz local y exporte el resultado en ocho formatos. Sin instalación, sin acceso a la red, sin telemetría.

Traducciones: Deutsch · Français

Qué hace

  1. Ingesta — suba un SBOM en el navegador, o importe cada SBOM de una carpeta configurable. Se detectan CycloneDX (JSON/XML), SPDX (JSON/tag-value y 3.0 JSON-LD) y syft-json; los archivos se someten a hash de contenido y se deduplican.
  2. Análisis — ejecute las herramientas habilitadas contra el SBOM, cada una como un subproceso aislado bajo un plazo límite y un límite de concurrencia. Una herramienta ausente es una omisión limpia y visiblemente distinta — nunca se reporta como un resultado limpio.
  3. Hallazgos — la salida de cada herramienta se normaliza a una forma común, con el alias CVE resuelto a partir del identificador GHSA/OSV de la herramienta, y se muestra por herramienta con insignias de severidad.
  4. Puntuación — califique el SBOM contra los diecisiete elementos mínimos de CISA 2026, distinguiendo un NOASSERTION explícito de un proveedor de un campo que simplemente está ausente.
  5. Búsqueda — encuentre cuáles de sus SBOM declaran un componente dado, en todo el corpus, por nombre o URL de paquete.
  6. — escriba el análisis como SARIF 2.1, SARIF 2.2, Markdown, ODT, DOCX, PDF y avisos CSAF 2.1 / 2.2. persiste los formatos seleccionados en el directorio de exportación del servidor, cada uno acompañado de cinco archivos auxiliares de hash criptográfico; renderiza los mismos formatos en memoria y los transmite al navegador — un documento, o un paquete ZIP para varios — sin escribir nada en disco.
Exportación
Export
Start download

Panel de SBOM almacenados

La página de inicio (/) lista cada SBOM almacenado y sigue siendo usable a medida que el corpus crece:

  • Paginado — 25 filas por página, con un rótulo "Showing X–Y of N" y controles Previous / Page / Next.
  • Columnas ordenables — haga clic en el encabezado Name, Format o Components para ordenar por él; haga clic de nuevo en el encabezado para invertir la dirección.
  • Filtro de formato — restrinja la lista a un formato (CycloneDX JSON/XML, SPDX JSON, SPDX 3.0 JSON, SPDX tag-value, Syft JSON o Unknown); un botón Reset borra los filtros mientras mantiene el orden actual.
  • Columna de severidad — una columna situada más a la derecha, después de Ingested, muestra la única severidad de hallazgo más alta de cada SBOM (Critical, High, Medium, Low o Negligible), o "—" cuando aún no tiene hallazgos, con un filtro de severidad correspondiente.
  • Búsqueda de texto completo — un cuadro de búsqueda, respaldado por un índice de texto completo tantivy, coincide con el nombre, el formato y la versión de especificación de un SBOM, así como con los nombres y las URL de paquete de los componentes que contiene, de modo que una consulta como log4j o openssl encuentra cada SBOM que incluye ese componente. La consulta tiene un límite de longitud y se analiza de forma permisiva.

Conjunto de analizadores

Cada herramienta es opcional en tiempo de ejecución y se detecta en PATH (sobrescriba el binario con SBA_TOOL_<NAME>_BIN). Los hallazgos nunca dependen de una sola herramienta.

HerramientaRol
syftNormalizador de SBOM / conversor a CycloneDX 1.6
grypeComparador de CVE
trivyEscáner de vulnerabilidades
osv-scannerConsultas a la base de datos OSV
bomberComparador de conjunto independiente
bomdriftDeriva de cadena de suministro / typosquat (SARIF)
inspektrEscáner de vulnerabilidades de SBOM (JSON)
shieldbomEscáner de CVE embebido/IoT offline (SARIF)
provenantLicencia / copyright / procedencia (ScanCode)

Las primeras ocho herramientas aportan hallazgos de vulnerabilidad con forma de CVE; provenant es diferente — informa la procedencia de licencia, copyright, titular y autor, que el auditor almacena y muestra como su propia forma de hallazgo (una sección "Licence & provenance" por ejecución, incluida en la exportación a Markdown) en lugar de descartarla.

Los escáneres no pueden leer todos los formatos directamente: bomber consume solo CycloneDX ≤ 1.6, y ninguno de los escáneres lee SPDX 3.0 JSON-LD. En ambos casos el auditor normaliza la entrada a CycloneDX mediante syft convert primero, y omite con una razón documentada cuando syft no está disponible en lugar de dejar que una herramienta informe cero paquetes. La base de datos de vulnerabilidades de grype se actualiza una vez por ejecución (fuera de banda) para que una obsolescencia rutinaria sea un escaneo nuevo, no uno fallido.

Enriquecimiento de vulnerabilidades

Tras el análisis, cada hallazgo con forma de CVE se enriquece con tres señales reales obtenidas de un servicio vulnlookup (por defecto https://vulnlookup.ndaal.eu):

  • EPSS — la puntuación de probabilidad de explotación y su percentil.
  • CISA-KEV — una marca que indica que el CVE es de explotación conocida.
  • nuclei — si existe una plantilla de exploit pública, y su severidad.

Cada hallazgo muestra sus valores KEV, Nuclei, EPSS y Source, donde Source enlaza de vuelta al registro de vulnlookup, y los hallazgos se ordenan de más urgente a menos: las entradas de explotación conocida (KEV) van primero, luego las que tienen el percentil EPSS más alto; los hallazgos sin enriquecimiento mantienen el orden en que los produjo el analizador. El enriquecimiento viaja a cada formato de exportación — SARIF 2.1 / 2.2, Markdown, ODT, DOCX, PDF y CSAF 2.1 / 2.2, donde CSAF lleva EPSS como métrica nativa y registra CISA-KEV y nuclei como notas — y el formulario de exportación ahora marca cada formato por defecto.

Configúrelo en Settings → Vulnerability enrichment: un interruptor de activación/desactivación (habilitado por defecto) y hasta tres fuentes vulnlookup, cada una con una URL base, un puerto TCP y un puerto QUIC (un puerto en blanco se trata como 443). Las fuentes 1 y 2 por defecto son el público https://vulnlookup.ndaal.eu en el puerto 443; la fuente 3 por defecto es un loopback https://127.0.0.1 en los puertos 8680 (TCP) / 8681 (QUIC) propios de este host, de modo que un vulnlookup co-ubicado es un respaldo funcional desde el principio. Las fuentes se prueban en orden — la primera es la primaria, las otras son respaldos.

Postura de seguridad

  • Transporte: solo HTTPS, TLS 1.3 (rustls + aws-lc-rs) con intercambio de claves post-cuántico (X25519MLKEM768) ofrecido primero. Certificado de desarrollo autofirmado, regenerado al arrancar; se admiten archivos PEM del operador.
  • Seguridad de memoria: escrito en Rust con #![forbid(unsafe_code)]; la política de lints deniega atajos que provocan pánico, aritmética no verificada e indexación no verificada en código de producción.
  • Confinamiento del sistema de archivos: toda la E/S de datos / importación / exportación está confinada por un manejador de capacidades cap-std (las clases de path-traversal, symlink y TOCTOU quedan cerradas). Los nombres de archivo almacenados se derivan del servidor, nunca los proporciona el cliente.
  • Cifrado de almacenamiento (opcional): XChaCha20-Poly1305 sella los bytes de SBOM almacenados y la salida bruta de las herramientas mientras están en disco (--encryption-key-file).
  • Endurecimiento web: cabeceras de respuesta de defensa en profundidad en cada respuesta, una Content-Security-Policy fijada por hash, comprobaciones de mismo origen en cada POST, y un límite de tamaño del cuerpo de la solicitud.
  • Sin telemetría, sin puertas traseras. Todo se ejecuta localmente. Cumple los criterios TeleTrusT "IT Security made in Germany / Europe".

Endurecimiento de este ciclo

  • Límite DoS de multipart — el analizador de subidas rechaza cualquier límite multipart más largo que los 70 caracteres del RFC 2046 y lo localiza con una búsqueda lineal bidireccional, cerrando una ruta de agotamiento de CPU O(cuerpo×límite).
  • Descifrado de datos almacenados con fallo cerrado — un blob cifrado indescifrable (clave incorrecta o manipulación) ahora genera un error grave en lugar de leerse como un documento vacío que reportaba "sin hallazgos".
  • Validación de CVSS — las puntuaciones base CVSS del analizador se limitan o rechazan cuando no son finitas o están fuera de [0, 10] antes de llegar a un CSAF o SARIF generado, y una fusión entre herramientas conserva la puntuación más alta.
  • Endurecimiento de claves TLS — --tls-key rechaza una clave RSA PKCS#1 (política no-RSA) y, en Unix, un archivo de clave legible por grupo o por todos.
  • Puerta de extensión de descarga de exportación — GET /export/download sirve solo nombres con una extensión reconocida de exportación o de archivo auxiliar de suma de verificación, de modo que un directorio de exportación mal configurado no pueda entregar un archivo del sistema.
  • Actualización de h2 (RUSTSEC-2026-0258) — la pila HTTP/2 incluida se actualiza a 0.4.18 por tramas DATA vacías ilimitadas; cargo audit está limpio.

Compilación y ejecución

Instale la versión publicada desde crates.io — cargo install la compila desde el código fuente, cargo binstall obtiene el binario precompilado desde la versión de GitLab:

root@kitploit:~
cargo install sbom-auditor     # build from source
cargo binstall sbom-auditor    # prebuilt GitLab-release binary

O compile directamente esta copia de trabajo (se requiere una cadena de herramientas Rust estable reciente):

root@kitploit:~
cargo build --release
./target/release/sbom-auditor

Luego abra https://127.0.0.1:8680 (el navegador advertirá una vez sobre el certificado autofirmado). La navegación superior ejecuta Home, Upload, Import, Export, Components, Tools, Settings, seguida del conmutador de tema claro/oscuro, el menú de idioma y el menú de información a la derecha. La interfaz se distribuye en 49 idiomas — inglés, alemán y francés más todos los idiomas oficiales europeos, noruego nynorsk, los tres idiomas sami oficiales en Noruega (sami septentrional, lule y meridional), y tres adiciones asiáticas — chino (中文), hindi (हिन्दी) y urdu (اردو, de derecha a izquierda) — seleccionables desde el menú de idioma (y recordados por navegador). La sección Supported GUI languages a continuación tiene el desglose completo.

Opciones comunes

root@kitploit:~
--port <PORT>              Listen port (default 8680, env SBA_PORT)
--bind <ADDR>              Bind address (default 127.0.0.1, env SBA_BIND)
--data-dir <DIR>           Data directory (SQLite store + stored SBOMs)
--db <PATH>                Database path (default <data-dir>/auditor.db)
--encryption-key-file <F>  Enable storage encryption with this 32-byte key
--tls-cert <F> --tls-key <F>  Operator certificate instead of self-signed
--allow-non-loopback       Permit binding a non-loopback address
--check-update             Check gitlab.com for a newer release, then exit
--self-update              Download + verify + install the latest release
--help                     Full option list

Puertos: 8680 sirve la API y la interfaz web sobre TLS 1.3 (HTTP/1.1 + HTTP/2); 8681 está reservado para un futuro listener QUIC / HTTP-3 (aún no implementado).

Idiomas de GUI admitidos

La interfaz web se distribuye en 49 idiomas. Inglés, alemán y francés son el conjunto mantenido y de autoría humana y están fijados al frente del conmutador de idiomas; todos los demás idiomas siguen en orden alfabético por su nombre en inglés.

Tres idiomas asiáticos se incorporaron en este ciclo: chino / 中文 (mandarín, simplificado), hindi / हिन्दी y urdu / اردو. El urdu es de derecha a izquierda — la aplicación renderiza <html dir="rtl"> mientras está seleccionado.

Todos los idiomas más allá de los tres fijados están traducidos automáticamente y pendientes de revisión nativa; cualquier cadena que falte en una traducción recurre automáticamente al inglés. El conmutador en la página lista cada idioma por su propio endónimo de nombre nativo y es la lista autoritativa — consúltelo en lugar de una enumeración aquí.

Esto se aplica solo a la interfaz web. Los informes generados (SARIF, CSAF y la exportación a PDF) y la API HTTP siguen siendo solo en inglés.

Pruebas

root@kitploit:~
cargo nextest run          # unit + integration suite
cargo test --doc           # doctests

Arnés adicionales: loom-harness/ (modelos de permutación de concurrencia), test/bruno/ (colección de API), test/playwright/ (E2E de navegador), test/example-corpus/ (API + GUI subida→análisis→exportación sobre el corpus de SBOM example/ incluido) y loadtest/ (escenarios de carga Goose). tests/scripts/test_examples_upload_via_api.sh (con un .bats hermano) sube cada SBOM de example/ contra una instancia en ejecución y verifica que cada uno produzca un SARIF, un CSAF y un PDF mediante el ZIP transmitido de POST /export/download; TLS se verifica para hosts no loopback y se omite para el certificado autofirmado de localhost, y --base-url apunta a cualquier instancia (por ejemplo https://sbom.ndaal.eu/). La suite test/magnitude/ (Magnitude, *.mag.ts) añade comprobaciones visuales impulsadas por IA del orden de la barra de navegación y los valores predeterminados de exportación más Start download; complementa las pruebas deterministas, necesita un LLM para ejecutarse y no forma parte de la puerta de CI bloqueante. El directorio example/ contiene 651 SBOM de prueba públicos (Git LFS); consulte example/PROVENANCE.md. Consulte documentation/structure.md para el mapa de módulos y el flujo de solicitudes.

Documentación

  • REFERENCE.md — referencia de CLI, entorno, rutas, ajustes y formatos de exportación
  • documentation/structure.md — mapa de arquitectura
  • documentation/User_Guide.md — guía del usuario final
  • documentation/Administrator_Guide.md — despliegue y operaciones
  • documentation/arc42/en/ — vistas de arquitectura arc42
  • documentation/compliance/CSI_2026_cisa_sbom_minimum_elements_508c.md — evaluación de conformidad con los CISA 2026 SBOM Minimum Elements
  • CHANGELOG.md — historial de versiones

Licencia

El código está licenciado bajo Apache-2.0. Los recursos de interfaz incluidos llevan sus propias licencias (Bootstrap MIT, htmx 0BSD, Roboto OFL-1.1); consulte los archivos auxiliares .license por archivo bajo src/static/.

Descargar herramienta