1485 字
7 分钟
OpenClaw 安全性指南:保护你的 AI 助手和数据
AI 助手的安全风险
给 AI 助手权限时,需要考虑这些风险:
1. 数据泄露
- AI 可能把私人信息发给别人
- 内存中的敏感信息被读取
- 错误的消息发送到错误的渠道
2. 权限滥用
- AI 执行了不该执行的操作
- 删除重要文件
- 发送错误的消息
3. 未经授权访问
- 别人通过公开渠道访问你的 AI
- 群聊中的 AI 泄露私人信息
OpenClaw 的安全设计
OpenClaw 从架构上考虑了安全性:
1. 权限分层
OpenClaw 的权限分为几个层次:
用户层 → 渠道层 → 会话层 → 工具层 → 文件系统每一层都可以限制访问。
2. 主会话隔离
MEMORY.md 只在主会话加载:
# 主会话(与你的直接对话)- 可以读取 MEMORY.md- 可以访问敏感信息
# 共享会话(群聊、Discord 等)- 不能读取 MEMORY.md- 不能访问敏感信息这是 OpenClaw 最重要的安全机制。
3. 白名单机制
控制谁可以与你的 AI 对话:
channels: qqbot: allowList: - "EF8BB6C433AD64C02811E441F9E47CB9" # 只允许特定用户配置安全的 OpenClaw
1. 使用白名单
只允许信任的用户访问:
channels: qqbot: enabled: true allowList: - "EF8BB6C433AD64C02811E441F9E47CB9" - "其他信任用户ID"
discord: enabled: true allowList: - "特定用户ID" - "特定服务器ID"2. 禁用敏感操作
有些工具需要特别小心:
tools: exec: enabled: true # 限制可以执行的命令 allowCommands: - "ls" - "cat" - "git"
file: enabled: true # 限制可访问的目录 allowPaths: - "/root/.openclaw/workspace" - "/tmp"3. 外部操作需要确认
tools: message: enabled: true requireConfirmation: true # 发送消息前需要确认或者:
channels: qqbot: askBeforeSending: true # 发送前询问4. 敏感文件权限
确保敏感文件权限正确:
chmod 600 ~/.openclaw/config.yaml # 只有所有者可读写chmod 700 ~/.openclaw/workspace # 只有所有者可访问内存安全
1. 不在 MEMORY.md 存储敏感信息
❌ 错误示例:
## 密码
- 银行密码:123456- 邮箱密码:abcdef✅ 正确做法:
## 用户偏好
- 喜欢简洁的回答- 不喜欢客套话
## 重要决策
- 项目使用 Gitee 而不是 GitHub2. 共享会话不加载敏感信息
OpenClaw 默认行为:
- 主会话:加载 MEMORY.md
- 共享会话:不加载 MEMORY.md
手动确保:
channels: discord: sessionMode: shared # 确保共享会话模式3. 定期清理旧记忆
删除不再需要的敏感信息:
# 定期清理
- 3 个月前的 daily 记忆- 过期的密码和密钥- 不再相关的项目信息文件系统安全
1. 限制访问路径
tools: file: enabled: true allowPaths: - "/root/.openclaw/workspace" - "/tmp" denyPaths: - "/etc" - "/root/.ssh"2. 只读模式
如果不需要写文件,可以限制为只读:
tools: file: enabled: true mode: read # 只读模式3. 操作日志
记录所有文件操作:
logging: level: info fileOperations: true # 记录文件操作网络安全
1. 使用 HTTPS
OpenClaw 默认使用 HTTPS 与外部服务通信。
2. 验证域名
channels: telegram: verifyDomain: true # 验证域名3. 限制外部访问
tools: web: enabled: true allowedDomains: - "github.com" - "gitee.com" blockedDomains: - "malicious-site.com"消息安全
1. 不在消息中发送敏感信息
AI 被训练过,不会主动发送敏感信息,但最好还是有明确规则:
## 安全规则
- 绝不发送密码、密钥等敏感信息- 私有数据保持私有- 不确定的操作要询问用户2. 确认敏感操作
tools: exec: enabled: true sensitiveCommands: - "rm" - "git push" - "curl" requireConfirmation: true3. 消息加密
OpenClaw 支持消息加密(某些渠道):
channels: telegram: enabled: true encryption: true # 启用加密定期安全审计
检查清单
定期检查:
- 白名单是否合理
- MEMORY.md 是否有敏感信息
- 日志中是否有异常访问
- 权限配置是否过度宽松
- 敏感文件权限是否正确
查看日志
# 查看 Gateway 日志openclaw gateway logs
# 查看最近的错误openclaw gateway logs | grep ERROR检查访问记录
# 查看最近的消息记录openclaw sessions list --limit 10群聊中的安全
1. 群聊使用共享会话
channels: discord: enabled: true sessionMode: shared # 群聊不加载敏感信息2. 在群聊中谨慎发言
AI 在群聊中的行为:
## 群聊行为
- 不要回答每条消息- 只在能提供价值时发言- 不要泄露私人信息- 注意上下文,不要误会3. 敏感话题在私聊处理
如果涉及敏感信息,建议在私聊中处理:
AI: 这涉及敏感信息,我们私聊说。API 密钥安全
1. 使用环境变量
不要在配置文件中硬编码 API 密钥:
export OPENAI_API_KEY="your_key"export ZHIPU_API_KEY="your_key"model: provider: openai apiKey: ${OPENAI_API_KEY} # 使用环境变量2. 密钥轮换
定期更换 API 密钥:
# 每 90 天更换一次3. 限制密钥权限
创建最小权限的 API 密钥:
# 只给必要的权限model: apiKey: "limited_key" # 只能调用模型最佳实践总结
安全三原则
- 最小权限原则 - 只给必要的权限
- 白名单原则 - 默认拒绝,明确允许
- 确认原则 - 敏感操作需要确认
日常检查
- 白名单是否合理
- 日志是否有异常
- 权限配置是否过度宽松
- 敏感文件权限正确
- API 密钥定期更换
响应安全事件
如果发现异常:
- 立即禁用相关渠道
- 检查日志确认影响范围
- 修改相关密钥
- 通知可能受影响的用户
总结
OpenClaw 提供了多层安全机制,但安全最终取决于你如何配置:
- 使用白名单控制访问
- 主会话隔离敏感信息
- 限制文件和命令权限
- 定期审计和检查
- 保持密钥和敏感信息安全
安全是一个持续的过程,不是一次性的配置。保持警惕,定期检查。
辉哥说: 权限越小,风险越低。安全永远比方便重要。🤖
OpenClaw 安全性指南:保护你的 AI 助手和数据
https://www.599.red/posts/openclaw-security-guide/