Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
SBOM-VEX-Taint-Analysis — 使用安全的多智能体AI系统自动完成从SBOM到VEX的管道,分析CVE、推理可利用性,并生成符合OWASP GenAI指南的签名CycloneDX VEX文档。 | Kitploit
工具/GitHubGitHub/owasp/sbom-vex-taint-analysis
漏洞分析供应链安全论文与研究学习与教育精选资源AI 安全
GitHubowasp/sbom-vex-taint-analysis

SBOM-VEX-Taint-Analysis

使用安全的多智能体AI系统自动完成从SBOM到VEX的管道,分析CVE、推理可利用性,并生成符合OWASP GenAI指南的签名CycloneDX VEX文档。

查看仓库
211个月前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

SBOM → VEX Agent

自动从 SBOM 生成已签名的 CycloneDX VEX 文档,使用安全的多元人工智能管道,依照 OWASP GenAI 安全项目指南构建。

License: MIT OWASP CycloneDX AutoGen


问题

生成一份 SBOM 会发现数百个 CVE。实际上,超过 90% 在特定产品的运行时环境中不可利用。如果没有漏洞可利用性交换(VEX)文档,每个下游工具 —— Dependency-Track、发布闸门、采购清单 —— 都会被误报淹没。

更多技术细节和测试结果请查阅 WIKI。

手动生成 VEX 耗时且无法规模化。一名熟练分析员可能花费数小时评估单个组件。一份生产环境的 SBOM 可能包含 500 到 2000 个组件。

本项目自动化了这一推理管道——安全、无供应商锁定,所有数据保留在你的基础设施中。

实际动机: 2024 年,安全研究员 Johanna Curiel 在分析 Kubernetes Java 客户端时记录了这一问题(LinkedIn 文章)。OSV 扫描器在几秒内识别出 com.diffplug.spotless:spotless-maven-plugin 1.17.0 中存在高风险 CVE。确定其为 not_affected(构建时插件,运行时从不执行)却花费了数小时手动分析。本项目自动化了这一推理步骤。


架构

四个安全区域。没有经过显式验证,任何边界不会被跨越。

root@kitploit:~
┌─────────────────────────────────────────────────────────────────┐
│  区域 1 —— 输入接收(无LLM)                                      │
│  SBOM上传 → 模式验证 → 清理 → SHA-256审计哈希                    │
└────────────────────────────┬────────────────────────────────────┘
                             │
┌────────────────────────────▼────────────────────────────────────┐
│  区域 2 —— OWASP护栏中间件                                       │
│  提示词护栏 (LLM01) · 输出过滤器 (LLM02/05)                       │
│  代理限制器 (LLM06) · 令牌预算 (LLM10)                            │
└────────────────────────────┬────────────────────────────────────┘
                             │
┌────────────────────────────▼────────────────────────────────────┐
│  区域 3 —— 多元代理管道 (AutoGen AgentChat)                      │
│                                                                  │
│  编排器                                                           │
│       ├── CVE分析员      每个组件的 NVD v2 + OSV + EPSS          │
│       ├── 可利用性推理器  调用图 · LLM推理 · RAG                  │
│       └── VEX编写器      CycloneDX 1.6 模式验证                  │
│                                                                  │
│  向量存储 (Qdrant) —— 已签名的历史VEX决策                         │
└────────────────────────────┬────────────────────────────────────┘
                             │
┌────────────────────────────▼────────────────────────────────────┐
│  区域 4 —— 输出、签名、审计                                        │
│  人机交互闸门 → cosign/GPG签名 → 审计日志                         │
└─────────────────────────────────────────────────────────────────┘

OWASP GenAI 合规

本项目依照 OWASP Top 10 for LLM Applications 2025 和 OWASP Top 10 for Agentic Applications 2026 设计。

人机交互是强制性的。 对高危 CVE 做出 not_affected 的 VEX 声明是一种法律级别的断言。没有人类评审员批准,VEX 不会签名。此选项不可配置。


技术栈

一切运行在本地。没有数据离开你的基础设施。


要求

硬件(生产环境):

  • 1× A100 80GB,或 2× RTX 3090(合计 48GB VRAM)用于 Qwen2.5-Coder-32B
  • 16GB+ 系统 RAM
  • 100GB+ SSD 用于模型权重和向量存储

硬件(开发 / 小型 SBOM):

  • 任何 16GB RAM 的机器 —— 通过 Ollama 使用 llama3.1:8b

软件:

  • Python 3.11+
  • Docker + Docker Compose
  • Node.js 18+(用于 cosign 工具)

快速开始

1. 克隆并安装

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. 启动 LLM 后端

root@kitploit:~
# 开发环境 —— Ollama(CPU/GPU,任何笔记本)
ollama pull llama3.1
ollama serve

# 生产环境 —— vLLM(需要 GPU)
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. 启动支持服务

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

4. 在 SBOM 上运行代理

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

管道将:

  1. 验证并清理 SBOM
  2. 查找每个组件的 CVE
  3. 推理可利用性
  4. 向人类评审员展示 VEX 草稿
  5. 批准后签名并输出最终文档

配置

复制 .env.example 为 .env 并设置:

root@kitploit:~
# LLM 后端
VLLM_BASE_URL=http://localhost:8000/v1    # 或 Ollama: http://localhost:11434/v1
LLM_MODEL=Qwen2.5-Coder-32B-Instruct     # 开发时使用 llama3.1

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

# 签名(留空则使用 cosign keyless 通过 Sigstore OIDC)
GPG_KEY_ID=                               # 可选:改用 GPG

项目结构

root@kitploit:~
sbom-vex-agent/
├── vex_agent/
│   ├── ingest.py          # 区域 1:SBOM 验证和清理
│   ├── guardrails.py      # 区域 2:OWASP 中间件(GuardrailedAgent)
│   ├── agents/
│   │   ├── orchestrator.py
│   │   ├── cve_analyst.py
│   │   ├── exploit_reasoner.py
│   │   └── vex_writer.py
│   ├── tools/
│   │   ├── nvd.py         # NVD v2 API 客户端
│   │   ├── osv.py         # OSV.dev 客户端
│   │   └── epss.py        # EPSS 评分
│   ├── vector_store.py    # Qdrant 集成 + 来源签名
│   ├── hitl.py            # 人机交互评审闸门
│   └── sign.py            # 区域 4:cosign / GPG 签名
├── schemas/
│   ├── cdx-1.6.schema.json
│   └── cdx-1.6-vex.schema.json
├── tests/
├── docker-compose.yml
├── .env.example
└── requirements.txt

VEX 输出格式

代理产生 CycloneDX 1.6 VEX 文档。单个组件的示例输出:

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": "插件仅在构建时执行;部署的运行时中不存在。"
      }
    }
  ]
}

有效的 state 值:affected · not_affected · fixed · under_investigation

适用于 not_affected 的有效 justification 值:

  • component_not_present
  • vulnerable_code_not_present
  • vulnerable_code_not_in_execute_path
  • vulnerable_code_cannot_be_controlled_by_adversary
  • inline_mitigations_already_exist

相关资源

  • 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)

贡献

欢迎贡献。请在提交拉取请求前先提出 issue,并注明重大更改。

安全问题应私下报告 —— 见 SECURITY.md。


许可证

MIT —— 见 LICENSE。


依照 OWASP GenAI Security Project 构建。并非官方 OWASP 项目。

下载工具
OWASP 风险编号本项目中的缓解措施
提示注入LLM01所有 SBOM 字段在注入 LLM 前已清理;注入模式黑名单
敏感信息泄露LLM02所有代理输出的 PII 清洗器;内部路径过滤器
不当输出处理LLM05签名前的 CycloneDX 模式验证;失败时重试
过度代理LLM06分析期间只读工具;所有 CVSS ≥ 7.0 的裁定需人机交互闸门
系统提示泄露LLM07内部策略与系统提示分离
向量/嵌入弱点LLM08存储的向量已签名;上下文注入前校验来源
无限制消耗LLM10MaxMessageTermination(20);每个组件的令牌预算;NVD 超时
组件工具备注
代理编排AutoGen AgentChat v0.4多代理、工具使用、消息钩子
LLM(推荐)Qwen2.5-Coder-32B最佳结构化 JSON + 安全推理
LLM 服务vLLM(生产)/ Ollama(开发)OpenAI 兼容 API
CVE 数据NVD v2 API + OSV.dev + EPSS全部免费,无需 API 密钥
向量存储Qdrant自托管,历史 VEX 决策
嵌入all-MiniLM-L6-v2(sentence-transformers)完全本地
SBOM 格式CycloneDX 1.4–1.7(JSON/XML),SPDX 2.3/3.0接收时模式验证
VEX 输出CycloneDX 1.6 VEX签名前模式验证
签名cosign(Sigstore keyless)时间戳,审计日志记录
审计日志PostgreSQL(仅追加,pgaudit)记录每个代理决策