Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Soumettre
OutilsExploitsBlog
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
ndaal_public_SBOM_Auditor — Application web hors ligne à binaire unique qui ingère les SBOM CycloneDX, SPDX et syft, exécute un ensemble de scanners CVE, enrichit les résultats avec EPSS, CISA-KEV et nuclei, et exporte en SARIF, CSAF et PDF. | Kitploit
Outils/GitLabGitLab/vpierre/ndaal_public_sbom_auditor
Outils DéfensifsGestion des Indicateurs de Compromission (IOC)Analyse StatiqueScanners de VulnérabilitésAnalyse des VulnérabilitésAudit de ConfigurationDevSecOpsUtilitaires et Frameworks
Renseignement sur les Menaces
Sécurité de la Chaîne Logistique
GitLabvpierre/ndaal_public_sbom_auditor

ndaal_public_SBOM_Auditor

Application web hors ligne à binaire unique qui ingère les SBOM CycloneDX, SPDX et syft, exécute un ensemble de scanners CVE, enrichit les résultats avec EPSS, CISA-KEV et nuclei, et exporte en SARIF, CSAF et PDF.

Voir le dépôtSite web
43il y a 1 jourPas encore vérifié

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

ndaal SBOM Auditor

Une application web hors ligne à binaire unique pour analyser des fichiers SBOM (Software Bill of Materials). Importez un SBOM ou un dossier de SBOM, analysez chacun avec un ensemble d'outils indépendants, examinez les résultats normalisés dans une interface locale unique et exportez le résultat dans huit formats. Aucune installation, aucun accès réseau, aucune télémétrie.

Traductions : Deutsch · Français

Ce qu'il fait

  1. Ingestion — importez un SBOM dans le navigateur, ou importez tous les SBOM d'un dossier configurable. Les formats CycloneDX (JSON/XML), SPDX (JSON/tag-value et 3.0 JSON-LD) et syft-json sont détectés ; les fichiers sont hachés par contenu et dédupliqués.
  2. Analyse — exécutez les outils activés sur le SBOM, chacun comme un sous-processus isolé avec un délai limite et une limite de concurrence. Un outil manquant est un skip propre et visiblement distinct — jamais signalé comme un résultat propre.
  3. Résultats — la sortie de chaque outil est normalisée selon une forme commune, avec l'alias CVE résolu à partir de l'identifiant GHSA/OSV de l'outil, et affichée par outil avec des badges de sévérité.
  4. Notation — évaluez le SBOM par rapport aux dix-sept éléments minimaux CISA 2026, en distinguant un NOASSERTION explicite d'un fournisseur d'un champ simplement absent.
  5. Recherche — trouvez lesquels de vos SBOM déclarent un composant donné, dans l'ensemble du corpus, par nom ou par URL de paquet.
  6. — écrivez l'analyse au format SARIF 2.1, SARIF 2.2, Markdown, ODT, DOCX, PDF et avis CSAF 2.1 / 2.2. enregistre les formats sélectionnés dans le répertoire d'export du serveur, chacun accompagné de cinq fichiers de hachage cryptographique annexes ; génère les mêmes formats en mémoire et les diffuse au navigateur — un document, ou une archive ZIP pour plusieurs — sans rien écrire sur le disque.
Export
Export
Start download

Tableau de bord des SBOM stockés

La page d'accueil (/) liste tous les SBOM stockés et reste utilisable à mesure que le corpus grandit :

  • Paginé — 25 lignes par page, avec une légende « Showing X–Y of N » et des contrôles Previous / Page / Next.
  • Colonnes triables — cliquez sur l'en-tête Name, Format ou Components pour trier selon celui-ci ; cliquez à nouveau sur l'en-tête pour inverser le sens.
  • Filtre de format — restreignez la liste à un format (CycloneDX JSON/XML, SPDX JSON, SPDX 3.0 JSON, SPDX tag-value, Syft JSON ou Unknown) ; un bouton Reset efface les filtres tout en conservant le tri actuel.
  • Colonne Severity — une colonne à l'extrême droite, après Ingested, affiche la sévérité de résultat la plus élevée de chaque SBOM (Critical, High, Medium, Low ou Negligible), ou « — » lorsqu'il n'a pas encore de résultat, avec un filtre de sévérité correspondant.
  • Recherche plein texte — une zone de recherche, adossée à un index plein texte tantivy, correspond au nom, au format et à la version de spécification d'un SBOM ainsi qu'aux noms et aux URL de paquets des composants qu'il contient, de sorte qu'une requête telle que log4j ou openssl trouve chaque SBOM qui embarque ce composant. La requête est limitée en longueur et analysée avec indulgence.

Ensemble d'analyseurs

Chaque outil est optionnel à l'exécution et détecté sur le PATH (remplacez le binaire avec SBA_TOOL_<NAME>_BIN). Les résultats ne dépendent jamais d'un seul outil.

OutilRôle
syftNormaliseur SBOM / convertisseur CycloneDX 1.6
grypeCorrespondance CVE
trivyScanner de vulnérabilités
osv-scannerRecherches dans la base OSV
bomberCorrespondance d'ensemble indépendante
bomdriftDérive de chaîne d'approvisionnement / typosquat (SARIF)
inspektrScanner de vulnérabilités SBOM (JSON)
shieldbomScanner CVE embarqué/IoT hors ligne (SARIF)
provenantLicence / copyright / provenance (ScanCode)

Les huit premiers outils contribuent à des résultats de vulnérabilité de forme CVE ; provenant est différent — il rapporte la provenance de licence, copyright, détenteur et auteur, que l'auditeur stocke et affiche comme sa propre forme de résultat (une section « Licence & provenance » par exécution, incluse dans l'export Markdown) plutôt que de la rejeter.

Les scanners ne peuvent pas lire tous les formats directement : bomber ne consomme que CycloneDX ≤ 1.6, et aucun des scanners ne lit SPDX 3.0 JSON-LD. Dans les deux cas, l'auditeur normalise d'abord l'entrée en CycloneDX via syft convert, et saute avec une raison documentée lorsque syft est indisponible plutôt que de laisser un outil signaler zéro paquet. La base de données de vulnérabilités de grype est actualisée une fois par exécution (hors bande), de sorte qu'une obsolescence de routine donne lieu à une analyse fraîche, et non à une analyse échouée.

Enrichissement des vulnérabilités

Après l'analyse, chaque résultat de forme CVE est enrichi de trois signaux réels tirés d'un service vulnlookup (par défaut https://vulnlookup.ndaal.eu) :

  • EPSS — le score de probabilité d'exploitation et son percentile.
  • CISA-KEV — un indicateur marquant la CVE comme connue-exploitée.
  • nuclei — l'existence d'un modèle d'exploit public, et sa sévérité.

Chaque résultat affiche ses valeurs KEV, Nuclei, EPSS et Source, où Source renvoie à l'enregistrement vulnlookup, et les résultats sont ordonnés du plus urgent au moins urgent : les entrées connues-exploitées (KEV) en tête, puis celles ayant le percentile EPSS le plus élevé ; les résultats sans enrichissement conservent l'ordre dans lequel l'analyseur les a produits. L'enrichissement se retrouve dans chaque format d'export — SARIF 2.1 / 2.2, Markdown, ODT, DOCX, PDF et CSAF 2.1 / 2.2, où CSAF porte l'EPSS comme métrique native et enregistre CISA-KEV et nuclei comme notes — et le formulaire d'export coche désormais chaque format par défaut.

Configurez-le sous Settings → Vulnerability enrichment : un interrupteur on/off (activé par défaut) et jusqu'à trois sources vulnlookup, chacune avec une URL de base, un port TCP et un port QUIC (un port vide est traité comme 443). Les sources 1 et 2 pointent par défaut vers le service public https://vulnlookup.ndaal.eu sur le port 443 ; la source 3 pointe par défaut vers un service loopback https://127.0.0.1 sur les ports 8680 (TCP) / 8681 (QUIC) de cet hôte, de sorte qu'un vulnlookup co-localisé constitue un repli fonctionnel dès l'installation. Les sources sont essayées dans l'ordre — la première est primaire, les autres sont des replis.

Posture de sécurité

  • Transport : HTTPS uniquement, TLS 1.3 (rustls + aws-lc-rs) avec échange de clés post-quantique (X25519MLKEM768) proposé en premier. Certificat de développement auto-signé, régénéré au démarrage ; fichiers PEM d'opérateur pris en charge.
  • Sûreté mémoire : écrit en Rust avec #![forbid(unsafe_code)] ; la politique de lint interdit les raccourcis paniquants, l'arithmétique non vérifiée et l'indexation non vérifiée dans le code de production.
  • Confinement du système de fichiers : toute E/S de données / import / export est confinée par un descripteur de capacité cap-std (les classes path-traversal, symlink et TOCTOU sont fermées). Les noms de fichiers stockés sont dérivés côté serveur, jamais fournis par le client.
  • Chiffrement du stockage (optionnel) : XChaCha20-Poly1305 scelle les octets SBOM stockés et la sortie brute des outils tant qu'ils résident sur le disque (--encryption-key-file).
  • Durcissement web : en-têtes de réponse de défense en profondeur sur chaque réponse, une Content-Security-Policy épinglée par hachage, des contrôles de même origine sur chaque POST, et une limite de taille du corps de requête.
  • Aucune télémétrie, aucune porte dérobée. Tout s'exécute localement. Répond aux critères TeleTrusT « IT Security made in Germany / Europe ».

Durcissement de ce cycle

  • Plafond DoS multipart — l'analyseur d'import rejette toute frontière multipart plus longue que les 70 caractères de la RFC 2046 et la localise par une recherche bidirectionnelle linéaire, fermant un chemin d'épuisement CPU en O(body×boundary).
  • Déchiffrement fail-closed des données stockées — un blob chiffré indéchiffrable (mauvaise clé ou altération) déclenche désormais une erreur dure au lieu d'être lu comme un document vide signalant « aucun résultat ».
  • Validation CVSS — les scores de base CVSS des analyseurs sont bornés ou rejetés lorsqu'ils sont non finis ou hors de [0, 10] avant d'atteindre un CSAF ou un SARIF généré, et une fusion inter-outils conserve le score le plus fort.
  • Durcissement des clés TLS — --tls-key refuse une clé RSA PKCS#1 (politique no-RSA) et, sous Unix, un fichier de clé lisible par le groupe ou par tous.
  • Filtre d'extension à l'export-téléchargement — GET /export/download ne sert que des noms ayant une extension d'export ou de fichier de hachage annexe reconnue, de sorte qu'un répertoire d'export mal configuré ne peut pas distribuer un fichier système.
  • Mise à jour h2 (RUSTSEC-2026-0258) — la pile HTTP/2 embarquée est mise à jour vers 0.4.18 pour les trames DATA vides non bornées ; cargo audit est propre.

Compilation et exécution

Installez la version publiée depuis crates.io — cargo install la compile depuis les sources, cargo binstall récupère le binaire précompilé depuis la release GitLab :

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

Ou compilez directement cette copie de travail (une chaîne d'outils Rust stable récente est requise) :

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

Ouvrez ensuite https://127.0.0.1:8680 (le navigateur avertira une fois au sujet du certificat auto-signé). La navigation supérieure propose Home, Upload, Import, Export, Components, Tools, Settings, suivis du sélecteur de thème sombre/clair, du menu de langue et du menu d'informations à droite. L'interface est livrée en 49 langues — anglais, allemand et français plus toutes les langues officielles européennes, le norvégien nynorsk, les trois langues sames officielles en Norvège (same du Nord, de Lule et du Sud), et trois ajouts asiatiques — le chinois (中文), l'hindi (हिन्दी) et l'ourdou (اردو, de droite à gauche) — sélectionnables depuis le menu de langue (et mémorisés par navigateur). La section Supported GUI languages ci-dessous en donne la répartition complète.

Options courantes

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

Ports : 8680 sert l'API et l'interface web sur TLS 1.3 (HTTP/1.1 + HTTP/2) ; 8681 est réservé à un futur écouteur QUIC / HTTP-3 (pas encore implémenté).

Langues d'interface prises en charge

L'interface web est livrée en 49 langues. L'anglais, l'allemand et le français constituent l'ensemble maintenu, rédigé par des humains, et sont épinglés en tête du sélecteur de langue ; toutes les autres langues suivent par ordre alphabétique selon leur nom anglais.

Trois langues asiatiques ont rejoint ce cycle : le chinois / 中文 (mandarin, simplifié), l'hindi / हिन्दी et l'ourdou / اردو. L'ourdou s'écrit de droite à gauche — l'application rend <html dir="rtl"> tant qu'il est sélectionné.

Toutes les langues au-delà des trois épinglées sont traduites automatiquement et en attente de révision native ; toute chaîne manquante dans une traduction revient automatiquement à l'anglais. Le sélecteur intégré à la page liste chaque langue par son propre endonyme et constitue la liste faisant autorité — consultez-le plutôt qu'une énumération ici.

Cela s'applique uniquement à l'interface web. Les rapports générés (SARIF, CSAF et l'export PDF) et l'API HTTP restent en anglais uniquement.

Tests

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

Harnais supplémentaires : loom-harness/ (modèles de permutation de concurrence), test/bruno/ (collection d'API), test/playwright/ (E2E navigateur), test/example-corpus/ (API + GUI import→analyse→export sur le corpus SBOM example/ embarqué) et loadtest/ (scénarios de charge Goose). tests/scripts/test_examples_upload_via_api.sh (avec un .bats frère) importe chaque SBOM de example/ contre une instance en cours d'exécution et vérifie que chacun produit un SARIF, un CSAF et un PDF via le ZIP diffusé par POST /export/download ; TLS est vérifié pour les hôtes non-loopback et ignoré pour le certificat auto-signé de localhost, et --base-url cible n'importe quelle instance (par exemple https://sbom.ndaal.eu/). La suite test/magnitude/ (Magnitude, *.mag.ts) ajoute des vérifications visuelles pilotées par IA de l'ordre de la barre de navigation et des valeurs par défaut d'export plus Start download ; elle complète les tests déterministes, nécessite un LLM pour s'exécuter et ne fait pas partie du portail CI bloquant. Le répertoire example/ contient 651 SBOM de test publics (Git LFS) ; voir example/PROVENANCE.md. Voir documentation/structure.md pour la carte des modules et le flux des requêtes.

Documentation

  • REFERENCE.md — référence CLI, environnement, routes, réglages et formats d'export
  • documentation/structure.md — carte de l'architecture
  • documentation/User_Guide.md — guide de l'utilisateur final
  • documentation/Administrator_Guide.md — déploiement et exploitation
  • documentation/arc42/en/ — vues d'architecture arc42
  • documentation/compliance/CSI_2026_cisa_sbom_minimum_elements_508c.md — évaluation de conformité aux CISA 2026 SBOM Minimum Elements
  • CHANGELOG.md — historique des versions

Licence

Le code est sous licence Apache-2.0. Les ressources d'interface embarquées portent leurs propres licences (Bootstrap MIT, htmx 0BSD, Roboto OFL-1.1) ; voir les fichiers annexes .license par fichier sous src/static/.

Télécharger l’outil