Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
ndaal_public_SBOM_Auditor — App web offline in singolo binario che importa SBOM CycloneDX, SPDX e syft, esegue un insieme di scanner CVE, arricchisce i risultati con EPSS, CISA-KEV e nuclei ed esporta in SARIF, CSAF e PDF. | Kitploit
Strumenti/GitLabGitLab/vpierre/ndaal_public_sbom_auditor
Strumenti DifensiviGestione degli Indicatori di Compromissione (IOC)Analisi StaticaScanner di VulnerabilitàAnalisi delle VulnerabilitàAudit di ConfigurazioneDevSecOpsUtilità e Framework

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Threat Intelligence
Sicurezza della Supply Chain
GitLabvpierre/ndaal_public_sbom_auditor

ndaal_public_SBOM_Auditor

App web offline in singolo binario che importa SBOM CycloneDX, SPDX e syft, esegue un insieme di scanner CVE, arricchisce i risultati con EPSS, CISA-KEV e nuclei ed esporta in SARIF, CSAF e PDF.

Vedi RepositorySito web
431 giorno faNon ancora revisionato
Condividi

ndaal SBOM Auditor

Un'applicazione web offline a binario singolo per analizzare file SBOM (Software Bill of Materials). Carica un SBOM o importa una cartella di essi, analizza ciascuno con un insieme di strumenti indipendenti, esamina i risultati normalizzati in un'unica interfaccia locale ed esporta il risultato in otto formati. Nessuna installazione, nessun accesso alla rete, nessuna telemetria.

Traduzioni: Deutsch · Français

Cosa fa

  1. Acquisizione — carica un SBOM nel browser, oppure importa ogni SBOM in una cartella configurabile. Vengono rilevati CycloneDX (JSON/XML), SPDX (JSON/tag-value e 3.0 JSON-LD) e syft-json; i file vengono sottoposti a hash del contenuto e deduplicati.
  2. Analisi — esegue gli strumenti abilitati sull'SBOM, ciascuno come sottoprocesso isolato entro una scadenza e un limite di concorrenza. Uno strumento mancante è una skip pulita e visibilmente distinta — mai segnalata come un risultato pulito.
  3. Risultati — l'output di ciascuno strumento viene normalizzato in una forma comune, con l'alias CVE risolto dall'identificatore GHSA/OSV dello strumento, e mostrato per strumento con badge di gravità.
  4. Punteggio — valuta l'SBOM rispetto a tutti e diciassette gli elementi minimi CISA 2026, distinguendo un NOASSERTION esplicito di un fornitore da un campo semplicemente assente.
  5. Ricerca — trova quali dei tuoi SBOM dichiarano un dato componente, nell'intero corpus, per nome o package URL.
  6. Esportazione — scrive l'analisi come SARIF 2.1, SARIF 2.2, Markdown, ODT, DOCX, PDF e avvisi CSAF 2.1 / 2.2. salva i formati selezionati nella directory di esportazione del server, ciascuno accompagnato da cinque sidecar di hash crittografici; genera gli stessi formati in memoria e li trasmette al browser — un singolo documento, o un bundle ZIP per più documenti — senza scrivere nulla su disco.
Export
Start download

Dashboard degli SBOM memorizzati

La pagina iniziale (/) elenca ogni SBOM memorizzato e rimane utilizzabile man mano che il corpus cresce:

  • Paginata — 25 righe per pagina, con una didascalia "Showing X–Y of N" e i controlli Previous / Page / Next.
  • Colonne ordinabili — fai clic sull'intestazione Name, Format o Components per ordinare in base a essa; fai clic di nuovo sull'intestazione per invertire la direzione.
  • Filtro formato — restringe l'elenco a un formato (CycloneDX JSON/XML, SPDX JSON, SPDX 3.0 JSON, SPDX tag-value, Syft JSON o Unknown); un pulsante Reset cancella i filtri mantenendo l'ordinamento corrente.
  • Colonna Severity — una colonna all'estrema destra, dopo Ingested, mostra la singola gravità più alta dei risultati di ciascun SBOM (Critical, High, Medium, Low o Negligible), oppure "—" quando non ha ancora risultati, con un filtro di gravità corrispondente.
  • Ricerca full-text — una casella di ricerca, supportata da un indice full-text tantivy, trova corrispondenze nel nome, nel formato e nella versione di specifica di un SBOM nonché nei nomi e nei package URL dei componenti che contiene, così una query come log4j o openssl trova ogni SBOM che include quel componente. La query ha una lunghezza massima ed è analizzata in modo permissivo.

Insieme di analizzatori

Ogni strumento è opzionale a runtime e viene rilevato nel PATH (sovrascrivi il binario con SBA_TOOL_<NAME>_BIN). I risultati non dipendono mai da un singolo strumento.

StrumentoRuolo
syftNormalizzatore SBOM / convertitore CycloneDX 1.6
grypeCorrispondenza CVE
trivyScanner di vulnerabilità
osv-scannerRicerche nel database OSV
bomberCorrispondenza indipendente d'insieme
bomdriftDrift della supply-chain / typosquat (SARIF)
inspektrScanner di vulnerabilità SBOM (JSON)
shieldbomScanner CVE offline per embedded/IoT (SARIF)
provenantLicenza / copyright / provenienza (ScanCode)

I primi otto strumenti contribuiscono con risultati di vulnerabilità in forma di CVE; provenant è diverso — riporta la provenienza di licenza, copyright, titolare e autore, che l'auditor memorizza e visualizza come una propria forma di risultato (una sezione "Licence & provenance" per esecuzione, inclusa nell'esportazione Markdown) anziché scartarla.

Gli scanner non riescono a leggere direttamente ogni formato: bomber consuma solo CycloneDX ≤ 1.6, e nessuno degli scanner legge SPDX 3.0 JSON-LD. In entrambi i casi l'auditor normalizza prima l'input in CycloneDX tramite syft convert, e salta con una motivazione documentata quando syft non è disponibile anziché lasciare che uno strumento riporti zero pacchetti. Il database delle vulnerabilità di grype viene aggiornato una volta per esecuzione (fuori banda), così una consueta obsolescenza è una scansione nuova, non una fallita.

Arricchimento delle vulnerabilità

Dopo l'analisi, ogni risultato in forma di CVE viene arricchito con tre segnali reali prelevati da un servizio vulnlookup (predefinito https://vulnlookup.ndaal.eu):

  • EPSS — il punteggio di probabilità di sfruttamento e il suo percentile.
  • CISA-KEV — un flag che contrassegna la CVE come sfruttata nota.
  • nuclei — se esiste un template di exploit pubblico, e la sua gravità.

Ogni risultato mostra i suoi valori KEV, Nuclei, EPSS e Source, dove Source rimanda al record vulnlookup, e i risultati sono ordinati dal più urgente: le voci note come sfruttate (KEV) in testa, poi quelle con il percentile EPSS più alto; i risultati senza arricchimento mantengono l'ordine in cui l'analizzatore li ha prodotti. L'arricchimento viaggia in ogni formato di esportazione — SARIF 2.1 / 2.2, Markdown, ODT, DOCX, PDF e CSAF 2.1 / 2.2, dove CSAF porta EPSS come metrica nativa e registra CISA-KEV e nuclei come note — e il modulo di esportazione ora seleziona ogni formato per impostazione predefinita.

Configuralo in Settings → Vulnerability enrichment: un interruttore on/off (abilitato per impostazione predefinita) e fino a tre sorgenti vulnlookup, ciascuna con un URL di base, una porta TCP e una porta QUIC (una porta vuota è trattata come 443). Le sorgenti 1 e 2 predefinite sono la pubblica https://vulnlookup.ndaal.eu sulla porta 443; la sorgente 3 predefinita è un loopback https://127.0.0.1 sulle porte 8680 (TCP) / 8681 (QUIC) di questo host, così un vulnlookup co-locato è un fallback funzionante fin da subito. Le sorgenti vengono provate in ordine — la prima è primaria, le altre sono fallback.

Postura di sicurezza

  • Trasporto: solo HTTPS, TLS 1.3 (rustls + aws-lc-rs) con scambio di chiavi post-quantistico (X25519MLKEM768) offerto per primo. Certificato di sviluppo autofirmato, rigenerato all'avvio; file PEM dell'operatore supportati.
  • Sicurezza della memoria: scritto in Rust con #![forbid(unsafe_code)]; la policy dei lint vieta scorciatoie che causano panic, aritmetica non controllata e indicizzazione non controllata nel codice di produzione.
  • Confinamento del filesystem: tutto l'I/O di dati / import / export è confinato da un handle di capability cap-std (chiuse le classi di path-traversal, symlink e TOCTOU). I nomi dei file memorizzati sono derivati dal server, mai forniti dal client.
  • Cifratura dell'archiviazione (opzionale): XChaCha20-Poly1305 sigilla i byte degli SBOM memorizzati e l'output grezzo degli strumenti mentre risiedono su disco (--encryption-key-file).
  • Rafforzamento web: header di risposta di difesa in profondità su ogni risposta, una Content-Security-Policy con hash pinning, controlli same-origin su ogni POST e un limite di dimensione del corpo della richiesta.
  • Nessuna telemetria, nessuna backdoor. Tutto viene eseguito localmente. Soddisfa i criteri TeleTrusT "IT Security made in Germany / Europe".

Rafforzamento di questo ciclo

  • Limite DoS multipart — il parser di upload rifiuta qualsiasi boundary multipart più lungo dei 70 caratteri della RFC 2046 e lo individua con una ricerca lineare bidirezionale, chiudendo un percorso di esaurimento CPU O(body×boundary).
  • Decifratura fail-closed dei dati memorizzati — un blob cifrato non decifrabile (chiave errata o manomissione) ora genera un errore grave invece di essere letto come un documento vuoto che riportava "nessun risultato".
  • Validazione CVSS — i punteggi base CVSS degli analizzatori vengono limitati o rifiutati quando non finiti o fuori da [0, 10] prima di raggiungere un CSAF o SARIF generato, e una fusione tra strumenti mantiene il punteggio più forte.
  • Rafforzamento della chiave TLS — --tls-key rifiuta una chiave RSA PKCS#1 (policy no-RSA) e, su Unix, un file di chiave leggibile da gruppo o da tutti.
  • Gate sull'estensione dei download di esportazione — GET /export/download serve solo nomi con un'estensione di esportazione o di sidecar di checksum riconosciuta, così una directory di esportazione malconfigurata non può distribuire un file di sistema.
  • Aggiornamento h2 (RUSTSEC-2026-0258) — lo stack HTTP/2 incluso è aggiornato alla 0.4.18 per frame DATA vuoti illimitati; cargo audit è pulito.

Compilazione ed esecuzione

Installa la release pubblicata da crates.io — cargo install la compila dai sorgenti, cargo binstall recupera il binario precompilato dalla release GitLab:

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

Oppure compila direttamente questo checkout (è richiesta una toolchain Rust stabile recente):

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

Poi apri https://127.0.0.1:8680 (il browser avviserà una volta riguardo al certificato autofirmato). La navigazione in alto esegue Home, Upload, Import, Export, Components, Tools, Settings, seguiti dall'interruttore di tema scuro/chiaro, dal menu della lingua e dal menu info sulla destra. L'interfaccia è disponibile in 49 lingue — inglese, tedesco e francese più ogni lingua ufficiale europea, il norvegese Nynorsk, le tre lingue sami ufficiali in Norvegia (sami settentrionale, di Lule e meridionale) e tre aggiunte asiatiche — cinese (中文), hindi (हिन्दी) e urdu (اردو, da destra a sinistra) — selezionabili dal menu della lingua (e ricordate per browser). La sezione Supported GUI languages qui sotto contiene la ripartizione completa.

Opzioni comuni

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

Porte: 8680 serve l'API e l'interfaccia web su TLS 1.3 (HTTP/1.1 + HTTP/2); 8681 è riservata a un futuro listener QUIC / HTTP-3 (non ancora implementato).

Lingue GUI supportate

L'interfaccia web è disponibile in 49 lingue. Inglese, tedesco e francese sono l'insieme mantenuto e scritto da esseri umani ed è fissato in testa al selettore di lingua; ogni altra lingua segue in ordine alfabetico secondo il suo nome inglese.

Tre lingue asiatiche si sono aggiunte in questo ciclo: cinese / 中文 (mandarino, semplificato), hindi / हिन्दी e urdu / اردو. L'urdu è da destra a sinistra — l'applicazione renderizza <html dir="rtl"> mentre è selezionato.

Ogni lingua oltre le tre fissate è tradotta automaticamente e in attesa di revisione madrelingua; qualsiasi stringa mancante da una traduzione ricade automaticamente sull'inglese. Il selettore nella pagina elenca ogni lingua con il proprio endonimo nativo ed è l'elenco autorevole — consultalo anziché un'enumerazione qui.

Questo vale solo per l'interfaccia web. I report generati (SARIF, CSAF e l'esportazione PDF) e l'API HTTP rimangono solo in inglese.

Test

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

Harness aggiuntivi: loom-harness/ (modelli di permutazione della concorrenza), test/bruno/ (collezione API), test/playwright/ (E2E del browser), test/example-corpus/ (API + GUI upload→analyze→export sul corpus SBOM example/ incluso) e loadtest/ (scenari di carico Goose). tests/scripts/test_examples_upload_via_api.sh (con un .bats gemello) carica ogni SBOM di example/ contro un'istanza in esecuzione e verifica che ciascuno produca un SARIF, un CSAF e un PDF tramite lo ZIP di POST /export/download in streaming; TLS è verificato per host non-loopback e saltato per il certificato autofirmato di localhost, e --base-url punta a qualsiasi istanza (per esempio https://sbom.ndaal.eu/). La suite test/magnitude/ (Magnitude, *.mag.ts) aggiunge controlli visivi guidati dall'IA sull'ordine della navbar e sui valori predefiniti di esportazione più Start download; integra i test deterministici, richiede un LLM per essere eseguita e non fa parte del gate CI bloccante. La directory example/ contiene 651 SBOM di test pubblici (Git LFS); vedi example/PROVENANCE.md. Vedi documentation/structure.md per la mappa dei moduli e il flusso delle richieste.

Documentazione

  • REFERENCE.md — riferimento per CLI, ambiente, route, impostazioni e formati di esportazione
  • documentation/structure.md — mappa dell'architettura
  • documentation/User_Guide.md — guida passo-passo per l'utente finale
  • documentation/Administrator_Guide.md — distribuzione e operazioni
  • documentation/arc42/en/ — viste architetturali arc42
  • documentation/compliance/CSI_2026_cisa_sbom_minimum_elements_508c.md — valutazione di conformità rispetto ai CISA 2026 SBOM Minimum Elements
  • CHANGELOG.md — cronologia delle release

Licenza

Il codice è concesso in licenza Apache-2.0. Le risorse UI incluse portano le proprie licenze (Bootstrap MIT, htmx 0BSD, Roboto OFL-1.1); vedi i sidecar .license per file sotto src/static/.

Scarica lo strumento