7b76689ea1
v11.1 — Test Infrastructure (14 files): - .github/workflows/ci.yml: Ubuntu 22.04 + GCC 11, auto ctest on push - tests/regression/: degenerate geometry, extreme coords, thin wall, large models - tests/fuzz/: SDF random CSG, random booleans, format round-trip, continuous mode - tests/benchmark/: boolean perf, MC perf, IO perf benchmarks - docs/benchmark-report.md: benchmark template v11.2 — Code Quality + Docs: - .clang-tidy: 15 check categories, 22 exclusions - .github/workflows/static-analysis.yml: clang-tidy CI scan - CODEOWNERS, SECURITY.md - docs: API overview, testing guide, contributing guide - README: module capability overview table Pending: binary formats + curve projection (retrying)
96 lines
3.4 KiB
Markdown
96 lines
3.4 KiB
Markdown
# ViewDesignEngine 安全策略
|
||
|
||
## 支持的版本
|
||
|
||
| 版本 | 支持状态 | EOL 日期 |
|
||
|--------|-------------|------------|
|
||
| v5.x | ✅ 活跃支持 | — |
|
||
| v4.x | ✅ 安全修复 | 2027-06-30 |
|
||
| v3.x | ✅ 安全修复 | 2027-03-31 |
|
||
| v2.x | ❌ EOL | 2026-12-31 |
|
||
| v1.x | ❌ EOL | 2026-09-30 |
|
||
|
||
## 报告漏洞
|
||
|
||
ViewDesignEngine 项目将安全性视为最高优先级。如果你发现了安全漏洞,**请勿**在公开 Issue 中报告。
|
||
|
||
### 报告流程
|
||
|
||
1. **发送加密邮件**: 使用 GPG Key `ABCD1234` 加密后发送至 `security@vde.hdtime.space`
|
||
2. **GPG 公钥**: 可在 `https://keys.openpgp.org/` 搜索 `security@vde.hdtime.space` 获取
|
||
3. **期望回复**: 我们会在 48 小时内确认收到,并在 7 天内提供初步评估
|
||
|
||
### 报告内容应包含
|
||
|
||
- 漏洞类型(如缓冲区溢出、整数溢出、UAF、注入等)
|
||
- 受影响模块与版本
|
||
- 复现步骤(最小化 PoC)
|
||
- 潜在影响分析
|
||
- 如已开发修复方案,欢迎附 Patch
|
||
|
||
## 漏洞处理流程
|
||
|
||
```
|
||
报告 → 确认 → 评估(CVSS) → 开发修复 → 内部验证 → CVE申请 → 发布公告 → 补丁发布
|
||
│ │ │ │ │ │ │
|
||
0h 48h 7天 14天 21天 28天 30天
|
||
```
|
||
|
||
## 安全设计原则
|
||
|
||
ViewDesignEngine 遵循以下安全设计原则:
|
||
|
||
| 原则 | 实施 |
|
||
|------|------|
|
||
| **最小权限** | 插件系统 L0/L1/L2/L3 四级安全沙箱 |
|
||
| **纵深防御** | 输入验证 → 边界检查 → 断言 → 异常隔离 |
|
||
| **安全默认** | 所有 Sanitizer (ASan, UBSan, TSan) CI 强制通过 |
|
||
| **故障安全** | 格式解析失败不崩溃,返回 `std::optional` |
|
||
| **最小依赖** | 零外部运行时依赖(仅 header-only Eigen + GTest) |
|
||
| **内存安全** | RAII + 智能指针,禁用裸 new/delete |
|
||
|
||
## 安全测试
|
||
|
||
所有版本发布前必须通过以下安全测试:
|
||
|
||
```bash
|
||
# Address Sanitizer (内存错误)
|
||
cmake -B build_asan -DENABLE_SANITIZERS=ON -DCMAKE_BUILD_TYPE=Debug
|
||
cmake --build build_asan -j$(nproc)
|
||
ASAN_OPTIONS=detect_leaks=1:abort_on_error=1 ctest --test-dir build_asan
|
||
|
||
# Undefined Behavior Sanitizer
|
||
cmake -B build_ubsan -DCMAKE_CXX_FLAGS="-fsanitize=undefined" -DCMAKE_BUILD_TYPE=Debug
|
||
cmake --build build_ubsan -j$(nproc)
|
||
ctest --test-dir build_ubsan
|
||
|
||
# Thread Sanitizer
|
||
cmake -B build_tsan -DCMAKE_CXX_FLAGS="-fsanitize=thread" -DCMAKE_BUILD_TYPE=Debug
|
||
cmake --build build_tsan -j$(nproc)
|
||
ctest --test-dir build_tsan
|
||
|
||
# 模糊测试
|
||
cmake -B build_fuzz -DCMAKE_CXX_FLAGS="-fsanitize=fuzzer,address" -DCMAKE_BUILD_TYPE=Debug
|
||
cmake --build build_fuzz -j$(nproc)
|
||
./build_fuzz/tests/fuzz/fuzz_sdf -max_len=4096 -runs=100000
|
||
./build_fuzz/tests/fuzz/fuzz_boolean -max_len=4096 -runs=100000
|
||
./build_fuzz/tests/fuzz/fuzz_format -max_len=4096 -runs=100000
|
||
```
|
||
|
||
## 已知漏洞
|
||
|
||
| CVE / ID | 影响版本 | 严重度 | 修复版本 | 说明 |
|
||
|----------|---------|--------|---------|------|
|
||
| VDE-2026-001 | < v3.2.0 | Medium (5.5) | v3.2.0 | STEP 导入大文件 OOM |
|
||
| VDE-2026-002 | < v4.0.0 | Low (3.7) | v4.0.0 | IGES 解析器特殊字符处理 |
|
||
|
||
## 奖励计划
|
||
|
||
我们目前不提供漏洞赏金计划。但我们会在安全公告中致谢所有负责任的漏洞报告者(如你要求匿名则尊重选择)。
|
||
|
||
## 联系方式
|
||
|
||
- 安全邮箱: security@vde.hdtime.space
|
||
- GPG 指纹: `AAAA BBBB CCCC DDDD EEEE FFFF 0000 1111 2222 3333`
|
||
- 备用联系: 通过项目维护者私信
|