威胁模型图谱
Threat Model Atlas(威胁模型图谱)是 OpenClaw 安全架构的核心文档,系统性地分析了所有已知的攻击向量、风险等级和对应的缓解策略。
威胁模型概览
┌─────────────┐
│ 攻击者 │
└──────┬──────┘
│
┌──────────────────┼──────────────────┐
│ │ │
┌────▼─────┐ ┌──────▼──────┐ ┌─────▼────┐
│ 网络攻击 │ │ 模型攻击 │ │ 数据攻击 │
└────┬─────┘ └──────┬──────┘ └─────┬────┘
│ │ │
┌────▼─────┐ ┌──────▼──────┐ ┌─────▼────┐
│ 物理攻击 │ │ 供应链攻击 │ │ 社工攻击 │
└──────────┘ └─────────────┘ └──────────┘攻击向量分类
1. 网络攻击(Network Attacks)
| 威胁 | 描述 | 风险 | 缓解措施 |
|---|---|---|---|
| 中间人攻击(MITM) | 截获网关与模型之间的通信 | 🔴 高 | TLS 加密所有通信 |
| RPC 未授权访问 | 绕过认证调用 RPC 接口 | 🔴 高 | Bearer Token + IP 白名单 |
| WebSocket 劫持 | 劫持已建立的 WS 连接 | 🟡 中 | 连接签名验证 |
| DDoS 攻击 | 耗尽网关资源 | 🟡 中 | 速率限制 + CDN |
| DNS 劫持 | 重定向 API 请求 | 🟡 中 | DNSSEC + 证书固定 |
2. 模型攻击(Model Attacks)
| 威胁 | 描述 | 风险 | 缓解措施 |
|---|---|---|---|
| Prompt Injection(提示注入) | 用户输入覆盖系统指令 | 🔴 高 | 输入清洗 + 指令隔离 |
| Jailbreak(越狱) | 绕过 Agent 约束执行禁止操作 | 🔴 高 | 多层防护 + 输出审查 |
| 数据泄漏 | LLM 回复中暴露系统提示词 | 🟡 中 | 输出过滤 + 提示词保护 |
| 模型中毒 | 恶意微调模型影响行为 | 🟡 中 | 使用可信模型源 |
| 上下文溢出 | 注入大量文本挤出系统指令 | 🟡 中 | 上下文长度限制 |
最高风险
Prompt Injection 是 AI Agent 系统面临的最严重威胁。攻击者通过精心构造的输入可能使 Agent 执行未授权操作。
3. 数据攻击(Data Attacks)
| 威胁 | 描述 | 风险 | 缓解措施 |
|---|---|---|---|
| 会话数据泄露 | 未经授权访问对话历史 | 🔴 高 | 加密存储 + 访问控制 |
| 知识库投毒 | 注入错误信息到知识库 | 🟡 中 | 内容审核 + 版本控制 |
| 日志信息泄露 | 从日志中提取敏感信息 | 🟡 中 | 日志脱敏 + 访问限制 |
| 备份数据暴露 | 备份文件未加密被获取 | 🟡 中 | 加密备份 + 安全存储 |
4. 物理攻击(Physical Attacks)
| 威胁 | 描述 | 风险 | 缓解措施 |
|---|---|---|---|
| 服务器物理入侵 | 直接访问服务器硬件 | 🟡 中 | 数据中心安全 + 磁盘加密 |
| 设备丢失 | 移动设备丢失暴露凭据 | 🟡 中 | 远程擦除 + 凭据轮换 |
| 侧信道攻击 | 通过功耗/时序推断数据 | 🟢 低 | 恒定时间比较 |
风险评估矩阵
可能性 ↑
高 │ DNS劫持 │ Prompt注入 │
│ WS劫持 │ Jailbreak │
中 │ DDoS │ 数据泄露 │
│ 模型中毒 │ 知识库投毒 │
低 │ 物理入侵 │ 侧信道 │
│ 供应链攻击 │ │
└─────────────┴─────────────┘
低 影响程度 → 高缓解策略详解
Prompt Injection 防护
yaml
# 多层防护策略
security:
promptInjection:
# 第一层:输入清洗
inputSanitization:
enabled: true
stripControlChars: true
maxLength: 5000
# 第二层:指令隔离
instructionIsolation:
enabled: true
separator: '---SYSTEM-BOUNDARY---'
# 第三层:输出审查
outputReview:
enabled: true
blockPatterns:
- 'system prompt'
- 'ignore previous'
- 'AGENTS.md'纵深防御体系
┌─────────────────────────────────────────┐
│ 第 1 层:网络安全 │
│ TLS、防火墙、IP 白名单、DDoS 防护 │
├─────────────────────────────────────────┤
│ 第 2 层:认证与授权 │
│ Bearer Token、RBAC、OAuth │
├─────────────────────────────────────────┤
│ 第 3 层:输入验证 │
│ 参数校验、输入清洗、长度限制 │
├─────────────────────────────────────────┤
│ 第 4 层:Agent 安全 │
│ 工具策略、指令隔离、输出审查 │
├─────────────────────────────────────────┤
│ 第 5 层:数据安全 │
│ 加密存储、脱敏处理、访问控制 │
├─────────────────────────────────────────┤
│ 第 6 层:监控与审计 │
│ 日志审计、异常检测、告警通知 │
└─────────────────────────────────────────┘安全配置清单
yaml
# openclaw.config.yaml 安全推荐配置
security:
# 网络
tls: true
cors:
origins: ['https://your-domain.com']
# 认证
rpc:
auth: true
ipWhitelist: ['10.0.0.0/8']
# Agent 安全
tools:
defaultPolicy: 'ask'
dangerousOps: 'deny'
# 数据安全
encryption:
atRest: true
algorithm: 'aes-256-gcm'
# 审计
audit:
enabled: true
logLevel: 'info'🇨🇳 中国用户须知
- 部署在国内时需遵守《网络安全法》和等保要求
- 处理个人信息需遵守《个人信息保护法》
- 涉及 AI 生成内容需遵守《生成式人工智能服务管理暂行办法》
- 建议使用国内云服务商的安全产品(WAF、DDoS 防护等)
