Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
Outils/GitHubGitHub/devops-kung-fu/bomber
Scanners de VulnérabilitésDevSecOpsSécurité de la Chaîne Logistique
GitHubdevops-kung-fu/bomber

bomber

Analyse les Software Bills of Materials (SBOM) pour les vulnérabilités de sécurité

Voir le dépôtSite web
62456il y a 6 moisVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

bomber

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

bomber est une application qui analyse les SBOM pour détecter les vulnérabilités de sécurité.

Aperçu

Vous avez donc demandé à un fournisseur une nomenclature logicielle (SBOM) pour l'un de ses produits propriétaires, et il vous en a fourni une dans un fichier JSON… et maintenant ?

La première chose à faire est de vérifier si certains des composants listés dans le SBOM présentent des vulnérabilités de sécurité, et quels types de licences ces composants ont. Cela vous aidera à identifier le risque que vous prenez en utilisant ce produit.

Trouver les vulnérabilités de sécurité et les informations de licence pour les composants identifiés dans un SBOM, c'est exactement ce que bomber est conçu pour faire. bomber peut lire tout format JSON ou XML basé sur CycloneDX, ou un SBOM au format JSON SPDX ou Syft, et vous dire assez rapidement s'il y a des vulnérabilités.

Table des matières

  • Open Source vs Closed Source
  • Objectif
  • Formats SBOM pris en charge
  • Fournisseurs
    • Support des fournisseurs
    • Documentation des fournisseurs
  • Installation
    • Mac
    • Linux
  • Utilisation de bomber
    • Analyse d'un seul SBOM
    • Analyse de tout un dossier
  • Formats de sortie
    • Sortie HTML
    • Sortie JSON
    • Sortie Markdown
  • Ignorer des vulnérabilités
  • Filtrage de la sortie
  • Enrichissement des données
    • Exploit Prediction Scoring System (EPSS)
  • Fonctionnalités avancées
    • Analyse des SBOM depuis STDIN
    • Variables d'environnement
  • Fonctionnalités expérimentales
    • Codes de retour basés sur la sévérité maximale (expérimental)
    • Rapport HTML enrichi par l'IA OpenAI (expérimental)
  • Pour s'amuser
  • Remarques
  • Contribuer
  • Nomenclature logicielle
  • Sponsors
  • Crédits

Open Source vs Closed Source

Le logiciel peut être open source ou propriétaire. Vous pouvez considérer les composants tiers que vous trouvez sur GitHub ou tout dépôt public comme open source. Techniquement, le logiciel que vous créez en interne dans votre entreprise est aussi open source – il n'est pas public, mais vos équipes internes peuvent le voir. Le logiciel propriétaire peut aussi être interne, mais il s'agit généralement de logiciels que vous achetez auprès de fournisseurs externes.

Les entreprises peuvent utiliser des outils SCA fournis par des vendeurs tels que GitHub, Sonatype, Snyk, etc., pour analyser tout type d'open source et fournir des données de vulnérabilité – et même générer des SBOM dans certains cas. Ce qu'ils ne peuvent pas faire (pour l'instant…) c'est analyser un logiciel propriétaire auquel vous n'avez pas accès. C'est là que les SBOM et bomber entrent en jeu. Les SBOM fournissent la composition de logiciels auxquels vous ne pouvez pas accéder, et bomber détermine si quelque chose dans le SBOM présente des vulnérabilités.

Objectif

Nous avons créé bomber pour analyser les SBOM propriétaires que vous recevez de vos fournisseurs. Il peut aussi analyser les SBOM open source, et techniquement vous pourriez utiliser bomber comme un outil SCA open source si vous le souhaitez.

Formats SBOM pris en charge

Il existe plusieurs formats SBOM aujourd'hui. bomber supporte les suivants :

  • SPDX
  • CycloneDX
  • Syft

Fournisseurs

bomber supporte plusieurs sources d'informations sur les vulnérabilités. Nous appelons ces sources fournisseurs. Actuellement, bomber utilise OSV comme fournisseur par défaut, mais vous pouvez aussi utiliser la Base de données d'avis GitHub, l'Index OSS de Sonatype, ou Snyk.

Veuillez noter qu'à l'heure actuelle, OSV est gratuit et ne nécessite aucun identifiant, l'Index OSS de Sonatype est gratuit mais nécessite de s'inscrire et d'obtenir un jeton, et le support de Snyk nécessite une licence Snyk.

En plus des données que bomber collecte auprès des fournisseurs, il enrichit également les données de vulnérabilité avec des informations supplémentaires comme les probabilités d'exploitation.

Support des fournisseurs

Veuillez noter que chaque fournisseur supporte des écosystèmes différents, donc si vous ne voyez aucune vulnérabilité avec l'un, essayez un autre. Un écosystème est simplement le gestionnaire de paquets ou le type de paquet. Par exemple : rpm, npm, gems, etc. Il est important de comprendre que chaque fournisseur peut signaler des vulnérabilités différentes. En cas de doute, regardez-en plusieurs.

Si bomber ne trouve aucune vulnérabilité, cela ne signifie pas qu'il n'y en a pas. Cela signifie simplement que le fournisseur utilisé n'en a pas détecté, ou qu'il ne supporte pas l'écosystème. Certains fournisseurs renvoient des vulnérabilités sans information de sévérité. Dans ce cas, la sévérité sera indiquée comme "UNDEFINED".

Documentation des fournisseurs

La documentation des fournisseurs pour bomber se trouve ici :

  • OSV
  • Base de données d'avis GitHub
  • OSSINDEX
  • Snyk

Installation

Mac

Vous pouvez utiliser Homebrew pour installer bomber en utilisant les commandes suivantes :

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

Si vous n'avez pas Homebrew, vous pouvez toujours télécharger la dernière version (ex : bomber_0.4.1_darwin_all.tar.gz), extraire les fichiers de l'archive et utiliser le binaire bomber.

Si vous le souhaitez, vous pouvez déplacer le binaire bomber dans votre répertoire /usr/local/bin ou n'importe où dans votre PATH.

Linux

Pour installer bomber, téléchargez la dernière version pour votre plateforme et installez-la localement. Par exemple, installez bomber sur Ubuntu :

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

Utilisation de bomber

Vous pouvez analyser soit un dossier complet de SBOM, soit un SBOM individuel avec bomber. bomber ne se soucie pas si vous avez plusieurs formats dans un seul dossier. Il triera tout pour vous.

Notez que la sortie par défaut de bomber se fait sur STDOUT. Les options pour sortir en HTML ou JSON sont décrites plus loin dans ce document.

Analyse d'un seul SBOM

root@kitploit:~
# Utilisation d'OSV (le fournisseur par défaut) qui ne nécessite aucun identifiant
bomber scan cyclonedx.sbom.json

# Utilisation d'un fournisseur nécessitant des identifiants (ossindex)
bomber scan --provider=xxx --username=xxx --token=xxx [sbom.json]

Si le fournisseur trouve des vulnérabilités, vous verrez une sortie similaire à celle-ci :

Si le fournisseur ne renvoie aucune vulnérabilité, vous verrez un message indiquant qu'aucune vulnérabilité n'a été trouvée.

REMARQUE : Le fait qu'aucune vulnérabilité n'ait été trouvée avec un fournisseur donné ne signifie pas qu'il n'y a pas de vulnérabilités. Veuillez essayer les autres fournisseurs supportés par bomber.

Analyse de tout un dossier

C'est utile lorsque vous recevez plusieurs SBOM d'un fournisseur pour le même produit. Ou peut-être voulez-vous connaître les vulnérabilités présentes dans toute votre organisation. Une analyse de dossier trouvera tous les composants, les dédoublonnera, puis les analysera pour détecter les vulnérabilités.

root@kitploit:~
# analyse d'un dossier de SBOM (la commande suivante analysera un dossier nommé "sboms" dans votre répertoire courant)
bomber scan --provider=xxx --username=xxx --token=xxx ./sboms

Vous obtiendrez un résultat similaire à celui d'une analyse d'un seul SBOM.

Formats de sortie

bomber produit des données dans trois formats utiles. Par défaut, la sortie est affichée dans la ligne de commande. Pour des rapports améliorés, vous pouvez sortir en HTML en utilisant le flag --output=html. Pour sortir en JSON, utilisez le flag --output=json. Utilisez une spécification de sortie séparée par des virgules pour obtenir une sortie dans plusieurs formats : --output=html,stdout,json.

Sortie HTML

Si vous souhaitez un rapport lisible généré avec des informations détaillées sur les vulnérabilités, vous pouvez utiliser le flag --output pour enregistrer un rapport dans un fichier HTML.

Exemple de commande :

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

Cela enregistrera un fichier dans votre dossier courant au format "YYYY-MM-DD-HH-MM-SS-bomber-results.html". Si vous ouvrez ce fichier dans un navigateur web, vous verrez une sortie comme celle-ci :

Sortie JSON

bomber peut produire des données de vulnérabilité au format JSON en utilisant le flag --output. La sortie par défaut se fait sur STDOUT. Il y a beaucoup plus d'informations dans la sortie JSON que ce qui est affiché dans le terminal. Vous pourrez voir une description du paquet et son objectif, le nom de la vulnérabilité, un résumé de la vulnérabilité, et plus encore.

Exemple de commande :

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

Sortie Markdown

bomber supporte également la sortie au format Markdown. C'est très similaire à la sortie HTML, mais laisse le style au rendu Markdown, comme celui de GitHub. La sortie est enregistrée dans un fichier au format "YYYY-MM-DD-HH-MM-SS-bomber-results.md".

Exemple de commande :

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

Ignorer des vulnérabilités

Si nécessaire, vous pouvez utiliser le flag --ignore-file pour charger une liste de CVE à ignorer dans la sortie des vulnérabilités. Cette liste doit être dans un format spécifique où chaque CVE à ignorer est inscrit sur une ligne séparée, comme suit :

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

Un exemple de fichier bomber.ignore est disponible ici

Pour utiliser le fichier bomber.ignore, utilisez la syntaxe suivante :

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

Filtrage de la sortie

Vous pouvez définir le niveau de sévérité avec le flag --severity afin de ne retourner que certaines sévérités de vulnérabilité. Par exemple, si vous définissez --severity=moderate, seules les vulnérabilités de sévérité MODERATE ou supérieure seront retournées.

Par exemple, la commande suivante ne retournera que les vulnérabilités haute et critique.

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

Enrichissement des données

bomber a la capacité d'enrichir les données de vulnérabilité obtenues auprès des fournisseurs. Le premier "enrichisseur" que nous avons implémenté est pour EPSS

REMARQUE : Le score EPSS n'est plus par défaut dans bomber 0.5.0 et versions ultérieures. Pour afficher les scores EPSS, assurez-vous d'utiliser le flag --enrich=epss.

Exploit Prediction Scoring System (EPSS)

EPSS signifie Exploit Prediction Scoring System et est un framework qui prédit la probabilité qu'une vulnérabilité soit exploitée. EPSS est souvent utilisé pour aider à identifier les vulnérabilités à haut risque à prioriser pour la correction.

EPSS utilise un pourcentage pour la probabilité. Donc si vous voyez 94, le score signifie que la vulnérabilité a une probabilité d'exploitation de 94%. Et il est logique qu'une vulnérabilité avec un score comme 94 mérite une attention immédiate, tandis qu'une vulnérabilité avec un score de, disons, 20 mérite une priorité plus faible.

Fonctionnalités avancées

Si vous le souhaitez, vous pouvez définir deux variables d'environnement pour stocker vos identifiants et ne pas avoir à les taper sur la ligne de commande. Consultez les informations sur les Variables d'environnement plus loin dans ce README.

Analyse des SBOM depuis STDIN

Si vous utilisez bomber dans vos pipelines CI/CD, vous pouvez faire une commande tout-en-un avec Syft pour générer et analyser un SBOM à la recherche de vulnérabilités. Pour ce faire, vous pouvez utiliser une commande de ce type :

root@kitploit:~
# Assurez-vous d'inclure le caractère - à la fin de la commande. Cela déclenche bomber pour lire depuis STDIN
syft packages . -o cyclonedx-json | bomber scan --provider ossindex --output json -

Cette commande crée un SBOM, le pipe dans bomber et génère les résultats au format JSON.

Variables d'environnement

Si vous ne voulez pas entrer d'identifiants à chaque fois, vous pouvez ajouter ce qui suit à votre .bashrc ou .bash_profile

root@kitploit:~
export BOMBER_PROVIDER_USERNAME={{votre nom d'utilisateur OSS Index}}
export BOMBER_PROVIDER_TOKEN={{votre jeton API OSS Index}}

Fonctionnalités expérimentales

Codes de retour basés sur la sévérité maximale (expérimental)

L'utilisation du flag --exitcode renverra un code de retour représentant la sévérité la plus élevée des vulnérabilités trouvées. Sans ce flag, vous pouvez vous attendre à un code de retour de 0 pour le succès, ou 1 en cas d'erreur.

En supposant qu'il n'y a pas d'erreur, les valeurs suivantes seront renvoyées par bomber avec --exitcode

SévéritéCode de retour
NON SPÉCIFIÉ (état où le fournisseur nous donne quelque chose de bizarre, ou aucune info)10
FAIBLE11
MODÉRÉE

Rapport HTML enrichi par l'IA OpenAI (expérimental)

bomber contient désormais une fonctionnalité expérimentale qui enrichit la description des vulnérabilités dans une sortie html. Cette fonctionnalité prend une vulnérabilité et modifie la description en quelque chose de plus compréhensible pour un utilisateur non technique.

REMARQUE : Cette fonctionnalité est en état alpha majeur à l'heure actuelle. Elle est extrêmement lente et la sortie n'est pas très bien formatée.

Pour utiliser cette fonctionnalité, vous devrez fournir une clé API OpenAI. Vous pouvez passer cette clé dans le CLI en utilisant --openai-api-key={{votre clé API OpenAI}} ou ajouter une variable d'environnement :

root@kitploit:~
export OPENAI_API_KEY={{votre clé API OpenAI}}

Après avoir défini votre clé API OpenAI, vous pouvez définir le flag de sortie comme suit :

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

Pour s'amuser

Si vous voulez essayer bomber, vous trouverez une sélection de SBOM de test dans le dossier test.

Remarques

  • Il est assez rare de voir des SBOM avec des informations de licence. La plupart du temps, les générateurs comme Syft nécessitent un flag comme --license. Si vous avez besoin d'informations de licence, assurez-vous de les demander avec le SBOM.
  • OSV. C'est génial, mais l'API est aussi capricieuse. Ils ont un endpoint batch qui rendrait le retour d'informations beaucoup plus rapide, mais au moment de la rédaction, il ne fonctionne pas comme prévu. bomber doit envoyer un PURL à la fois pour obtenir les vulnérabilités, donc pour un gros SBOM, cela prendra du temps. Nous surveillerons cela.

Contribuer

Si vous souhaitez contribuer au développement de bomber, veuillez vous référer au fichier CONTRIBUTING.md dans ce dépôt. Veuillez lire le fichier CODE_OF_CONDUCT.md avant de contribuer.

Nomenclature logicielle

bomber utilise Syft pour générer une nomenclature logicielle à chaque fois qu'un développeur soumet du code à ce dépôt (tant que Hookz est utilisé et initialisé dans le répertoire de travail). Plus d'informations sur CycloneDX sont disponibles ici.

Le SBOM CycloneDX actuel pour bomber est disponible ici.

Sponsors

Merci aux sponsors et soutiens de bomber

Crédits

Un grand merci à nos amis de ZERO pour le logo de bomber.

Merci à Sonatype pour avoir fourni un outil génial comme l'Index OSS de Sonatype.

Un grand merci à nos amis et collègues contributeurs de bomber chez Snyk pour avoir créé un fournisseur et codé le traitement d'un SBOM depuis STDIN. Vous êtes géniaux.

La description d'EPSS provient de l'équipe de Nucleus. Merci !

Télécharger l’outil
12
HAUTE13
CRITIQUE14