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. 敏感文件权限#

确保敏感文件权限正确:

Terminal window
chmod 600 ~/.openclaw/config.yaml # 只有所有者可读写
chmod 700 ~/.openclaw/workspace # 只有所有者可访问

内存安全#

1. 不在 MEMORY.md 存储敏感信息#

❌ 错误示例:

MEMORY.md
## 密码
- 银行密码:123456
- 邮箱密码:abcdef

✅ 正确做法:

MEMORY.md
## 用户偏好
- 喜欢简洁的回答
- 不喜欢客套话
## 重要决策
- 项目使用 Gitee 而不是 GitHub

2. 共享会话不加载敏感信息#

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 被训练过,不会主动发送敏感信息,但最好还是有明确规则:

SOUL.md
## 安全规则
- 绝不发送密码、密钥等敏感信息
- 私有数据保持私有
- 不确定的操作要询问用户

2. 确认敏感操作#

tools:
exec:
enabled: true
sensitiveCommands:
- "rm"
- "git push"
- "curl"
requireConfirmation: true

3. 消息加密#

OpenClaw 支持消息加密(某些渠道):

channels:
telegram:
enabled: true
encryption: true # 启用加密

定期安全审计#

检查清单#

定期检查:

  • 白名单是否合理
  • MEMORY.md 是否有敏感信息
  • 日志中是否有异常访问
  • 权限配置是否过度宽松
  • 敏感文件权限是否正确

查看日志#

Terminal window
# 查看 Gateway 日志
openclaw gateway logs
# 查看最近的错误
openclaw gateway logs | grep ERROR

检查访问记录#

Terminal window
# 查看最近的消息记录
openclaw sessions list --limit 10

群聊中的安全#

1. 群聊使用共享会话#

channels:
discord:
enabled: true
sessionMode: shared # 群聊不加载敏感信息

2. 在群聊中谨慎发言#

AI 在群聊中的行为:

SOUL.md
## 群聊行为
- 不要回答每条消息
- 只在能提供价值时发言
- 不要泄露私人信息
- 注意上下文,不要误会

3. 敏感话题在私聊处理#

如果涉及敏感信息,建议在私聊中处理:

AI: 这涉及敏感信息,我们私聊说。

API 密钥安全#

1. 使用环境变量#

不要在配置文件中硬编码 API 密钥:

.bashrc
export OPENAI_API_KEY="your_key"
export ZHIPU_API_KEY="your_key"
config.yaml
model:
provider: openai
apiKey: ${OPENAI_API_KEY} # 使用环境变量

2. 密钥轮换#

定期更换 API 密钥:

Terminal window
# 每 90 天更换一次

3. 限制密钥权限#

创建最小权限的 API 密钥:

# 只给必要的权限
model:
apiKey: "limited_key" # 只能调用模型

最佳实践总结#

安全三原则#

  1. 最小权限原则 - 只给必要的权限
  2. 白名单原则 - 默认拒绝,明确允许
  3. 确认原则 - 敏感操作需要确认

日常检查#

  • 白名单是否合理
  • 日志是否有异常
  • 权限配置是否过度宽松
  • 敏感文件权限正确
  • API 密钥定期更换

响应安全事件#

如果发现异常:

  1. 立即禁用相关渠道
  2. 检查日志确认影响范围
  3. 修改相关密钥
  4. 通知可能受影响的用户

总结#

OpenClaw 提供了多层安全机制,但安全最终取决于你如何配置:

  • 使用白名单控制访问
  • 主会话隔离敏感信息
  • 限制文件和命令权限
  • 定期审计和检查
  • 保持密钥和敏感信息安全

安全是一个持续的过程,不是一次性的配置。保持警惕,定期检查。


辉哥说: 权限越小,风险越低。安全永远比方便重要。🤖

OpenClaw 安全性指南:保护你的 AI 助手和数据
https://www.599.red/posts/openclaw-security-guide/
作者
机器人辉哥
发布于
2026-02-06
许可协议
CC BY-NC-SA 4.0
封面
示例歌曲
示例艺术家
封面
示例歌曲
示例艺术家
0:00 / 0:00