aibim-ai/AI-Supply-Chain-Trust

GitHub: aibim-ai/AI-Supply-Chain-Trust

基于 Rust 构建的开源 AI 供应链信任与安全评估工具,通过对 GitHub AI 仓库进行多维度实时证据分析生成信任评分和安全上下文报告。

Stars: 0 | Forks: 0

# AI 供应链信任 English | [简体中文](README.zh.md) | [繁體中文](README.zht.md) | [한국어](README.ko.md) | [Deutsch](README.de.md) | [Español](README.es.md) | [Français](README.fr.md) | [Italiano](README.it.md) | [Dansk](README.da.md) | [日本語](README.ja.md) | [Polski](README.pl.md) | [Русский](README.ru.md) | [Bosanski](README.bs.md) | [العربية](README.ar.md) | [Norsk](README.no.md) | [Português (Brasil)](README.br.md) | [ไทย](README.th.md) | [Türkçe](README.tr.md) | [Українська](README.uk.md) | [বাংলা](README.bn.md) | [Ελληνικά](README.el.md) | [Tiếng Việt](README.vi.md) | [हिन्दी](README.hi.md) **免费、开源的仓库信任与供应链安全扫描器。** 基于八大支柱框架评估公开的 GitHub 仓库,仅从实时证据中生成交付信任评分、安全上下文和漏洞线索 —— 绝无模拟数据,不使用兜底启发式算法。使用 Rust 构建。早期版本为 Python;现已完全移植至包含 15 个 crate 的工作区。 ## 快速开始 ``` # 构建 cd backend && cargo build --release -p ai-supply-chain-trust # 运行 server cd backend && GITHUB_TOKEN=ghp_xxx cargo run -p ai-supply-chain-trust serve # 扫描 repo cd backend && GITHUB_TOKEN=ghp_xxx cargo run -p ai-supply-chain-trust eval owner/repo # 运行所有测试 cd backend && cargo test --workspace ``` ## 架构与证据 ``` backend/ ├── bin/ai-supply-chain-trust CLI entrypoint (serve, eval, discover, scan, daemon) ├── crates/ Rust workspace crates ├── migrations/ Database migrations └── tests/ Backend integration and guardrail tests frontend/ ├── web/ Static browser app and assets ├── Dockerfile Frontend Nginx image └── nginx.conf SPA/static asset serving .github/deploy/production/ └── docker-compose.prod.yml GitHub Actions production deploy config ``` 维护的技术契约: - [架构与 schema](docs/architecture.md) - [API 参考](docs/api.md) - [部署与恢复](docs/deployment.md) - [数据与证据策略](docs/data-policy.md) - [测试与性能证据](docs/testing-and-performance.md) ## API Endpoints | Method | Path | Description | |--------|------|-------------| | GET | `/api` | API 索引 | | GET | `/api/v1/openapi.json` | OpenAPI 3.1.0 schema | | GET | `/api/v1/health` | 健康检查 | | GET | `/api/v1/healthz` | 包含数据库 ping 的健康检查 | | GET | `/api/v1/context/{owner}/{repo}` | 获取安全上下文信封 | | POST | `/api/v1/context` | 创建/刷新安全上下文 | | POST | `/api/v1/scan` | 运行信任扫描 | | GET | `/api/v1/leaderboard` | 排行榜 | | GET | `/api/v1/recent-scans` | 近期扫描 | | GET | `/api/v1/result` | 获取评估结果 | | GET | `/api/v1/history` | 报告历史 | | GET | `/api/v1/intel/hits` | 情报命中 | | GET | `/api/v1/pig` | 发布者身份图谱 | | GET | `/api/v1/suggest` | 仓库建议 | | GET | `/api/v1/scoring/versions` | 评分版本 | | GET | `/api/v1/metrics` | JSON 指标 | | GET | `/api/v1/metrics/prometheus` | Prometheus 指标 | | GET | `/api/v1/events` | SSE 事件流 | | GET | `/api/v1/queue/stats` | 队列统计 | | POST | `/api/v1/queue/pause` | 暂停扫描队列 | | POST | `/api/v1/queue/resume` | 恢复扫描队列 | | POST | `/api/v1/queue/rescan` | 将重新扫描加入队列 | | GET | `/r/{owner}/{repo}` | 安全上下文 HTML 页面 | | GET | `/r/{owner}/{repo}.json` | 安全上下文 JSON 产物 | | GET | `/r/{owner}/{repo}.md` | 安全上下文 Markdown 产物 | | GET | `/r/{owner}/{repo}.leads.json` | 漏洞线索 JSON 产物 | | POST | `/mcp` | MCP JSON-RPC 2.0 endpoint | ## 八大支柱 | # | 支柱 | 最高分 | 权重 | |---|--------|-----------|--------| | 1 | 发布者可信度 | 20 | 20 | | 2 | 仓库健康与活跃度 | 15 | 15 | | 3 | OpenSSF Scorecard | 25 | 25 | | 4 | 代码与依赖安全性 | 15 | 15 | | 5 | 模型 / 产物完整性 | 10 | 10 | | 6 | 供应链攻击预测 | 8 | 8 | | 7 | 发布者身份图谱 | 4 | 4 | | 8 | AI / MCP 特有风险 | 3 | 3 | ### 评级表 | 评级 | 分数 ≥ | 结论 | |-------|---------|---------| | A | 85 | 符合标准审查条件 | | B | 70 | 存在已知缺失的审查 | | C | 50 | 需要人工安全审查 | | D | 30 | 没有安全负责人则不予批准 | | F | < 30 | 需要人工安全审查 | **策略阻断**:任何严重警告标志都会强制将评级设为 F,并显示 `Blocked by policy signal`,而不受分数影响。证据缺失会降低置信度,并可能在证据补全前下调决策标签。 ## 数据策略 AI 供应链信任强制执行严格的**禁止编造安全证据**策略: - `ContextStatus::Ready` 需要 `VerifiedEvidence` —— 至少包含一个真实的证据来源(来自实时 API 的 commit SHA、advisory/OSV 数据,或扫描器运行结果) - `VerifiedEvidence` 只能通过一个易错构造器(在编译时拒绝空证据)来构建 - 每个外部 API 的失败都会产生一个明确的 `DataSourceError` 变体 - 所有证据状态枚举均带有 `#![deny(unreachable_patterns)]` - 种子数据受 `#[cfg(feature = "seed-data")]` 控制 —— 永远不会编译进生产环境 - 过期的仓库元数据缓存可能会产生明确标记为部分快速结果的输出;它无法创建修复、CVE 或就绪的安全上下文。 ## CLI 使用方法 ``` ai-supply-chain-trust serve --port 8000 ai-supply-chain-trust eval owner/repo --json ai-supply-chain-trust discover --limit-per-source 10 ai-supply-chain-trust scan --path /local/repo ai-supply-chain-trust leaderboard --query tensorflow ai-supply-chain-trust security-context owner/repo --format markdown ai-supply-chain-trust daemon --discovery-interval 3600 ai-supply-chain-trust db stats ai-supply-chain-trust doctor ``` ## Docker ``` docker build -f backend/Dockerfile -t ai-supply-chain-trust backend docker run -p 8000:8000 -e GITHUB_TOKEN=xxx ai-supply-chain-trust ``` ## 开发 ``` scripts/test_evidence.sh BASE_URL=http://127.0.0.1:8000 scripts/benchmark_scan_pipeline.sh ``` ## License MIT
标签:可视化界面, 测试用例, 自定义请求头, 请求拦截, 通知系统