Skip to content

Phase 43 — Compliance + Data Classification 系统设计

版本: v1.0.0 创建日期: 2026-02-27 状态: ✅ 已实现 (v1.1.0-alpha)


一、模块概述

Phase 43 引入企业级合规管理和数据分类系统,支持 SOC2、GDPR、ISO27001、HIPAA 等多种合规框架,帮助企业满足监管要求。

1.1 核心目标

  1. SOC2 合规: 5大信任服务原则(TSC)自动检查和证据收集
  2. 数据分类: 4级分类体系(PUBLIC/INTERNAL/CONFIDENTIAL/RESTRICTED)
  3. GDPR DSR处理: 数据主体请求(导出/删除/修正)自动化
  4. 合规管理: 多框架支持,统一合规检查调度

1.2 技术架构

┌──────────────────────────────────────────────────────┐
│                  Frontend UI                         │
│  ┌────────────────────────────────────────────────┐  │
│  │ ComplianceDashboardPage                        │  │
│  │ - 证据收集  - 分类管理                         │  │
│  │ - DSR处理   - 报告导出                         │  │
│  └─────────────────────┬──────────────────────────┘  │
└────────────────────────┼─────────────────────────────┘

┌────────────────────────┼─────────────────────────────┐
│                        ▼                             │
│  ┌──────────────────────────────────────────────┐   │
│  │ compliance Store                             │   │
│  │ - 检查执行  - 报告生成  - 证据管理           │   │
│  └──────────────────────┬───────────────────────┘   │
└─────────────────────────┼───────────────────────────┘

┌─────────────────────────┼───────────────────────────┐
│                         ▼                           │
│  Compliance Layer (Phase 43, 12 IPC)               │
│  ┌───────────────────────────────────────────────┐ │
│  │ SOC2 Compliance Manager                       │ │
│  │ - 5大TSC (安全/可用性/处理完整性/机密性/隐私) │ │
│  │ - 控制点检查 (50+ controls)                   │ │
│  │ - 证据自动收集                                │ │
│  └───────────────────────────────────────────────┘ │
│  ┌───────────────────────────────────────────────┐ │
│  │ Data Classifier                               │ │
│  │ - 4级分类 (PUBLIC→RESTRICTED)                 │ │
│  │ - ML分类器 (文本分析)                         │ │
│  │ - 规则引擎 (正则匹配)                         │ │
│  └───────────────────────────────────────────────┘ │
│  ┌───────────────────────────────────────────────┐ │
│  │ Classification Policy Engine                  │ │
│  │ - 字段级分类规则                              │ │
│  │ - 自动标记                                    │ │
│  │ - 加密策略映射                                │ │
│  └───────────────────────────────────────────────┘ │
│  ┌───────────────────────────────────────────────┐ │
│  │ Data Subject Request Handler (GDPR DSR)       │ │
│  │ - 数据导出 (JSON/CSV)                         │ │
│  │ - 数据删除 (级联删除)                         │ │
│  │ - 数据修正 (审计日志)                         │ │
│  └───────────────────────────────────────────────┘ │
│  ┌───────────────────────────────────────────────┐ │
│  │ Unified Compliance Manager                    │ │
│  │ - 多框架支持 (GDPR/SOC2/ISO27001/HIPAA)       │ │
│  │ - 定时检查调度                                │ │
│  │ - 风险评分                                    │ │
│  └───────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────┘

┌───────────┼─────────────────────────────────────────┐
│           ▼                                         │
│  Database (Phase 43新增2张表)                       │
│  - soc2_evidence         (SOC2证据)                 │
│  - data_classifications  (数据分类记录)             │
└─────────────────────────────────────────────────────┘

二、核心模块设计

2.1 SOC2 Compliance Manager

文件: desktop-app-vue/src/main/audit/soc2-compliance.js

5大信任服务原则(TSC):

  1. CC1.0 Security - 控制环境
  2. CC2.0 Availability - 系统可用性
  3. CC3.0 Processing Integrity - 处理完整性
  4. CC4.0 Confidentiality - 机密性
  5. CC5.0 Privacy - 隐私

API:

javascript
class SOC2ComplianceManager {
  async runControlCheck(controlId) // 执行单个控制点检查
  async runAllChecks() // 执行所有检查
  async collectEvidence(controlId, evidenceType) // 收集证据
  async generateComplianceReport(startDate, endDate) // 生成合规报告
  async getControlStatus(controlId) // 获取控制点状态
}

2.2 Data Classifier

文件: desktop-app-vue/src/main/audit/data-classifier.js

4级分类:

  • PUBLIC: 公开信息 (无敏感数据)
  • INTERNAL: 内部使用 (员工可见)
  • CONFIDENTIAL: 机密 (仅授权人员)
  • RESTRICTED: 高度敏感 (严格控制)

API:

javascript
class DataClassifier {
  async classifyText(text) // ML分类器
  async classifyField(tableName, columnName, sampleData) // 字段分类
  async scanDatabase() // 扫描数据库
  async applyClassification(tableName, columnName, level) // 应用分类
  async getClassificationReport() // 分类报告
}

2.3 Classification Policy Engine

文件: desktop-app-vue/src/main/audit/classification-policy.js

功能:

  • 字段级分类规则 (正则表达式)
  • 自动标记触发
  • 加密策略映射 (RESTRICTED → AES-256)
  • 访问控制集成 (RBAC)

API:

javascript
class ClassificationPolicyEngine {
  async createPolicy(name, rules) // 创建策略
  async applyPolicy(policyId) // 应用策略
  async evaluateField(tableName, columnName, value) // 评估字段
  async getPolicyMatches(text) // 获取匹配策略
}

2.4 Data Subject Request Handler

文件: desktop-app-vue/src/main/audit/data-subject-handler.js

GDPR DSR 类型:

  • Right to Access: 导出个人数据 (JSON/CSV)
  • Right to Erasure: 删除个人数据 (级联删除)
  • Right to Rectification: 修正个人数据
  • Right to Data Portability: 数据可携性

API:

javascript
class DataSubjectHandler {
  async createDSR(did, requestType, details) // 创建DSR
  async exportUserData(did, format = "json") // 导出数据
  async deleteUserData(did, options = {}) // 删除数据
  async rectifyUserData(did, corrections) // 修正数据
  async getDSRStatus(dsrId) // 获取DSR状态
}

2.5 Unified Compliance Manager

文件: desktop-app-vue/src/main/audit/compliance-manager.js

支持框架:

  • GDPR (General Data Protection Regulation)
  • SOC2 (Service Organization Control 2)
  • ISO27001 (Information Security Management)
  • HIPAA (Health Insurance Portability and Accountability Act)

API:

javascript
class ComplianceManager {
  async addFramework(frameworkName, config) // 添加合规框架
  async scheduleCheck(frameworkName, cron) // 定时检查
  async runComplianceCheck(frameworkName) // 执行检查
  async calculateRiskScore(frameworkName) // 计算风险
  async getComplianceStatus() // 获取合规状态
}

三、数据库设计

3.1 soc2_evidence (SOC2证据)

sql
CREATE TABLE IF NOT EXISTS soc2_evidence (
  id INTEGER PRIMARY KEY AUTOINCREMENT,
  control_id TEXT NOT NULL, -- e.g. 'CC1.1'
  evidence_type TEXT NOT NULL, -- log/screenshot/document/config
  file_path TEXT,
  content TEXT,
  collected_at INTEGER NOT NULL,
  metadata TEXT, -- JSON
  status TEXT DEFAULT 'valid', -- valid/expired/invalid
  INDEX idx_soc2_evidence_control (control_id),
  INDEX idx_soc2_evidence_collected_at (collected_at)
);

3.2 data_classifications (数据分类记录)

sql
CREATE TABLE IF NOT EXISTS data_classifications (
  id INTEGER PRIMARY KEY AUTOINCREMENT,
  table_name TEXT NOT NULL,
  column_name TEXT,
  classification_level TEXT NOT NULL, -- PUBLIC/INTERNAL/CONFIDENTIAL/RESTRICTED
  policy_id TEXT,
  classified_by TEXT, -- auto/manual
  classified_at INTEGER NOT NULL,
  reviewed_at INTEGER,
  notes TEXT,
  INDEX idx_data_classifications_table (table_name),
  INDEX idx_data_classifications_level (classification_level),
  UNIQUE(table_name, column_name)
);

四、IPC 接口设计

文件: desktop-app-vue/src/main/audit/compliance-ipc.js

4.1 SOC2 IPC (3个)

  • compliance:soc2-run-check - 执行SOC2检查
  • compliance:soc2-collect-evidence - 收集证据
  • compliance:soc2-generate-report - 生成报告

4.2 数据分类 IPC (4个)

  • compliance:classify-text - 文本分类
  • compliance:classify-field - 字段分类
  • compliance:scan-database - 扫描数据库
  • compliance:get-classification-report - 分类报告

4.3 DSR IPC (3个)

  • compliance:dsr-create - 创建DSR
  • compliance:dsr-export-data - 导出数据
  • compliance:dsr-delete-data - 删除数据

4.4 合规管理 IPC (2个)

  • compliance:run-check - 执行合规检查
  • compliance:get-status - 获取合规状态

五、前端集成

5.1 Pinia Store

文件: desktop-app-vue/src/renderer/stores/compliance.ts

typescript
export const useComplianceStore = defineStore("compliance", {
  state: () => ({
    soc2Evidence: [] as SOC2Evidence[],
    classifications: [] as DataClassification[],
    dsrRequests: [] as DSRRequest[],
    complianceStatus: {} as ComplianceStatus,
    isChecking: false,
  }),

  actions: {
    async runSOC2Check() {
      this.isChecking = true;
      try {
        const result = await (window as any).electronAPI.invoke(
          "compliance:soc2-run-check",
        );
        return result;
      } finally {
        this.isChecking = false;
      }
    },

    async classifyDatabase() {
      const result = await (window as any).electronAPI.invoke(
        "compliance:scan-database",
      );
      this.classifications = result;
      return result;
    },

    async createDSR(did: string, requestType: string) {
      const result = await (window as any).electronAPI.invoke(
        "compliance:dsr-create",
        { did, requestType },
      );
      this.dsrRequests.unshift(result);
      return result;
    },
  },
});

5.2 前端页面

ComplianceDashboardPage.vue (/compliance-dashboard)

功能:

  • SOC2 合规状态仪表板
  • 证据收集管理
  • 数据分类可视化
  • DSR 请求处理
  • 合规报告导出

六、配置选项

javascript
compliance: {
  enabled: true,
  frameworks: ['soc2', 'gdpr'],
  checkInterval: '0 0 * * *', // 每天午夜
  evidencePath: './data/compliance/evidence',
  dataClassification: {
    mlEnabled: false, // ML分类器(需要训练)
    autoTagging: true,
    encryptionMapping: {
      RESTRICTED: 'aes-256',
      CONFIDENTIAL: 'aes-128'
    }
  },
  dsr: {
    exportFormats: ['json', 'csv'],
    retentionDays: 30
  }
}

七、安全考虑

  1. 证据加密: SOC2证据文件使用AES-256加密存储
  2. 访问控制: 合规管理仅限管理员角色
  3. 审计日志: 所有合规操作记录到audit_logs
  4. 数据脱敏: DSR导出自动脱敏敏感字段
  5. 级联删除: DSR删除确保完整性 (外键约束)

八、测试覆盖

  • soc2-compliance.test.js - SOC2检查
  • data-classifier.test.js - 数据分类
  • classification-policy.test.js - 策略引擎
  • data-subject-handler.test.js - DSR处理
  • compliance-manager.test.js - 合规管理
  • dlp-engine.test.js - DLP引擎 (Phase 50)
  • dlp-policy.test.js - DLP策略 (Phase 50)
  • siem-exporter.test.js - SIEM导出 (Phase 51)

九、Phase 50 — DLP (Data Loss Prevention)

新增模块 (v1.1.0-alpha Phase 50):

9.1 DLP Engine (dlp-engine.js)

核心功能:

  • 数据泄露检测: 实时监控和检测敏感数据泄露
  • 6类敏感数据扫描:
    1. PII (Personally Identifiable Information): 身份证/护照/驾照
    2. PCI (Payment Card Industry): 信用卡号/CVV
    3. PHI (Protected Health Information): 医疗记录/病历
    4. Credentials: API密钥/密码/Token
    5. IP (Intellectual Property): 专利/源代码/商业机密
    6. Custom: 用户自定义正则规则
  • 双模式检测:
    • 正则模式: 快速检测已知模式(如信用卡号: \d{4}-\d{4}-\d{4}-\d{4})
    • ML模式: 机器学习识别未知敏感内容(需要预训练模型)
  • 实时监控:
    • 文件上传监控
    • 剪贴板监控
    • 网络传输监控
  • 违规处理:
    • BLOCK: 阻断操作
    • WARN: 发出警告但允许(记录日志)
    • LOG: 仅记录,不干预
    • ENCRYPT: 自动加密后放行

数据库表 (dlp_policies):

sql
CREATE TABLE dlp_policies (
  policy_id TEXT PRIMARY KEY,
  name TEXT NOT NULL,
  data_types TEXT NOT NULL, -- JSON: ["PII", "PCI"]
  action TEXT NOT NULL, -- BLOCK / WARN / LOG / ENCRYPT
  conditions TEXT NOT NULL, -- JSON: {operator: "AND", rules: [...]}
  priority INTEGER DEFAULT 0,
  enabled INTEGER DEFAULT 1
);

数据库表 (dlp_incidents):

sql
CREATE TABLE dlp_incidents (
  incident_id TEXT PRIMARY KEY,
  policy_id TEXT NOT NULL,
  content_hash TEXT NOT NULL,
  severity TEXT NOT NULL, -- LOW / MEDIUM / HIGH / CRITICAL
  blocked INTEGER NOT NULL,
  details TEXT, -- JSON
  created_at INTEGER NOT NULL
);

9.2 DLP Policy (dlp-policy.js)

核心功能:

  • 策略管理引擎: CRUD操作,优先级排序
  • 4种执行动作: BLOCK / WARN / LOG / ENCRYPT
  • 条件匹配引擎:
    • AND逻辑: 所有条件都满足
    • OR逻辑: 任一条件满足
  • 白名单/黑名单:
    • 白名单: 排除特定文件/路径/用户
    • 黑名单: 强制扫描特定内容
  • 策略优先级: 数字越大优先级越高,高优先级策略优先匹配

策略示例:

javascript
{
  policy_id: 'policy-001',
  name: '阻止信用卡号外发',
  data_types: ['PCI'],
  action: 'BLOCK',
  conditions: {
    operator: 'AND',
    rules: [
      { field: 'content', contains: 'credit_card' },
      { field: 'destination', notIn: ['internal.domain.com'] }
    ]
  },
  priority: 10,
  enabled: true
}

9.3 DLP IPC (dlp-ipc.js)

IPC接口 (8个):

  1. dlp:scan-content - 扫描指定内容
  2. dlp:create-policy - 创建策略
  3. dlp:query-incidents - 查询违规事件
  4. dlp:update-whitelist - 更新白名单
  5. dlp:export-report - 导出合规报告
  6. dlp:configure-engine - 配置引擎参数
  7. dlp:test-policy - 测试策略匹配
  8. dlp:get-stats - 获取统计仪表板数据

9.4 Extended Data Classifier

新增方法:

  • getDLPClassification(content): 返回DLP分类结果
  • 与DLP引擎集成,共享敏感数据检测逻辑

9.5 Extended Audit Logger

新增事件类型:

  • DLP_VIOLATION: DLP违规事件
  • DLP_BLOCK: DLP阻断操作
  • SIEM_EXPORT: SIEM导出事件

新增方法:

  • setSIEMExporter(exporter): 设置SIEM导出器,自动推送事件

9.6 前端集成

Pinia Store (stores/dlp.ts):

  • State: policies: DLPPolicy[], incidents: DLPIncident[], stats: DLPStats
  • Actions: scanContent(), createPolicy(), queryIncidents(), exportReport()

UI页面 (pages/enterprise/DLPPoliciesPage.vue):

  • 策略CRUD面板(创建/编辑/删除/启用禁用)
  • 违规仪表板(实时事件流/统计图表/严重级别分布)
  • 白名单管理(文件/路径/用户排除规则)
  • 测试工具(手动输入内容测试策略匹配)

十、Phase 51 — SIEM Integration

新增模块 (v1.1.0-alpha Phase 51):

10.1 SIEM Exporter (siem-exporter.js)

核心功能:

  • 3种SIEM格式导出:
    1. CEF (Common Event Format): ArcSight标准格式
    2. LEEF (Log Event Extended Format): QRadar标准格式
    3. JSON: 通用JSON格式(Splunk/ELK/Graylog)
  • 事件字段映射:
    • 时间戳、源IP、目标IP
    • 事件类型、严重级别
    • 用户ID、操作描述
  • 批量导出: 100条事件/批次,避免内存溢出
  • 传输方式:
    • Syslog UDP/TCP: 514端口
    • HTTP POST: RESTful API
    • 文件导出: 本地日志文件
  • 格式验证: 导出前验证格式合规性

CEF格式示例:

CEF:0|ChainlessChain|Desktop|1.1.0|DLP_VIOLATION|信用卡号泄露|8|
src=192.168.1.100 dst=8.8.8.8 suser=did:chainless:abc123 msg=Detected credit card number in file upload

LEEF格式示例:

LEEF:2.0|ChainlessChain|Desktop|1.1.0|DLP_VIOLATION|
devTime=2026-02-27T10:30:00Z src=192.168.1.100 dst=8.8.8.8 usrName=did:chainless:abc123 cat=DLP sev=8

10.2 SIEM IPC (siem-ipc.js)

IPC接口 (4个):

  1. siem:configure - 配置SIEM服务器(IP/端口/格式/认证)
  2. siem:export-events - 导出指定时间范围的事件
  3. siem:test-connection - 测试SIEM连接
  4. siem:query-export-history - 查询导出历史记录

10.3 Extended Audit Logger Integration

自动事件推送:

  • 审计日志自动调用siemExporter.exportEvent()
  • 实时推送关键事件(DLP违规/登录失败/权限变更)

配置示例:

javascript
{
  siem: {
    enabled: true,
    format: 'CEF', // CEF / LEEF / JSON
    destination: {
      type: 'syslog', // syslog / http / file
      host: 'siem.company.com',
      port: 514,
      protocol: 'tcp' // tcp / udp
    },
    batchSize: 100,
    retryAttempts: 3
  }
}

10.4 数据库表

数据库表 (siem_exports):

sql
CREATE TABLE siem_exports (
  export_id TEXT PRIMARY KEY,
  format TEXT NOT NULL, -- CEF / LEEF / JSON
  destination TEXT NOT NULL,
  event_count INTEGER NOT NULL,
  status TEXT NOT NULL, -- SUCCESS / FAILED / PARTIAL
  error_message TEXT,
  exported_at INTEGER NOT NULL
);

10.5 前端集成

Pinia Store (stores/siem.ts):

  • State: config: SIEMConfig, exportHistory: SIEMExport[], connectionStatus: string
  • Actions: configureSIEM(), exportEvents(), testConnection(), queryHistory()

UI页面 (pages/enterprise/SIEMIntegrationPage.vue):

  • 配置面板(SIEM服务器IP/端口/格式选择/认证凭证)
  • 导出任务管理(手动触发/定时任务/批量导出)
  • 连接测试工具(Ping测试/发送测试事件)
  • 日志预览(CEF/LEEF/JSON格式实时预览)

十一、未来扩展

  • [x] DLP数据泄露防护: 6类敏感数据检测 + 4种执行动作 ✅ Phase 50
  • [x] SIEM集成: CEF/LEEF/JSON导出 + Syslog传输 ✅ Phase 51
  • [ ] SOAR集成: Security Orchestration, Automation and Response
  • [ ] 威胁情报: 集成威胁情报源(STIX/TAXII)
  • [ ] 行为分析: UEBA (User and Entity Behavior Analytics)
  • [ ] 自动合规报告: 自动生成SOC2/ISO27001/GDPR报告

文档版本: 1.1.0 最后更新: 2026-02-27

ChainlessChain 系统设计文档 — 面向开发者