AdonisVernaliss/SupplyGuard
GitHub: AdonisVernaliss/SupplyGuard
SupplyGuard 是一个对齐 BSI TR-03183-2 v2.1.0 标准的 CycloneDX SBOM 合规验证与漏洞分析工作空间,帮助团队检测软件物料清单的合规性并发现已知安全漏洞。
Stars: 0 | Forks: 0
# SupplyGuard
[Deutsch](README.de.md) · [Русский](README.ru.md)
SupplyGuard 是一个独立开发的 SBOM 安全工作空间。它根据 **BSI TR-03183-2 v2.1.0** 的字段映射验证 CycloneDX JSON,向 [OSV](https://osv.dev/) 查询已知漏洞,并将这两项结果转化为一份重点突出的报告。
## 当前 profile
| 项目 | 支持的值 |
| --- | --- |
| Profile | `BSI TR-03183-2` |
| Profile 版本 | `2.1.0` |
| 映射基准 | `CycloneDX JSON 1.6` |
| 接受的 CycloneDX 版本 | `1.6`, `1.7` |
| 漏洞数据提供方 | OSV 实时 API 或确定性离线演示 |
该 profile 在 [`apps/api/app/profile.py`](apps/api/app/profile.py) 中声明,并由健康检查 endpoint、分析响应和本地化报告返回。有关已实现的字段映射和限制,请参阅 [`docs/bsi-profile.md`](docs/bsi-profile.md)。
## 快速开始
环境要求:Python 3.12+、[uv](https://docs.astral.sh/uv/)、Node.js 22+。
```
# Terminal 1 — API
cd apps/api
uv sync --dev
uv run uvicorn app.main:app --reload
# Terminal 2 — web app
cd apps/web
npm ci
npm run dev
```
打开 `http://localhost:5173`。API 文档可在 `http://localhost:8000/docs` 查看。
内置演示无需网络访问。上传的 SBOM 默认使用实时 OSV;选择“Offline demo data”即可在没有外部请求的情况下进行测试。
## Docker
```
docker compose up --build
```
Web 应用暴露在 `http://localhost:3000`,API 暴露在 `http://localhost:8000`,而 PostgreSQL 保留在 Compose 网络内部。
## 验证
```
cd apps/api
uv run pytest
uv run ruff check .
uv run ruff format --check .
cd ../web
npm run check
npm run build
```
## 架构
```
flowchart LR
Browser["SvelteKit UI
EN · DE · RU"] --> API["FastAPI API"] API --> Validator["BSI 2.1.0
profile validator"] API --> Scanner["OSV / demo
vulnerability provider"] API --> DB[("SQLite or PostgreSQL")] Validator --> Report["Localized JSON report"] Scanner --> Report ``` 更多细节:[`docs/architecture.md`](docs/architecture.md) · [`docs/threat-model.md`](docs/threat-model.md) ## API - `GET /api/v1/health` - `POST /api/v1/analyses?provider=osv|demo` - `POST /api/v1/analyses/demo` - `GET /api/v1/analyses` - `GET /api/v1/analyses/{id}` - `GET /api/v1/analyses/{id}/report?lang=en|de|ru` ## 仓库布局 ``` apps/api/ FastAPI service, validator, providers, tests apps/web/ SvelteKit interface docs/ Profile mapping, architecture, threat model samples/ Deterministic CycloneDX 1.6 demo SBOM .github/ CI workflow ``` ## 许可证 MIT
EN · DE · RU"] --> API["FastAPI API"] API --> Validator["BSI 2.1.0
profile validator"] API --> Scanner["OSV / demo
vulnerability provider"] API --> DB[("SQLite or PostgreSQL")] Validator --> Report["Localized JSON report"] Scanner --> Report ``` 更多细节:[`docs/architecture.md`](docs/architecture.md) · [`docs/threat-model.md`](docs/threat-model.md) ## API - `GET /api/v1/health` - `POST /api/v1/analyses?provider=osv|demo` - `POST /api/v1/analyses/demo` - `GET /api/v1/analyses` - `GET /api/v1/analyses/{id}` - `GET /api/v1/analyses/{id}/report?lang=en|de|ru` ## 仓库布局 ``` apps/api/ FastAPI service, validator, providers, tests apps/web/ SvelteKit interface docs/ Profile mapping, architecture, threat model samples/ Deterministic CycloneDX 1.6 demo SBOM .github/ CI workflow ``` ## 许可证 MIT
标签:AV绕过, CycloneDX, FastAPI, MITM代理, SBOM, SvelteKit, 安全合规, 测试用例, 硬件无关, 网络代理, 网络测绘, 请求拦截, 逆向工具