STRIDE 威胁建模系统架构分析
版本: 2.1.0 日期: 2026-01-03 目的: 包含图表和模块关系的综合系统架构分析
注意 (v2.1.0): 目录结构已重构:
docs/→references/knowledge/,schemas/,templates/→assets/子目录
1. 系统架构概览
1.1 高层架构图
┌─────────────────────────────────────────────────────────────────────────────────────────────┐
│ Code-First Deep Risk Analysis System v2.1.0 │
├─────────────────────────────────────────────────────────────────────────────────────────────┤
│ │
│ ┌───────────────────────────────────────────────────────────────────────────────────────┐ │
│ │ 表示层 (Layer 4) │ │
│ ├───────────────────────────────────────────────────────────────────────────────────────┤ │
│ │ │ │
│ │ ┌──────────────────────────────────────────────────────────────────────────────┐ │ │
│ │ │ Claude Skill 接口 │ │ │
│ │ │ SKILL.md ──► YAML Front Matter (name, description, triggers) │ │ │
│ │ │ │ ├── 8阶段工作流定义 │ │ │
│ │ │ │ ├── 报告输出规范 │ │ │
│ │ │ │ ├── 语言适配规则 │ │ │
│ │ │ │ └── 核心数据模型 (实体定义) │ │ │
│ │ │ │ │ │ │
│ │ │ └──► 模板 (9 个文件) │ │ │
│ │ │ ├── RISK-ASSESSMENT-REPORT.template.md (主报告) │ │ │
│ │ │ ├── RISK-INVENTORY.template.md │ │ │
│ │ │ ├── MITIGATION-MEASURES.template.md │ │ │
│ │ │ ├── PENETRATION-TEST-PLAN.template.md │ │ │
│ │ │ └── 5 个附加模板 │ │ │
│ │ └──────────────────────────────────────────────────────────────────────────────┘ │ │
│ └───────────────────────────────────────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌───────────────────────────────────────────────────────────────────────────────────────┐ │
│ │ 工作流层 (Layer 3) │ │
│ ├───────────────────────────────────────────────────────────────────────────────────────┤ │
│ │ │ │
│ │ ┌────────────┐ ┌────────────┐ ┌────────────┐ ┌────────────┐ │ │
│ │ │ WORKFLOW.md│ │VALIDATION.md│ │ REPORT.md │ │ GUIDE.md │ │ │
│ │ │ (839 行) │ │ (946 行) │ │ (852 行) │ │ (580 行) │ │ │
│ │ │ │ │ │ │ │ │ │ │ │
│ │ │ Phase 1-5 │ │ Phase 6 │ │ Phase 7-8 │ │ 用户指南 │ │ │
│ │ │ 步骤 │ │ 验证 │ │ 缓解 │ │ │ │ │
│ │ └─────┬──────┘ └─────┬──────┘ └─────┬──────┘ └────────────┘ │ │
│ │ │ │ │ │ │
│ │ └───────────────┴───────────────┘ │ │
│ │ │ │ │
│ │ ▼ │ │
│ │ ┌──────────────────────────────────────────────────────────────────────────────┐ │ │
│ │ │ 8阶段执行流水线 │ │ │
│ │ │ P1 → P2 → P3 → P4 → P5 → P6 → P7 → P8 │ │ │
│ │ │ 项目 DFD 信任 安全 STRIDE 风险 缓解 报告 │ │ │
│ │ │ 理解 边界 设计 分析 验证 措施 生成 │ │ │
│ │ └──────────────────────────────────────────────────────────────────────────────┘ │ │
│ └───────────────────────────────────────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌───────────────────────────────────────────────────────────────────────────────────────┐ │
│ │ 脚本层 (Layer 2) │ │
│ ├───────────────────────────────────────────────────────────────────────────────────────┤ │
│ │ │ │
│ │ scripts/ │ │
│ │ ├── unified_kb_query.py (102KB) ◄── 主知识库查询接口 │ │
│ │ │ ├── STRIDE 查询 (--stride) │ │
│ │ │ ├── CWE/CAPEC 链 (--cwe, --capec, --full-chain) │ │
│ │ │ ├── CVE 查找 (--cve, --cve-for-cwe) │ │
│ │ │ ├── 语义搜索 (--search) │ │
│ │ │ ├── ASVS/WSTG 验证 (--asvs-level, --wstg) │ │
│ │ │ └── 合规查询 (--stride-compliance) │ │
│ │ │ │ │
│ │ ├── module_discovery.py (11KB) ◄── Phase 1: 项目结构 │ │
│ │ │ └── 文件分类, 类型检测 │ │
│ │ │ │ │
│ │ ├── stride_matrix.py (7.6KB) ◄── Phase 5: STRIDE per Interaction │ │
│ │ │ └── 威胁类别计算 │ │
│ │ │ │ │
│ │ └── phase_data.py ◄── 跨阶段数据和验证 (v2.2.2) │ │
│ │ └── YAML提取, CP1/CP2/CP3验证 │ │
│ │ │ │
│ │ [仅开发环境 - 不含于发布版本] │ │
│ │ ├── collect_code_stats.py ◄── LOC/文件统计 │ │
│ │ ├── build_knowledge_base.py ◄── 知识库构建 (离线) │ │
│ │ ├── build_cve_index.py ◄── CVE索引构建 │ │
│ │ ├── prebuild_semantic_index.py ◄── 嵌入向量生成 │ │
│ │ └── kb_incremental_update.py ◄── 知识库更新 │ │
│ │ │ │
│ └───────────────────────────────────────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌───────────────────────────────────────────────────────────────────────────────────────┐ │
│ │ 知识层 (Layer 1) │ │
│ ├───────────────────────────────────────────────────────────────────────────────────────┤ │
│ │ │ │
│ │ ┌─────────────────────────────┐ ┌─────────────────────────────────────────────────┐│ │
│ │ │ SQLite 数据库 │ │ YAML 知识文件 ││ │
│ │ │ │ │ ││ │
│ │ │ security_kb.sqlite (14MB) │ │ security-design.yaml (17KB) ││ │
│ │ │ ├── CWE (974) │ │ ├── 16 个安全域 ││ │
│ │ │ ├── CAPEC (615) │ │ └── 安全域 → STRIDE 映射 ││ │
│ │ │ ├── ATT&CK (835) │ │ ││ │
│ │ │ ├── WSTG (121) │ │ stride-library.yaml (5KB) ││ │
│ │ │ ├── MASTG (206) │ │ ├── STRIDE 类别 ││ │
│ │ │ ├── ASVS (345) │ │ └── 元素→威胁映射 ││ │
│ │ │ ├── 合规 (115) │ │ ││ │
│ │ │ └── 嵌入向量 (3,278) │ │ capec-mappings.yaml (300KB) ││ │
│ │ │ │ │ ├── 攻击模式 ││ │
│ │ │ security_kb_extension.sqlite │ │ └── ATT&CK 映射 ││ │
│ │ │ (304MB) │ │ ││ │
│ │ │ ├── CVE (323,830) │ │ llm-threats.yaml (31KB) ││ │
│ │ │ └── CVE→CWE (108,409) │ │ └── OWASP LLM Top 10 ││ │
│ │ └─────────────────────────────┘ └─────────────────────────────────────────────────┘│ │
│ │ │ │
│ │ ┌─────────────────────────────────────────────────────────────────────────────────┐ │ │
│ │ │ 安全控制 (L3+L4) │ │ │
│ │ │ security-controls/ │ │ │
│ │ │ ├── control-set-{01-10}-*.md ◄── 10 个核心域控制 │ │ │
│ │ │ ├── control-set-ext-*.md ◄── 8 个扩展域控制 │ │ │
│ │ │ └── references/ (73 文件) ◄── OWASP 场景实践 │ │ │
│ │ └─────────────────────────────────────────────────────────────────────────────────┘ │ │
│ └───────────────────────────────────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────────────────────────────┘
1.2 组件摘要
| 层 | 组件 | 文件 | 目的 |
|---|---|---|---|
| Layer 4 | 表示层 | 1 SKILL + 9 模板 + 4 Schema | 用户界面和报告生成 |
| Layer 3 | 工作流层 | WORKFLOW + VALIDATION + REPORT + GUIDE | 阶段执行逻辑 |
| Layer 2 | 脚本层 | 11 Python 脚本 | 自动化和数据处理 |
| Layer 1 | 知识层 | 2 SQLite DB + 12 YAML + 90 MD 控制 | 安全知识存储 |
2. 数据流图
2.1 完整系统数据流
┌─────────────────────────────────────────────────────────────────────────────────────────────┐
│ STRIDE 系统数据流图 │
├─────────────────────────────────────────────────────────────────────────────────────────────┤
│ │
│ ┌──────────────────────────────────────────────────────────────────────────────────────┐ │
│ │ 输入源 │ │
│ ├──────────────────────────────────────────────────────────────────────────────────────┤ │
│ │ │ │
│ │ [EI-01] [EI-02] [EI-03] [EI-04] │ │
│ │ 用户/Claude ───► 目标 ───► 知识 ───► 之前 │ │
│ │ 请求 项目 库 会话 │ │
│ │ (自然语言) (代码库) (SQLite+YAML) (_session_meta) │ │
│ │ │ │
│ └────────┬─────────────────┬─────────────────┬─────────────────────┬───────────────────┘ │
│ │ │ │ │ │
│ ▼ ▼ ▼ ▼ │
│ ┌──────────────────────────────────────────────────────────────────────────────────────┐ │
│ │ 8阶段处理流水线 │ │
│ ├──────────────────────────────────────────────────────────────────────────────────────┤ │
│ │ │ │
│ │ ╔═══════════════╗ DF-01: project_context │ │
│ │ ║ Phase 1 ║ ────────────────────────────────────────────────────────────► │ │
│ │ ║ 项目理解 ║ - file_structure, tech_stack, entry_points │ │
│ │ ║ ║ - security_modules, scale_metrics │ │
│ │ ╚═══════════════╝ │ │
│ │ │ │ │
│ │ │ DF-01 │ │
│ │ ▼ │ │
│ │ ╔═══════════════╗ DF-02: dfd_elements │ │
│ │ ║ Phase 2 ║ ────────────────────────────────────────────────────────────► │ │
│ │ ║ DFD/调用流 ║ - processes[], data_stores[], data_flows[] │ │
│ │ ║ ║ - external_interactors[], element_map │ │
│ │ ╚═══════════════╝ │ │
│ │ │ │ │
│ │ │ DF-01 + DF-02 │ │
│ │ ▼ │ │
│ │ ╔═══════════════╗ DF-03: boundary_context │ │
│ │ ║ Phase 3 ║ ────────────────────────────────────────────────────────────► │ │
│ │ ║ 信任边界 ║ - trust_boundaries[], boundary_crossings[] │ │
│ │ ║ ║ - security_zones, element_zone_mapping │ │
│ │ ╚═══════════════╝ │ │
│ │ │ │ │
│ │ │ DF-01 + DF-02 + DF-03 │ │
│ │ ▼ │ │
│ │ ╔═══════════════╗ DF-04: security_gaps │ │
│ │ ║ Phase 4 ║ ────────────────────────────────────────────────────────────► │ │
│ │ ║ 安全设计 ║ - domain_assessments[15], gaps[], recommendations[] │ │
│ │ ║ ║ - security_coverage_matrix │ │
│ │ ╚═══════════════╝ │ │
│ │ │ ┌──────────────────────────────────────────────────────┐ │ │
│ │ │ │ KB 查询: STRIDE → CWE → CAPEC │ │ │
│ │ │ │ python unified_kb_query.py --stride {category} │ │ │
│ │ ▼ └──────────────────────────────────────────────────────┘ │ │
│ │ ╔═══════════════╗ DF-05: threat_inventory │ │
│ │ ║ Phase 5 ║ ────────────────────────────────────────────────────────────► │ │
│ │ ║ STRIDE 分析 ║ - threats[] (T-{S}-{E}-{Seq}) │ │
│ │ ║ ║ - element_threat_map, stride_distribution │ │
│ │ ╚═══════════════╝ - cwe_refs[], capec_refs[], total: 50-200 │ │
│ │ │ ┌──────────────────────────────────────────────────────┐ │ │
│ │ │ │ KB 查询: CAPEC → ATT&CK → CVE/KEV │ │ │
│ │ │ │ python unified_kb_query.py --capec {id} --attack │ │ │
│ │ ▼ └──────────────────────────────────────────────────────┘ │ │
│ │ ╔═══════════════╗ DF-06: validated_risks │ │
│ │ ║ Phase 6 ║ ────────────────────────────────────────────────────────────► │ │
│ │ ║ 风险验证 ║ - validated_risks[] (VR-{Seq}) │ │
│ │ ║ ║ - poc_details[], attack_paths[], attack_chains[] │ │
│ │ ╚═══════════════╝ - threat_disposition (计数守恒) │ │
│ │ │ ┌──────────────────────────────────────────────────────┐ │ │
│ │ │ │ KB 查询: CWE 缓解 + ASVS + 控制 │ │ │
│ │ │ │ python unified_kb_query.py --cwe {id} --mitigations │ │ │
│ │ ▼ └──────────────────────────────────────────────────────┘ │ │
│ │ ╔═══════════════╗ DF-07: mitigation_plan │ │
│ │ ║ Phase 7 ║ ────────────────────────────────────────────────────────────► │ │
│ │ ║ 缓解规划 ║ - mitigations[] (M-{Seq}) │ │
│ │ ║ ║ - fix_locations, asvs_compliance, implementation_steps │ │
│ │ ╚═══════════════╝ │ │
│ │ │ │ │
│ │ │ 所有数据流 (DF-01 到 DF-07) │ │
│ │ ▼ │ │
│ │ ╔═══════════════╗ DF-08: final_reports │ │
│ │ ║ Phase 8 ║ ────────────────────────────────────────────────────────────► │ │
│ │ ║ 报告生成 ║ - 4 必需报告 + 6 阶段文档 │ │
│ │ ║ ║ - Risk_Assessment_Report/{PROJECT}-*.md │ │
│ │ ╚═══════════════╝ │ │
│ │ │ │
│ └──────────────────────────────────────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌──────────────────────────────────────────────────────────────────────────────────────┐ │
│ │ 输出产物 │ │
│ ├──────────────────────────────────────────────────────────────────────────────────────┤ │
│ │ │ │
│ │ Risk_Assessment_Report/ │ │
│ │ │ │ │
│ │ ├── {PROJECT}-RISK-ASSESSMENT-REPORT.md ◄── 主报告 (所有阶段汇总) │ │
│ │ ├── {PROJECT}-RISK-INVENTORY.md ◄── 完整 VR 清单 (含 threat_refs) │ │
│ │ ├── {PROJECT}-MITIGATION-MEASURES.md ◄── M-{Seq} (含 fix_locations) │ │
│ │ ├── {PROJECT}-PENETRATION-TEST-PLAN.md ◄── 基于 POC 的测试方案 │ │
│ │ │ │ │
│ │ ├── P1-PROJECT-UNDERSTANDING.md ◄── Phase 1 工作文档 │ │
│ │ ├── P2-DFD-ANALYSIS.md ◄── DFD 元素和流程 │ │
│ │ ├── P3-TRUST-BOUNDARY.md ◄── 边界定义 │ │
│ │ ├── P4-SECURITY-DESIGN-REVIEW.md ◄── 16 域评估 │ │
│ │ ├── P5-STRIDE-THREATS.md ◄── 完整威胁清单 │ │
│ │ └── P6-RISK-VALIDATION.md ◄── POC 和攻击路径 │ │
│ │ │ │
│ │ .phase_working/ │ │
│ │ └── _session_meta.yaml ◄── 会话状态 (用于恢复) │ │
│ │ │ │
│ └──────────────────────────────────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────────────────────────────┘
2.2 数据流摘要表
| 流 ID | 源 | 目标 | 数据结构 | 容量 |
|---|---|---|---|---|
| DF-01 | P1 | P2,P3,P4 | project_context | 1 对象 |
| DF-02 | P2 | P3,P4,P5 | dfd_elements | 10-50 元素 |
| DF-03 | P3 | P4,P5 | boundary_context | 3-10 边界 |
| DF-04 | P4 | P5,P6 | security_gaps | 16 域评估 |
| DF-05 | P5 | P6 | threat_inventory | 50-200 威胁 |
| DF-06 | P6 | P7,P8 | validated_risks | 5-30 VR |
| DF-07 | P7 | P8 | mitigation_plan | 5-20 缓解措施 |
| DF-08 | P8 | 输出 | final_reports | 10 文件 |
3. 模块关系
3.1 文件依赖图
┌─────────────────────────────────────────────────────────────────────────────────────────────┐
│ 模块依赖图 │
├─────────────────────────────────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────────────────────────────────────────────────────────────────────────┐ │
│ │ SKILL.md (入口点) │ │
│ │ ════════════════════════ │ │
│ │ │ │
│ │ 定义: │ │
│ │ ├── 工作流激活触发器 │ │
│ │ ├── 8阶段结构 │ │
│ │ ├── 核心数据模型 (Finding → Threat → VR → Mitigation) │ │
│ │ ├── ID 约定 (F-P{N}-{Seq}, T-{S}-{E}-{Seq}, VR-{Seq}, M-{Seq}) │ │
│ │ ├── 计数守恒规则 │ │
│ │ └── 知识架构概览 │ │
│ │ │ │
│ └──────┬────────────────────────────────────────────────────────────────────┬─────────┘ │
│ │ │ │
│ │ 引用 │ 引用 │
│ ▼ ▼ │
│ ┌───────────────────────┐ ┌────────────────────┐ ┌─────────────────────────────────┐ │
│ │ WORKFLOW.md │ │ VALIDATION.md │ │ REPORT.md │ │
│ │ ═══════════════════ │ │ ═════════════════ │ │ ═══════════════════════════ │ │
│ │ │ │ │ │ │ │
│ │ Phase 1-5 详情: │ │ Phase 6 详情: │ │ Phase 7-8 详情: │ │
│ │ ├── 步骤定义 │ │ ├── 合并算法 │ │ ├── KB 查询模式 │ │
│ │ ├── 输出模板 │ │ ├── 去重规则 │ │ ├── 缓解模板 │ │
│ │ ├── 检查点 │ │ ├── POC 设计 │ │ ├── ASVS 集成 │ │
│ │ └── KB 查询点 │ │ └── 攻击路径 │ │ ├── 修复位置追踪 │ │
│ │ │ │ │ │ └── 报告汇总 │ │
│ └───────────┬───────────┘ └─────────┬──────────┘ └───────────────┬─────────────────┘ │
│ │ │ │ │
│ │ │ │ │
│ └─────────────────────────┼─────────────────────────────┘ │
│ │ │
│ │ 使用 │
│ ▼ │
│ ┌──────────────────────────────────────────────────────────────────────────────────────┐ │
│ │ assets/templates/ (9 文件) │ │
│ │ ═════════════════════ │ │
│ │ │ │
│ │ RISK-ASSESSMENT-REPORT.template.md ◄── 主报告结构 (9 章) │ │
│ │ RISK-INVENTORY.template.md ◄── VR 表 (含 threat_refs) │ │
│ │ MITIGATION-MEASURES.template.md ◄── M-{Seq} (含 fix_location) │ │
│ │ PENETRATION-TEST-PLAN.template.md ◄── 基于 POC 的测试方案 │ │
│ │ ARCHITECTURE-ANALYSIS.template.md ◄── 系统架构 │ │
│ │ ATTACK-PATH-VALIDATION.template.md ◄── 攻击链分析 │ │
│ │ COMPLIANCE-REPORT.template.md ◄── 合规映射 │ │
│ │ DFD-DIAGRAM.template.md ◄── DFD 可视化 │ │
│ │ DFD-TEMPLATES.md ◄── DFD ASCII 模式 │ │
│ │ │ │
│ └──────────────────────────────────────────────────────────────────────────────────────┘ │
│ │ │
│ │ 由...验证 │
│ ▼ │
│ ┌──────────────────────────────────────────────────────────────────────────────────────┐ │
│ │ assets/schemas/ (4 文件) │ │
│ │ ══════════════════ │ │
│ │ │ │
│ │ risk-detail.schema.md ◄── VR 结构, threat_refs 必填 │ │
│ │ phase-risk-summary.schema.md ◄── threat_disposition, 计数守恒 │ │
│ │ report-naming.schema.md ◄── {PROJECT}-{TYPE}.md 命名规则 │ │
│ │ mitigation-detail.schema.md ◄── M-{Seq} 结构, fix_location 模式 │ │
│ │ │ │
│ └──────────────────────────────────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────────────────────────────┘
3.2 模块用途矩阵
| 模块 | 类型 | 用途 | 依赖 |
|---|---|---|---|
| SKILL.md | 定义 | 入口点, 工作流定义, 数据模型 | - |
| WORKFLOW.md | 执行 | Phase 1-5 分步指南 | SKILL.md |
| VALIDATION.md | 执行 | Phase 6 合并和验证 | SKILL.md, WORKFLOW.md |
| REPORT.md | 执行 | Phase 7-8 缓解和报告 | SKILL.md, VALIDATION.md |
| assets/templates/*.md | 模板 | 报告结构和占位符 | Schemas |
| assets/schemas/*.md | Schema | 数据验证规则 | SKILL.md |
4. 工作流分解
4.1 8阶段工作流详情
┌─────────────────────────────────────────────────────────────────────────────────────────────┐
│ 8阶段工作流分解 │
├─────────────────────────────────────────────────────────────────────────────────────────────┤
│ │
│ ╔═══════════════════════════════════════════════════════════════════════════════════════╗ │
│ ║ PHASE 1: 项目理解 ║ │
│ ╠═══════════════════════════════════════════════════════════════════════════════════════╣ │
│ ║ ║ │
│ ║ 步骤: 脚本: ║ │
│ ║ 1. 获取文件结构 ────────────────────────────► module_discovery.py ║ │
│ ║ 2. 识别项目类型 ║ │
│ ║ 3. 收集规模指标 ─────────────────────────────► module_discovery.py --stats ║ │
│ ║ 4. 读取关键文件 ║ │
│ ║ 5. 记录架构 ║ │
│ ║ ║ │
│ ║ 输出: P1-PROJECT-UNDERSTANDING.md ║ │
│ ║ 数据: project_context {file_structure, tech_stack, scale_metrics, modules} ║ │
│ ╚═══════════════════════════════════════════════════════════════════════════════════════╝ │
│ │ │
│ ▼ │
│ ╔═══════════════════════════════════════════════════════════════════════════════════════╗ │
│ ║ PHASE 2: 调用流与 DFD 分析 ║ │
│ ╠═══════════════════════════════════════════════════════════════════════════════════════╣ │
│ ║ ║ │
│ ║ 步骤: LLM 任务: ║ │
│ ║ 1. 识别外部交互者 - 追踪用户流程 ║ │
│ ║ 2. 映射处理过程 - 识别数据转换 ║ │
│ ║ 3. 识别数据存储 - 映射敏感数据 ║ │
│ ║ 4. 定义数据流 - 分配元素 ID ║ │
│ ║ 5. 构建 DFD ║ │
│ ║ ║ │
│ ║ 输出: P2-DFD-ANALYSIS.md ║ │
│ ║ 数据: dfd_elements {processes[], data_stores[], data_flows[], external_interactors[]}║ │
│ ╚═══════════════════════════════════════════════════════════════════════════════════════╝ │
│ │ │
│ ▼ │
│ ╔═══════════════════════════════════════════════════════════════════════════════════════╗ │
│ ║ PHASE 3: 信任边界评估 ║ │
│ ╠═══════════════════════════════════════════════════════════════════════════════════════╣ │
│ ║ ║ │
│ ║ 步骤: LLM 任务: ║ │
│ ║ 1. 识别信任区域 - 分析网络边界 ║ │
│ ║ 2. 将元素映射到区域 - 识别权限转换 ║ │
│ ║ 3. 识别边界穿越 - 映射数据敏感度 ║ │
│ ║ 4. 记录穿越风险 ║ │
│ ║ ║ │
│ ║ 输出: P3-TRUST-BOUNDARY.md ║ │
│ ║ 数据: boundary_context {trust_boundaries[], security_zones, boundary_crossings[]} ║ │
│ ╚═══════════════════════════════════════════════════════════════════════════════════════╝ │
│ │ │
│ ▼ │
│ ╔═══════════════════════════════════════════════════════════════════════════════════════╗ │
│ ║ PHASE 4: 安全设计评审 ║ │
│ ╠═══════════════════════════════════════════════════════════════════════════════════════╣ │
│ ║ ║ │
│ ║ 步骤: 知识文件: ║ │
│ ║ 1. 评估 16 个安全域 - security-design.yaml ║ │
│ ║ (AUTHN, AUTHZ, INPUT, OUTPUT, - control-set-{01-16}.md ║ │
│ ║ CLIENT, CRYPTO, LOG, ERROR, - reference-set-*.md ║ │
│ ║ API, DATA, INFRA, SUPPLY, AI, ║ │
│ ║ MOBILE, CLOUD, AGENT) ║ │
│ ║ 2. 识别安全缺口 ║ │
│ ║ 3. 评级覆盖度 (✅/⚠️/❌) ║ │
│ ║ ║ │
│ ║ 输出: P4-SECURITY-DESIGN-REVIEW.md ║ │
│ ║ 数据: security_gaps {domain_assessments[15], gaps[], coverage_matrix} ║ │
│ ╚═══════════════════════════════════════════════════════════════════════════════════════╝ │
│ │ │
│ ▼ │
│ ╔═══════════════════════════════════════════════════════════════════════════════════════╗ │
│ ║ PHASE 5: STRIDE 威胁分析 ║ │
│ ╠═══════════════════════════════════════════════════════════════════════════════════════╣ │
│ ║ ║ │
│ ║ 步骤: 脚本: ║ │
│ ║ 1. 对每个 DFD 元素: ──────────────────────────► stride_matrix.py --element {type} ║ │
│ ║ - 获取适用的 STRIDE 类别 ║ │
│ ║ 2. 对每个 STRIDE 类别: ──────────────────────► unified_kb_query.py --stride {cat} ║ │
│ ║ - 查询 CWE/CAPEC 映射 ║ │
│ ║ 3. 生成威胁 ID: T-{S}-{E}-{Seq} ║ │
│ ║ 4. 构建威胁清单 ║ │
│ ║ ║ │
│ ║ 输出: P5-STRIDE-THREATS.md ║ │
│ ║ 数据: threat_inventory {threats[50-200], element_threat_map, stride_distribution} ║ │
│ ╚═══════════════════════════════════════════════════════════════════════════════════════╝ │
│ │ │
│ ▼ │
│ ╔═══════════════════════════════════════════════════════════════════════════════════════╗ │
│ ║ PHASE 6: 风险验证 (VALIDATION.md) ║ │
│ ╠═══════════════════════════════════════════════════════════════════════════════════════╣ │
│ ║ ║ │
│ ║ 步骤: 脚本: ║ │
│ ║ 1. 收集所有发现 (P1-P5) ◄───────────────────── 读取 .phase_working/P{1-5}*.md ║ │
│ ║ 2. 归一化为统一格式 ║ │
│ ║ 3. 去重 (CWE + 位置匹配) ║ │
│ ║ 4. 创建 VR-{Seq} (含 threat_refs[]) ║ │
│ ║ 5. 查询攻击模式: ─────────────────────────────► unified_kb_query.py --capec --attack║ │
│ ║ 6. 设计 POC ║ │
│ ║ 7. 映射攻击路径 ║ │
│ ║ 8. 追踪 threat_disposition (计数守恒) ║ │
│ ║ ║ │
│ ║ 输出: P6-RISK-VALIDATION.md ║ │
│ ║ 数据: validated_risks {vrs[], poc_details[], attack_paths[], threat_disposition} ║ │
│ ╚═══════════════════════════════════════════════════════════════════════════════════════╝ │
│ │ │
│ ▼ │
│ ╔═══════════════════════════════════════════════════════════════════════════════════════╗ │
│ ║ PHASE 7: 缓解规划 (REPORT.md) ║ │
│ ╠═══════════════════════════════════════════════════════════════════════════════════════╣ │
│ ║ ║ │
│ ║ 步骤: 脚本: ║ │
│ ║ 对每个 VR (并行 sub-agent): ║ │
│ ║ 1. 查询 CWE 缓解: ────────────────────────────► unified_kb_query.py --cwe --mitigs ║ │
│ ║ 2. 查询 CVE 上下文: ──────────────────────────► unified_kb_query.py --cve-for-cwe ║ │
│ ║ 3. 获取 STRIDE 控制: ─────────────────────────► unified_kb_query.py --stride ║ │
│ ║ 4. 查询 ASVS 要求: ───────────────────────────► unified_kb_query.py --asvs-level ║ │
│ ║ 5. 设计技术栈特定缓解 ║ │
│ ║ 6. 收集 fix_location (module, function, file, line)
…(truncated)