Phase 43 — Compliance + Data Classification 系统设计
版本: v1.0.0 创建日期: 2026-02-27 状态: ✅ 已实现 (v1.1.0-alpha)
一、模块概述
Phase 43 引入企业级合规管理和数据分类系统,支持 SOC2、GDPR、ISO27001、HIPAA 等多种合规框架,帮助企业满足监管要求。
1.1 核心目标
- SOC2 合规: 5大信任服务原则(TSC)自动检查和证据收集
- 数据分类: 4级分类体系(PUBLIC/INTERNAL/CONFIDENTIAL/RESTRICTED)
- GDPR DSR处理: 数据主体请求(导出/删除/修正)自动化
- 合规管理: 多框架支持,统一合规检查调度
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):
- CC1.0 Security - 控制环境
- CC2.0 Availability - 系统可用性
- CC3.0 Processing Integrity - 处理完整性
- CC4.0 Confidentiality - 机密性
- CC5.0 Privacy - 隐私
API:
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:
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:
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:
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:
class ComplianceManager {
async addFramework(frameworkName, config) // 添加合规框架
async scheduleCheck(frameworkName, cron) // 定时检查
async runComplianceCheck(frameworkName) // 执行检查
async calculateRiskScore(frameworkName) // 计算风险
async getComplianceStatus() // 获取合规状态
}三、数据库设计
3.1 soc2_evidence (SOC2证据)
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 (数据分类记录)
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- 创建DSRcompliance: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
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 请求处理
- 合规报告导出
六、配置选项
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
}
}七、安全考虑
- 证据加密: SOC2证据文件使用AES-256加密存储
- 访问控制: 合规管理仅限管理员角色
- 审计日志: 所有合规操作记录到audit_logs
- 数据脱敏: DSR导出自动脱敏敏感字段
- 级联删除: 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类敏感数据扫描:
- PII (Personally Identifiable Information): 身份证/护照/驾照
- PCI (Payment Card Industry): 信用卡号/CVV
- PHI (Protected Health Information): 医疗记录/病历
- Credentials: API密钥/密码/Token
- IP (Intellectual Property): 专利/源代码/商业机密
- Custom: 用户自定义正则规则
- 双模式检测:
- 正则模式: 快速检测已知模式(如信用卡号:
\d{4}-\d{4}-\d{4}-\d{4}) - ML模式: 机器学习识别未知敏感内容(需要预训练模型)
- 正则模式: 快速检测已知模式(如信用卡号:
- 实时监控:
- 文件上传监控
- 剪贴板监控
- 网络传输监控
- 违规处理:
- BLOCK: 阻断操作
- WARN: 发出警告但允许(记录日志)
- LOG: 仅记录,不干预
- ENCRYPT: 自动加密后放行
数据库表 (dlp_policies):
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):
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逻辑: 任一条件满足
- 白名单/黑名单:
- 白名单: 排除特定文件/路径/用户
- 黑名单: 强制扫描特定内容
- 策略优先级: 数字越大优先级越高,高优先级策略优先匹配
策略示例:
{
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个):
dlp:scan-content- 扫描指定内容dlp:create-policy- 创建策略dlp:query-incidents- 查询违规事件dlp:update-whitelist- 更新白名单dlp:export-report- 导出合规报告dlp:configure-engine- 配置引擎参数dlp:test-policy- 测试策略匹配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格式导出:
- CEF (Common Event Format): ArcSight标准格式
- LEEF (Log Event Extended Format): QRadar标准格式
- 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 uploadLEEF格式示例:
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=810.2 SIEM IPC (siem-ipc.js)
IPC接口 (4个):
siem:configure- 配置SIEM服务器(IP/端口/格式/认证)siem:export-events- 导出指定时间范围的事件siem:test-connection- 测试SIEM连接siem:query-export-history- 查询导出历史记录
10.3 Extended Audit Logger Integration
自动事件推送:
- 审计日志自动调用
siemExporter.exportEvent() - 实时推送关键事件(DLP违规/登录失败/权限变更)
配置示例:
{
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):
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
