Files
ViewDesignEngine/SECURITY.md
T
茂之钳 7b76689ea1
Build & Test / build-and-test (push) Waiting to run
Build & Test / python-bindings (push) Blocked by required conditions
CI / Build & Test (push) Failing after 41s
CI / Release Build (push) Failing after 30s
feat(v11): CI/CD + regression tests + fuzzing + benchmarks + code quality
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)
2026-07-27 01:10:58 +08:00

96 lines
3.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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`
- 备用联系: 通过项目维护者私信