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
标签:可视化界面, 测试用例, 自定义请求头, 请求拦截, 通知系统