ZHK7508/ai-sbom

GitHub: ZHK7508/ai-sbom

专为AI项目设计的供应链材料清单生成器,能发现并审计模型权重、MCP服务器、提示模板等AI特有组件,同时对接漏洞库进行安全风险比对。

Stars: 0 | Forks: 0

# ai-sbom AI 供应链 SBOM 生成器。扫描 AI 项目并生成 CycloneDX 1.6 材料清单,涵盖 Python 包、MCP 服务器、模型权重、提示模板和外部 API 依赖项——然后根据 AI 专用的安全建议和 OSV 漏洞数据库对组件进行交叉比对。 ## 它能发现的内容 | 发现器 | 来源 | 组件类型 | |---|---|---| | `python_packages` | `pyproject.toml`, `requirements*.txt` | `python-package`, `agent-framework`, `vector-db` | | `mcp_servers` | `mcp.json`, `claude_desktop_config.json` | `mcp-server` | | `models` | 源文件 (HuggingFace `from_pretrained` 引用) | `model-weight`, `embedding-model` | | `prompts` | `*.md` 提示,内联 `SYSTEM_PROMPT` 变量 | `prompt-template` | | `external_apis` | 源文件 (Anthropic, OpenAI, Cohere 等) | `external-api` | ## 信任分类 | 信任级别 | 分配对象 | |---|---| | `vendor` | 官方发布的 MCP 服务器 (`@modelcontextprotocol/*`) | | `open-source` | 来自已知组织的 PyPI 包 | | `community` | 未知组织的 HuggingFace 模型、社区 MCP 服务器 | | `unknown` | 发现器无法分类的任何内容 | ## 快速开始 ``` git clone cd ai-sbom uv sync # 扫描项目(离线 — 无 OSV 网络调用) uv run ai-sbom scan /path/to/your/ai-project --no-osv # 使用 OSV 漏洞匹配进行完整扫描(需要联网) uv run ai-sbom scan /path/to/your/ai-project # 将输出写入特定目录 uv run ai-sbom scan /path/to/your/ai-project --output ./sbom-out/ ``` 输出文件: ``` sbom-out/ ├── ai-sbom.cdx.json # CycloneDX 1.6 BOM └── ai-sbom.report.json # Internal JSON report ``` ## 输出示例 ``` ┌──────────────────────┬─────────────────┬─────────────┬─────────┐ │ Name │ Kind │ Trust │ Version │ ├──────────────────────┼─────────────────┼─────────────┼─────────┤ │ anthropic │ python-package │ open-source │ 0.97.0 │ │ langgraph │ agent-framework │ open-source │ 1.1.10 │ │ chromadb │ vector-db │ open-source │ 1.5.8 │ │ @mcp/server-files │ mcp-server │ vendor │ latest │ │ my-custom-mcp │ mcp-server │ community │ — │ │ unverified/model │ model-weight │ community │ — │ │ prompts/system.md │ prompt-template │ first-party │ — │ │ anthropic (API) │ external-api │ vendor │ — │ └──────────────────────┴─────────────────┴─────────────┴─────────┘ 1 vulnerability match: [MEDIUM] AI-2024-0002 — my-custom-mcp: unverified community MCP server ``` ## 建议匹配 `feeds/ai_advisories.json` 包含尚未进入 CVE/OSV 的 AI 专用规则: - **AI-2024-0001** — 缺乏完整性验证的社区模型权重 - **AI-2024-0002** — 未经验证的社区 MCP 服务器 向此文件添加条目即可扩展覆盖范围,无需更改代码。 ## 提示完整性 提示模板的出处字段中将包含一个 `sha256:` 哈希值: ``` { "name": "prompts/system.md", "kind": "prompt-template", "provenance": { "integrity_hash": "sha256:a3f2..." } } ``` 这使您能够检测两次扫描之间的提示篡改情况。 ## 开发 ``` # 运行测试(使用 tests/fixtures/sample_project 中的 fixture 项目) uv run pytest tests/ -v ```
标签:Agent, AI供应链, AI安全, Anthropic, Chat Copilot, CIS基准, CycloneDX, DevSecOps, HuggingFace, Linux系统监控, LLM, MCP Server, OpenAI, OSV, Python, SBOM, Unmanaged PE, Vercel, WebSocket, 上游代理, 主机安全, 人工智能, 依赖分析, 信任评级, 内存规避, 向量数据库, 外部API, 大模型, 安全合规, 嵌入式模型, 提示词工程, 无后门, 模型安全, 模型权重, 物料清单, 用户模式Hook绕过, 硬件无关, 策略决策点, 网络代理, 网络安全, 跌倒检测, 软件物料清单, 逆向工具, 隐私保护