Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
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
SBOM-VEX-Taint-Analysis | Kitploit
Strumenti/GitHubGitHub/owasp/sbom-vex-taint-analysis
Analisi delle VulnerabilitàSicurezza della Supply ChainPaper e RicercaApprendimento e FormazioneRisorse CurateSicurezza dell'IA
GitHubowasp/sbom-vex-taint-analysis

SBOM-VEX-Taint-Analysis

Vedi Repository
211 mese faNon ancora revisionato

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 →
Condividi

SBOM → VEX Agent

Genera automaticamente documenti VEX CycloneDX firmati a partire dagli SBOM utilizzando una pipeline AI multi-agente sicura, realizzata in conformità con le linee guida dell'OWASP GenAI Security Project.

License: MIT OWASP CycloneDX AutoGen


Il problema

La generazione di un SBOM fa emergere centinaia di CVE. In pratica, oltre il 90% non è sfruttabile nel contesto di runtime di uno specifico prodotto. Senza un documento Vulnerability Exploitability eXchange (VEX), ogni strumento a valle — Dependency-Track, release gate, checklist di approvvigionamento — viene sommerso dai falsi positivi.

Leggi la WIKI per maggiori dettagli tecnici e risultati dei test.

La generazione manuale dei VEX richiede tempo e non scala. Un analista esperto può impiegare ore per valutare un singolo componente. Un SBOM di produzione può contenere da 500 a 2.000 componenti.

Questo progetto automatizza quel processo di analisi — in modo sicuro, senza vendor lock-in, con tutti i dati che rimangono sulla tua infrastruttura.

Motivazione reale: Nel 2024, la ricercatrice di sicurezza Johanna Curiel ha documentato esattamente questo problema mentre analizzava il Kubernetes Java Client (articolo LinkedIn). Lo scanner OSV ha identificato in pochi secondi una CVE ad alto rischio in com.diffplug.spotless:spotless-maven-plugin 1.17.0. Determinare che era not_affected (plugin solo in build, mai eseguito a runtime) ha richiesto ore di analisi manuale. Questo progetto automatizza quel passaggio di analisi.


Architettura

Quattro zone di sicurezza. Nulla attraversa un confine senza una validazione esplicita.

root@kitploit:~
┌─────────────────────────────────────────────────────────────────┐
│  ZONE 1 — Input ingestion (no LLM)                              │
│  SBOM upload → Schema validate → Sanitise → SHA-256 audit hash  │
└────────────────────────────┬────────────────────────────────────┘
                             │
┌────────────────────────────▼────────────────────────────────────┐
│  ZONE 2 — OWASP guardrail middleware                            │
│  Prompt guard (LLM01) · Output filter (LLM02/05)                │
│  Agency limiter (LLM06) · Token budget (LLM10)                  │
└────────────────────────────┬────────────────────────────────────┘
                             │
┌────────────────────────────▼────────────────────────────────────┐
│  ZONE 3 — Multi-agent pipeline (AutoGen AgentChat)              │
│                                                                  │
│  Orchestrator                                                    │
│       ├── CVE Analyst       NVD v2 + OSV + EPSS per component   │
│       ├── Exploit Reasoner  Call graph · LLM reasoning · RAG    │
│       └── VEX Writer        CycloneDX 1.6 schema-validated      │
│                                                                  │
│  Vector store (Qdrant) — signed past VEX decisions              │
└────────────────────────────┬────────────────────────────────────┘
                             │
┌────────────────────────────▼────────────────────────────────────┐
│  ZONE 4 — Output, signing, audit                                │
│  Human-in-the-loop gate → cosign/GPG sign → audit log           │
└─────────────────────────────────────────────────────────────────┘

Conformità OWASP GenAI

Questo progetto è progettato in base alla OWASP Top 10 per le applicazioni LLM 2025 e alla OWASP Top 10 per le applicazioni agentiche 2026.

L'human-in-the-loop è obbligatorio. Una dichiarazione VEX not_affected per una CVE ad alta gravità è un'affermazione con valenza legale. Nessun VEX viene firmato senza l'approvazione del revisore umano. Questo non è configurabile.


Stack tecnologico

Tutto viene eseguito on-premises. Nessun dato lascia la tua infrastruttura.


Requisiti

Hardware (produzione):

  • 1× A100 80GB, oppure 2× RTX 3090 (48GB di VRAM combinati) per Qwen2.5-Coder-32B
  • 16GB+ di RAM di sistema
  • 100GB+ di SSD per i pesi del modello e l'archivio vettoriale

Hardware (sviluppo / SBOM di piccole dimensioni):

  • Qualsiasi macchina con 16GB di RAM — usa llama3.1:8b tramite Ollama

Software:

  • Python 3.11+
  • Docker + Docker Compose
  • Node.js 18+ (per gli strumenti cosign)

Avvio rapido

1. Clona e installa

root@kitploit:~
git clone https://github.com/your-org/sbom-vex-agent
cd sbom-vex-agent
python -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt

2. Avvia il backend LLM

root@kitploit:~
# Development — Ollama (CPU/GPU, any laptop)
ollama pull llama3.1
ollama serve

# Production — vLLM (GPU required)
python -m vllm.entrypoints.openai.api_server \
  --model Qwen/Qwen2.5-Coder-32B-Instruct \
  --gpu-memory-utilization 0.90 \
  --host 0.0.0.0 --port 8000

3. Avvia i servizi di supporto

root@kitploit:~
docker compose up -d   # starts Qdrant + PostgreSQL

4. Esegui l'agente su un SBOM

root@kitploit:~
python -m vex_agent analyse \
  --sbom path/to/your-sbom.cdx.json \
  --output path/to/output.vex.json

La pipeline eseguirà le seguenti operazioni:

  1. Valida e sanitizza il SBOM
  2. Cerca le CVE per ogni componente
  3. Valuta la sfruttabilità
  4. Presenta la bozza di VEX a un revisore umano
  5. Firma ed emette il documento finale dopo l'approvazione

Configurazione

Copia .env.example in .env e imposta:

root@kitploit:~
# LLM backend
VLLM_BASE_URL=http://localhost:8000/v1    # or Ollama: http://localhost:11434/v1
LLM_MODEL=Qwen2.5-Coder-32B-Instruct     # or llama3.1 for dev

# Services
QDRANT_URL=http://localhost:6333
AUDIT_DB_URL=postgresql://audit:secret@localhost:5432/audit

# Signing (leave blank to use cosign keyless via Sigstore OIDC)
GPG_KEY_ID=                               # optional: use GPG instead

Struttura del progetto

root@kitploit:~
sbom-vex-agent/
├── vex_agent/
│   ├── ingest.py          # Zone 1: SBOM validation and sanitisation
│   ├── guardrails.py      # Zone 2: OWASP middleware (GuardrailedAgent)
│   ├── agents/
│   │   ├── orchestrator.py
│   │   ├── cve_analyst.py
│   │   ├── exploit_reasoner.py
│   │   └── vex_writer.py
│   ├── tools/
│   │   ├── nvd.py         # NVD v2 API client
│   │   ├── osv.py         # OSV.dev client
│   │   └── epss.py        # EPSS scoring
│   ├── vector_store.py    # Qdrant integration + provenance signing
│   ├── hitl.py            # Human-in-the-loop review gate
│   └── sign.py            # Zone 4: cosign / GPG signing
├── schemas/
│   ├── cdx-1.6.schema.json
│   └── cdx-1.6-vex.schema.json
├── tests/
├── docker-compose.yml
├── .env.example
└── requirements.txt

Formato di output VEX

L'agente produce documenti VEX in formato CycloneDX 1.6. Esempio di output per un singolo componente:

root@kitploit:~
{
  "bomFormat": "CycloneDX",
  "specVersion": "1.6",
  "version": 1,
  "metadata": {
    "timestamp": "2026-04-26T10:00:00Z",
    "tools": [{ "name": "sbom-vex-agent", "version": "1.0.0" }]
  },
  "vulnerabilities": [
    {
      "id": "CVE-2021-37714",
      "affects": [{ "ref": "pkg:maven/com.diffplug.spotless/[email protected]" }],
      "analysis": {
        "state": "not_affected",
        "justification": "vulnerable_code_not_in_execute_path",
        "detail": "Plugin executes only at build time; not present in deployed runtime."
      }
    }
  ]
}

Valori state validi: affected · not_affected · fixed · under_investigation

Valori justification validi (per not_affected):

  • component_not_present
  • vulnerable_code_not_present
  • vulnerable_code_not_in_execute_path
  • vulnerable_code_cannot_be_controlled_by_adversary
  • inline_mitigations_already_exist

Risorse correlate

  • OWASP GenAI Security Project
  • OWASP Top 10 for LLM Applications 2025
  • OWASP Top 10 for Agentic Applications 2026
  • CycloneDX Specification
  • AutoGen AgentChat v0.4
  • OSV Vulnerability Database
  • EPSS Scoring API
  • Sigstore / cosign
  • Johanna Curiel — Analysing Supply Chain Vulnerabilities in the Kubernetes Java Client Using SBOM and Generating VEX (2024)

Contributi

I contributi sono benvenuti. Apri una issue prima di inviare una pull request per modifiche significative.

I problemi di sicurezza devono essere segnalati privatamente — vedi SECURITY.md.


Licenza

MIT — vedi LICENSE.


Realizzato in linea con l'OWASP GenAI Security Project. Non è un progetto ufficiale OWASP.

Scarica lo strumento
Rischio OWASPIDMitigazione in questo progetto
Iniezione di promptLLM01Tutti i campi SBOM sanitizzati prima dell'iniezione nel LLM; blocklist dei pattern di iniezione
Divulgazione di informazioni sensibiliLLM02PII scrubber su tutti gli output degli agenti; filtro dei percorsi interni
Gestione impropria degli outputLLM05Validazione dello schema CycloneDX prima della firma; nuovo tentativo in caso di errore
Agenzia eccessivaLLM06Strumenti di sola lettura durante l'analisi; gate HITL per tutte le decisioni con CVSS ≥ 7.0
Perdita del prompt di sistemaLLM07Policy interne separate dal prompt di sistema
Debolezza di vettori/embeddingLLM08Vettori memorizzati firmati; provenienza verificata prima dell'iniezione nel contesto
Consumo illimitatoLLM10MaxMessageTermination(20); budget di token per componente; timeout NVD
ComponenteStrumentoNote
Orchestrazione degli agentiAutoGen AgentChat v0.4Multi-agente, uso di strumenti, message hook
LLM (consigliato)Qwen2.5-Coder-32BMiglior JSON strutturato + ragionamento di sicurezza
Server LLMvLLM (prod) / Ollama (dev)API compatibile con OpenAI
Dati CVEAPI NVD v2 + OSV.dev + EPSSTutti gratuiti, nessuna API key richiesta
Archivio vettorialeQdrantSelf-hosted, decisioni VEX passate
Embeddingall-MiniLM-L6-v2 (sentence-transformers)Completamente locale
Formati SBOMCycloneDX 1.4–1.7 (JSON/XML), SPDX 2.3/3.0Validati rispetto allo schema all'acquisizione
Output VEXCycloneDX 1.6 VEXValidato rispetto allo schema prima della firma
Firmacosign (Sigstore keyless)Con timestamp, registrato nell'audit log
Registro di auditPostgreSQL (append-only, pgaudit)Ogni decisione degli agenti viene registrata