OpenClaw 安全策略:DM 配对与权限控制

OpenClaw 连接到真实的通讯平台,安全至关重要。本文将详细介绍 OpenClaw 的安全策略,包括 DM 配对、权限控制和最佳实践。

安全概述

OpenClaw 的核心安全理念:默认安全,显式授权

  • DM 配对:陌生私信需要配对才能交互
  • 权限控制:精确控制工具访问权限
  • 审批机制:敏感操作需要用户审批
  • 数据加密:传输和存储数据加密

DM 安全策略

由于 OpenClaw 连接到真实通讯平台,必须谨慎处理陌生私信(DM)。

配对模式(默认)

陌生人发送私信时,会收到配对码,机器人不会处理消息,直到你批准:

{
  "channels": {
    "telegram": {
      "token": "YOUR_TOKEN",
      "dmPolicy": "pairing"
    }
  }
}

配对流程

  1. 陌生人发送消息给机器人
  2. 机器人返回配对码
  3. 你查看配对列表
  4. 批准或拒绝配对
  5. 配对后,该用户可以正常与机器人交互

配对管理命令

列出所有待批准的配对:

# 列出待批准的配对
$ openclaw pairing list

# 批准配对
$ openclaw pairing approve telegram 123456

# 拒绝配对
$ openclaw pairing deny telegram 123456

# 查看已配对用户
$ openclaw pairing list --approved

白名单模式

仅允许白名单中的用户交互:

{
  "channels": {
    "telegram": {
      "token": "YOUR_TOKEN",
      "dmPolicy": "allowlist",
      "allowFrom": ["user1", "user2"]
    }
  }
}

开放模式(不推荐)

允许任何人发送私信:

{
  "channels": {
    "telegram": {
      "token": "YOUR_TOKEN",
      "dmPolicy": "open",
      "allowFrom": ["*"]
    }
  }
}

⚠️ 警告:开放模式存在安全风险,仅在受信任的环境中使用。

工具权限控制

通过精确的工具权限控制,限制 AI Agent 的能力。

全局工具策略

为所有 Agent 设置默认工具策略:

{
  "tools": {
    "deny": ["exec", "bash"],
    "allow": ["read", "write", "web_search"]
  }
}

工具 Profile

使用预定义的 Profile:

Profile 包含工具 适用场景
minimal session_status 最小权限,仅状态查询
coding group:fs, group:runtime, group:sessions, group:memory 编程助手
messaging group:messaging, sessions_* 消息处理
full 所有工具 完整权限

每个 Agent 独立配置

为不同的 Agent 配置不同的工具权限:

{
  "tools": {
    "profile": "coding"
  },
  "agents": {
    "list": [
      {
        "id": "default",
        "name": "Default Assistant",
        "tools": {
          "profile": "full"
        }
      },
      {
        "id": "messenger",
        "name": "Message Bot",
        "tools": {
          "profile": "messaging",
          "allow": ["slack", "discord"],
          "deny": ["exec"]
        }
      },
      {
        "id": "reader",
        "name": "Read-Only Agent",
        "tools": {
          "allow": ["read", "web_search"],
          "deny": ["exec", "write"]
        }
      }
    ]
  }
}

敏感操作审批

为敏感操作配置审批机制:

配置审批策略

{
  "tools": {
    "exec": {
      "security": "ask"
    },
    "process": {
      "security": "ask"
    }
  }
}

审批级别

级别 说明
off 不启用审批
on-miss 仅不在允许列表时审批
always 总是需要审批

网络通信安全

HTTPS/TLS

确保所有网络通信使用 HTTPS:

  • 网关 API 使用 HTTPS
  • 聊天平台使用安全连接
  • 模型提供商使用 HTTPS

API Key 管理

安全地管理 API Key:

  • 使用环境变量存储 API Key
  • 不要在代码中硬编码 API Key
  • 定期轮换 API Key
  • 使用最小权限的 API Key

数据加密

配置文件加密

加密敏感配置文件:

# 加密配置文件
$ openclaw config encrypt ~/.openclaw/openclaw.json

会话数据加密

启用会话数据加密:

{
  "security": {
    "encryptSessions": true,
    "encryptKeys": true
  }
}

沙箱隔离

通过沙箱隔离保护系统安全:

工具沙箱

将工具运行在隔离的环境中:

{
  "tools": {
    "exec": {
      "sandbox": true,
      "workspace": "/tmp/openclaw-sandbox"
    }
  }
}

Agent 沙箱

为 Agent 设置独立的工作空间:

{
  "agents": {
    "list": [
      {
        "id": "coder",
        "workspace": "/home/openclaw/workspaces/coder",
        "isolate": true
      }
    ]
  }
}

审计与监控

启用审计日志

{
  "audit": {
    "enabled": true,
    "logFile": "/var/log/openclaw/audit.log",
    "level": "info"
  }
}

监控安全事件

监控安全相关事件:

  • 未授权的访问尝试
  • 敏感操作执行
  • 工具权限变更
  • 配对请求

安全诊断

使用诊断工具检查安全问题:

# 运行安全诊断
$ openclaw doctor --security

诊断工具会检查:

  • API Key 是否暴露
  • DM 策略是否过于宽松
  • 工具权限是否合理
  • 敏感操作是否需要审批

最佳实践

最小权限原则

  • 只授予必要的工具权限
  • 使用最小权限的 API Key
  • 限制文件系统访问范围

定期审计

  • 定期审查配对列表
  • 检查工具权限配置
  • 审查审计日志

及时更新

  • 保持 OpenClaw 最新版本
  • 更新依赖项
  • 关注安全公告

故障排查

配对请求未收到

  • 检查网关日志
  • 确认渠道配置正确
  • 验证 DM 策略设置

工具权限错误

  • 检查 Agent 工具配置
  • 确认全局工具策略
  • 验证工具名称拼写

总结

安全是使用 OpenClaw 的关键。通过 DM 配对、工具权限控制、审批机制和数据加密,你可以构建一个安全可靠的 AI 助手。

相关资源

发表回复

后才能评论