Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
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
bomber — Escanea las Listas de Materiales de Software (SBOM) en busca de vulnerabilidades de seguridad | Kitploit
Herramientas/GitHubGitHub/devops-kung-fu/bomber
Escáneres de VulnerabilidadesDevSecOpsSeguridad de Cadena de Suministro
GitHubdevops-kung-fu/bomber

bomber

Escanea las Listas de Materiales de Software (SBOM) en busca de vulnerabilidades de seguridad

Ver RepositorioSitio web
62456hace 6 mesesRevisado por Kitploit

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

bomber

GitHub release (latest by date) Go Report Card CII Best Practices codecov

bomber es una aplicación que escanea SBOMs en busca de vulnerabilidades de seguridad.

Resumen

Entonces le ha pedido a un proveedor una Lista de Materiales de Software (SBOM) para uno de sus productos de código cerrado, y le proporcionaron una en un archivo JSON... ¿y ahora qué?

Lo primero que querrá hacer es ver si alguno de los componentes listados en la SBOM tiene vulnerabilidades de seguridad, y qué tipo de licencias tienen estos componentes. Esto le ayudará a identificar qué tipo de riesgo asumirá al usar el producto.

Encontrar vulnerabilidades de seguridad e información de licencias para los componentes identificados en una SBOM es exactamente para lo que está diseñado bomber. bomber puede leer cualquier formato CycloneDX basado en JSON o XML, o una SBOM formateada en JSON de SPDX o Syft, y le dirá rápidamente si hay vulnerabilidades.

Tabla de Contenidos

  • Código abierto vs. Código cerrado
  • Propósito
  • Formatos de SBOM compatibles
  • Proveedores
    • Compatibilidad de Proveedores
    • Documentación de Proveedores
  • Instalación
    • Mac
    • Linux
  • Usando bomber
    • Escaneo de una sola SBOM
    • Escaneo de una carpeta completa
  • Formatos de Salida
    • Salida HTML
    • Salida JSON
    • Salida Markdown
  • Ignorar Vulnerabilidades
  • Filtrar Salida
  • Enriquecimiento de Datos
    • Sistema de Puntuación de Predicción de Explotación (EPSS)
  • Cosas Avanzadas
    • Escaneo de SBOMs desde STDIN
    • Variables de Entorno
  • Funciones Experimentales
    • Códigos de Retorno de Mayor Severidad (Experimental)
    • Salida de Informe HTML Enriquecido con IA de OpenAI
  • Experimentando
  • Notas
  • Contribuir
  • Lista de Materiales de Software
  • Patrocinadores
  • Créditos

Código abierto vs. Código cerrado

El software puede ser de código abierto o cerrado. Puede considerar los componentes de terceros que encontrará en GitHub, o cualquier repositorio de código fuente público, como código abierto. Técnicamente, el software que crea internamente en su propia empresa también es código abierto (no es público, pero sus equipos internos pueden verlo). El software de código cerrado también puede ser interno, pero generalmente es software que compra a proveedores externos.

Las empresas pueden usar herramientas SCA proporcionadas por proveedores como GitHub, Sonatype, Snyk, etc., para escanear cualquier tipo de código abierto y proporcionar datos de vulnerabilidades, e incluso generar SBOMs en algunos casos. Lo que no pueden hacer (todavía...) es escanear software de código cerrado al que no tienen visibilidad. Aquí es donde entran en juego las SBOMs y bomber. Las SBOMs proporcionan la composición del software al que no puede acceder, y bomber determina si algo en la SBOM tiene vulnerabilidades.

Propósito

Creamos bomber para escanear las SBOMs de código cerrado que se proporcionan cuando las recibe de los proveedores. También puede escanear SBOMs de código abierto y, técnicamente, podría usar bomber como una herramienta SCA de código abierto si lo desea.

Formatos de SBOM compatibles

Actualmente existen bastantes formatos de SBOM. bomber admite los siguientes:

  • SPDX
  • CycloneDX
  • Syft

Proveedores

bomber admite múltiples fuentes de información sobre vulnerabilidades. A estas las llamamos proveedores. Actualmente, bomber usa OSV como proveedor predeterminado, pero también puede usar la Base de Datos de Asesorías de GitHub, el Índice OSS de Sonatype o Snyk.

En este momento, tenga en cuenta que OSV es gratuito y no requiere credenciales para su uso, Índice OSS de Sonatype es gratuito pero requiere registrarse y obtener un token, y el soporte de Snyk requiere una licencia de Snyk.

Además de los datos que bomber recopila de los Proveedores, también enriquece los datos de vulnerabilidades con información adicional, como probabilidades de explotación.

Compatibilidad de Proveedores

Tenga en cuenta que cada proveedor admite diferentes ecosistemas, por lo que si no ve vulnerabilidades en uno, pruebe con otro. Un ecosistema es simplemente el gestor de paquetes o el tipo de paquete. Los ejemplos incluyen rpm, npm, gems, etc. Es importante comprender que cada proveedor puede reportar diferentes vulnerabilidades. En caso de duda, consulte varios de ellos.

Si bomber no encuentra vulnerabilidades, no significa que no las haya. Solo significa que el proveedor utilizado no detectó ninguna, o que no admite el ecosistema. Algunos proveedores tienen vulnerabilidades que no devuelven información de Severidad. En este caso, la Severidad se mostrará como "INDEFINIDA".

Documentación de Proveedores

La documentación de los proveedores para bomber se puede encontrar:

  • OSV
  • Base de Datos de Asesorías de GitHub
  • OSSINDEX
  • Snyk

Instalación

Mac

Puede usar Homebrew para instalar bomber con el siguiente comando:

root@kitploit:~
brew tap devops-kung-fu/homebrew-tap
brew install devops-kung-fu/homebrew-tap/bomber

Si no tiene Homebrew, aún puede descargar la última versión (ej: bomber_0.4.1_darwin_all.tar.gz), extraer los archivos del archivo comprimido y usar el binario bomber.

Si lo desea, puede mover el binario bomber a su directorio /usr/local/bin o a cualquier lugar en su PATH.

Linux

Para instalar bomber, descargue la última versión para su plataforma e instálela localmente. Por ejemplo, para instalar bomber en Ubuntu:

root@kitploit:~
dpkg -i bomber_0.5.0_linux_arm64.deb

Usando bomber

Puede escanear una carpeta completa de SBOMs o una SBOM individual con bomber. A bomber no le importa si tiene múltiples formatos en una sola carpeta. Lo ordenará todo por usted.

Tenga en cuenta que la salida predeterminada de bomber es STDOUT. Las opciones para generar salida en HTML o JSON se describen más adelante en este documento.

Escaneo de una sola SBOM

root@kitploit:~
# Usando OSV (el proveedor predeterminado) que no requiere credenciales
bomber scan cyclonedx.sbom.json

# Usando un proveedor que requiere credenciales (ossindex)
bomber scan --provider=xxx --username=xxx --token=xxx [sbom.json]

Si el proveedor encuentra vulnerabilidades, verá una salida similar a la siguiente:

Si el proveedor no devuelve vulnerabilidades, verá un mensaje indicando que no se encontraron vulnerabilidades.

NOTA: El hecho de que no se hayan encontrado vulnerabilidades usando un proveedor específico no significa que no las haya. Por favor, pruebe los otros proveedores que admite bomber.

Escaneo de una carpeta completa

Esto es útil cuando recibe múltiples SBOMs de un proveedor para el mismo producto. O tal vez quiera descubrir qué vulnerabilidades tiene en toda su organización. Un escaneo de carpeta encontrará todos los componentes, los deduplicará y luego los escaneará en busca de vulnerabilidades.

root@kitploit:~
# Escanear una carpeta de SBOMs (el siguiente comando escaneará una carpeta llamada "sboms" en su directorio actual)
bomber scan --provider=xxx --username=xxx --token=xxx ./sboms

Verá un resultado similar al que proporciona un escaneo de una sola SBOM.

Formatos de Salida

bomber genera datos en tres formatos útiles. Por defecto, la salida se muestra en la línea de comandos. Para informes mejorados, puede generar salida a HTML usando la bandera --output=html. Para generar salida a JSON, utilice la bandera --output=json. Use especificación de salida separada por comas para obtener salida en múltiples formatos --output=html,stdout,json.

Salida HTML

Si desea un informe legible con información detallada de vulnerabilidades, puede usar la bandera --output para guardar un informe en un archivo HTML.

Ejemplo de comando:

root@kitploit:~
bomber scan bad-bom.json --output=html

Esto guardará un archivo en su carpeta actual con el formato "YYYY-MM-DD-HH-MM-SS-bomber-results.html". Si abre este archivo en un navegador web, verá una salida como la siguiente:

Salida JSON

bomber puede generar datos de vulnerabilidades en formato JSON usando la bandera --output. La salida predeterminada es a STDOUT. Hay mucha más información en la salida JSON que la que se muestra en la terminal. Podrá ver una descripción del paquete y su propósito, el nombre de la vulnerabilidad, un resumen de la vulnerabilidad, y más.

Ejemplo de comando:

root@kitploit:~
bomber scan bad-bom.json --output=json > filename.json

Salida Markdown

bomber también admite salida en formato Markdown. Es muy similar a la salida HTML, pero delega el estilo al renderizador de Markdown, como GitHub. La salida se guarda en un archivo con el formato "YYYY-MM-DD-HH-MM-SS-bomber-results.md".

Ejemplo de comando:

root@kitploit:~
bomber scan bad-bom.json --output=md

Ignorar Vulnerabilidades

Si es necesario, puede usar la bandera --ignore-file para cargar una lista de CVEs que se ignorarán en la salida de vulnerabilidades. Esta lista debe estar en un formato específico donde cada CVE a ignorar se ingresa en una línea separada, similar a lo siguiente:

root@kitploit:~
CVE-2022-31163
CVE-2022-23520

Hay un archivo de ejemplo bomber.ignore aquí

Para usar el archivo bomber.ignore, use la sintaxis de la siguiente manera:

root@kitploit:~
bomber --ignore-file=bomber.ignore scan bom.json

Filtrar Salida

Puede establecer el nivel de severidad con la bandera --severity para devolver vulnerabilidades de severidades específicas. Por ejemplo, si establece --severity=moderate, solo se devolverán las vulnerabilidades con una severidad de MODERATE o superior.

Por ejemplo, el siguiente comando devolverá solo vulnerabilidades altas y críticas.

root@kitploit:~
bomber --severity=high scan bom.json

Enriquecimiento de Datos

bomber tiene la capacidad de enriquecer los datos de vulnerabilidades obtenidos de los Proveedores. El primer "enriquecedor" que hemos implementado es para EPSS.

NOTA: La puntuación EPSS ya no está activada de forma predeterminada en bomber 0.5.0 y superiores. Para mostrar puntuaciones EPSS, asegúrese de usar la bandera --enrich=epss.

Sistema de Puntuación de Predicción de Explotación (EPSS)

EPSS significa Sistema de Puntuación de Predicción de Explotación y es un marco que predice la probabilidad de que una vulnerabilidad sea explotada. EPSS se usa a menudo para ayudar a identificar vulnerabilidades de alto riesgo para priorizar su remediación.

EPSS usa un porcentaje para la probabilidad. Por lo tanto, si ve 94, la puntuación indica que esa vulnerabilidad tiene un 94% de probabilidad de explotación. Y es lógico que una vulnerabilidad con una puntuación como 94 merezca atención inmediata, mientras que una vulnerabilidad con una puntuación de, digamos, 20 merece una prioridad más baja.

Cosas Avanzadas

Si lo desea, puede establecer dos variables de entorno para almacenar sus credenciales y no tener que escribirlas en la línea de comandos. Consulte la información sobre Variables de Entorno más adelante en este README.

Escaneo de SBOMs desde STDIN

Si está usando bomber en sus pipelines de CI/CD, puede hacer un comodo todo en uno con Syft para generar y escanear una SBOM en busca de vulnerabilidades. Para hacer esto, puede usar un comando como el siguiente:

root@kitploit:~
# Asegúrese de incluir el carácter - al final del comando. Esto indica a bomber que lea desde STDIN
syft packages . -o cyclonedx-json | bomber scan --provider ossindex --output json -

Este comando crea una SBOM, la envía a bomber y genera resultados en formato JSON.

Variables de Entorno

Si no quiere ingresar credenciales todo el tiempo, puede agregar lo siguiente a su .bashrc o .bash_profile

root@kitploit:~
export BOMBER_PROVIDER_USERNAME={{su nombre de usuario de OSS Index}}
export BOMBER_PROVIDER_TOKEN={{su token de API de OSS Index}}

Funciones Experimentales

Códigos de Retorno de Mayor Severidad (Experimental)

Usando la bandera --exitcode, se devolverá un código de salida que representa la mayor severidad de vulnerabilidad encontrada. Sin esta bandera, puede esperar un código de salida de 0 para éxito, o 1 si se encontró un error.

Suponiendo que no hay error, los siguientes valores serán devueltos por bomber cuando se use --exitcode.

SeveridadCódigo de Retorno
NO ESPECIFICADA (Este es un estado donde el proveedor nos da algo extraño o sin información)10
BAJA11
MODERADA

Salida de Informe HTML Enriquecido con IA de OpenAI

bomber ahora contiene una función experimental que enriquece la descripción de las vulnerabilidades en una salida html. Esta función toma una vulnerabilidad y cambia la descripción a algo más comprensible para un usuario no técnico.

NOTA: Esta función se encuentra en un estado alfa importante en este momento. Es extremadamente lenta y la salida no está muy bien formateada.

Para usar esta función, necesitará proporcionar una clave de API de OpenAI. Puede pasar esta clave en la CLI usando la bandera --openai-api-key={{su clave de API de OpenAI}} o agregar una variable de entorno:

root@kitploit:~
export OPENAI_API_KEY={{su clave de API de OpenAI}}

Después de configurar su clave de API de OpenAI, puede establecer la bandera de salida de la siguiente manera:

root@kitploit:~
bomber scan --output ai [sbom.json]

Experimentando

Si quiere probar bomber, encontrará una selección de SBOMs de prueba en la carpeta test.

Notas

  • Es bastante raro ver SBOMs con información de licencias. La mayoría de las veces, los generadores como Syft necesitan una bandera como --license. Si necesita información de licencias, asegúrese de solicitarla junto con la SBOM.
  • OSV. Es genial, pero la API también es inestable. Tienen un endpoint por lotes que sería mucho más rápido para obtener información, pero al momento de escribir esto no funciona como se esperaba. bomber necesita enviar un PURL a la vez para obtener vulnerabilidades, por lo que en una SBOM grande tomará algo de tiempo. Estaremos atentos a esto.

Contribuir

Si desea contribuir al desarrollo de bomber, consulte el archivo CONTRIBUTING.md en este repositorio. Por favor, lea el archivo CODE_OF_CONDUCT.md antes de contribuir.

Lista de Materiales de Software

bomber usa Syft para generar una Lista de Materiales de Software cada vez que un desarrollador envía código a este repositorio (siempre que se esté usando Hookz y se haya inicializado en el directorio de trabajo). Más información sobre CycloneDX está disponible aquí.

La SBOM CycloneDX actual de bomber está disponible aquí.

Patrocinadores

Gracias a los patrocinadores y seguidores de bomber

Créditos

Un gran agradecimiento a nuestros amigos de ZERO por el logotipo de bomber.

Gracias a Sonatype por proporcionar una herramienta genial como el Índice OSS de Sonatype.

Muchas gracias a nuestros amigos y compañeros contribuyentes de bomber en Snyk por crear un proveedor y programar el procesamiento de una SBOM desde STDIN. Son geniales.

La descripción de EPSS proviene del equipo de Nucleus. ¡Gracias!

Descargar herramienta
12
ALTA13
CRÍTICA14