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
SBOM-VEX-Taint-Analysis — Pipeline automatizado de SBOM a VEX que utiliza un sistema de IA multiagente seguro para analizar CVEs, razonar sobre la explotabilidad y generar documentos VEX CycloneDX firmados en cumplimiento con las directrices OWASP GenAI. | Kitploit
Herramientas/GitHubGitHub/owasp/sbom-vex-taint-analysis
Análisis de VulnerabilidadesSeguridad de Cadena de SuministroPapers e InvestigaciónAprendizaje y EducaciónRecursos CuradosSeguridad de IA
GitHubowasp/sbom-vex-taint-analysis

SBOM-VEX-Taint-Analysis

Pipeline automatizado de SBOM a VEX que utiliza un sistema de IA multiagente seguro para analizar CVEs, razonar sobre la explotabilidad y generar documentos VEX CycloneDX firmados en cumplimiento con las directrices OWASP GenAI.

Ver Repositorio
21hace 29 díasAún no revisado

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

SBOM → VEX Agent

Genere automáticamente documentos CycloneDX VEX firmados a partir de SBOM utilizando un pipeline de IA multiagente seguro, construido de acuerdo con las directrices del proyecto OWASP GenAI Security.

License: MIT OWASP CycloneDX AutoGen


El Problema

Generar un SBOM revela cientos de CVEs. En la práctica, más del 90% no son explotables en el contexto de ejecución de un producto específico. Sin un documento Vulnerability Exploitability eXchange (VEX), todas las herramientas posteriores (Dependency‑Track, compuertas de lanzamiento, listas de verificación de adquisiciones) se ahogan en falsos positivos.

Lea la WIKI para más detalles técnicos y resultados de pruebas.

La generación manual de VEX consume mucho tiempo y no escala. Un analista experimentado puede pasar horas evaluando un solo componente. Un SBOM de producción puede contener entre 500 y 2000 componentes.

Este proyecto automatiza ese pipeline de razonamiento, de forma segura, sin dependencia del proveedor, con todos los datos en su infraestructura.

En 2024, la investigadora de seguridad Johanna Curiel documentó exactamente este problema al analizar el cliente Java de Kubernetes (). El escáner OSV identificó un CVE de alto riesgo en en segundos. Determinar que era (plugin en tiempo de compilación, nunca se ejecuta en tiempo de ejecución) tomó horas de análisis manual. Este proyecto automatiza ese paso de razonamiento.

Motivación real:
artículo en LinkedIn
com.diffplug.spotless:spotless-maven-plugin 1.17.0
not_affected

Arquitectura

Cuatro zonas de seguridad. Nada cruza un límite sin validación explícita.

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           │
└─────────────────────────────────────────────────────────────────┘

Cumplimiento OWASP GenAI

Este proyecto está diseñado según OWASP Top 10 for LLM Applications 2025 y OWASP Top 10 for Agentic Applications 2026.

Riesgo OWASPIDMitigación en este proyecto
Inyección de promptLLM01Todos los campos del SBOM se sanitizan antes de inyectarlos al LLM; lista de bloqueo de patrones de inyección
Divulgación de información sensibleLLM02Depurador de PII en todas las salidas del agente; filtro de rutas internas
Manejo incorrecto de salidasLLM05Validación del esquema CycloneDX antes de firmar; reintento en caso de fallo
Agencia excesivaLLM06Herramientas de solo lectura durante el análisis; puerta HITL para todos los fallos con CVSS ≥ 7.0
Fuga de prompt del sistemaLLM07Políticas internas separadas del prompt del sistema
Debilidad en vectores/embeddingsLLM08Vectores almacenados firmados; procedencia verificada antes de inyectar contexto
Consumo sin límitesLLM10MaxMessageTermination(20); presupuesto de tokens por componente; timeout de NVD

Humano en el bucle es obligatorio. Una declaración VEX not_affected para un CVE de alta gravedad es una afirmación de nivel legal. Ningún VEX se firma sin la aprobación de un revisor humano. Esto no es configurable.


Stack Tecnológico

ComponenteHerramientaNotas
Orquestación de agentesAutoGen AgentChat v0.4Multiagente, uso de herramientas, hooks de mensajes
LLM (recomendado)Qwen2.5-Coder-32BMejor JSON estructurado + razonamiento de seguridad
Servidor LLMvLLM (prod) / Ollama (dev)API compatible con OpenAI
Datos de CVEAPI NVD v2 + OSV.dev + EPSSTodos gratuitos, sin necesidad de clave API
Almacén de vectoresQdrantAutoalojado, decisiones VEX anteriores
Embeddingsall-MiniLM-L6-v2 (sentence-transformers)Completamente local
Formatos SBOMCycloneDX 1.4–1.7 (JSON/XML), SPDX 2.3/3.0Validado por esquema al ingerir
Salida VEXCycloneDX 1.6 VEXValidado por esquema antes de firmar
Firmacosign (Sigstore keyless)Con marca de tiempo, registrado en auditoría
Registro de auditoríaPostgreSQL (solo anexar, pgaudit)Cada decisión del agente registrada

Todo se ejecuta en las instalaciones. Ningún dato sale de su infraestructura.


Requisitos

Hardware (producción):

  • 1× A100 80GB, o 2× RTX 3090 (48GB VRAM combinados) para Qwen2.5-Coder-32B
  • 16GB+ de RAM del sistema
  • 100GB+ SSD para pesos del modelo y almacén de vectores

Hardware (desarrollo / SBOM pequeños):

  • Cualquier máquina con 16GB de RAM — use llama3.1:8b mediante Ollama

Software:

  • Python 3.11+
  • Docker + Docker Compose
  • Node.js 18+ (para herramientas cosign)

Inicio Rápido

1. Clonar e instalar

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. Iniciar el backend LLM

root@kitploit:~
# Desarrollo — Ollama (CPU/GPU, cualquier portátil)
ollama pull llama3.1
ollama serve

# Producción — vLLM (GPU requerida)
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. Iniciar servicios de apoyo

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

4. Ejecutar el agente en un SBOM

root@kitploit:~
python -m vex_agent analyse \
  --sbom ruta/a/tu-sbom.cdx.json \
  --output ruta/a/salida.vex.json

El pipeline:

  1. Validará y sanitizará el SBOM
  2. Buscará CVEs para cada componente
  3. Razonará sobre la explotabilidad
  4. Presentará un borrador de VEX a un revisor humano
  5. Firmará y emitirá el documento final tras la aprobación

Configuración

Copie .env.example a .env y establezca:

root@kitploit:~
# Backend LLM
VLLM_BASE_URL=http://localhost:8000/v1    # o Ollama: http://localhost:11434/v1
LLM_MODEL=Qwen2.5-Coder-32B-Instruct     # o llama3.1 para desarrollo

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

# Firma (dejar en blanco para usar cosign keyless mediante OIDC de Sigstore)
GPG_KEY_ID=                               # opcional: usar GPG en su lugar

Estructura del Proyecto

root@kitploit:~
sbom-vex-agent/
├── vex_agent/
│   ├── ingest.py          # Zona 1: Validación y sanitización del SBOM
│   ├── guardrails.py      # Zona 2: Middleware OWASP (GuardrailedAgent)
│   ├── agents/
│   │   ├── orchestrator.py
│   │   ├── cve_analyst.py
│   │   ├── exploit_reasoner.py
│   │   └── vex_writer.py
│   ├── tools/
│   │   ├── nvd.py         # Cliente API NVD v2
│   │   ├── osv.py         # Cliente OSV.dev
│   │   └── epss.py        # Puntuación EPSS
│   ├── vector_store.py    # Integración con Qdrant + firma de procedencia
│   ├── hitl.py            # Puerta de revisión humano en el bucle
│   └── sign.py            # Zona 4: Firma con cosign / GPG
├── schemas/
│   ├── cdx-1.6.schema.json
│   └── cdx-1.6-vex.schema.json
├── tests/
├── docker-compose.yml
├── .env.example
└── requirements.txt

Formato de Salida VEX

El agente produce documentos CycloneDX 1.6 VEX. Ejemplo de salida para un solo 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."
      }
    }
  ]
}

Valores válidos para state: affected · not_affected · fixed · under_investigation

Valores válidos para justification (para 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

Recursos Relacionados

  • 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 — Análisis de Vulnerabilidades en la Cadena de Suministro del Cliente Java de Kubernetes Usando SBOM y Generación de VEX (2024)

Contribuciones

Las contribuciones son bienvenidas. Por favor, abra un issue antes de enviar un pull request para cambios significativos.

Los problemas de seguridad deben reportarse de forma privada — ver SECURITY.md.


Licencia

MIT — ver LICENSE.


Construido en alineación con el OWASP GenAI Security Project. No es un proyecto oficial de OWASP.

Descargar herramienta