Skip to content

安全模型

OpenClaw 的安全模型确保在多通道、多会话环境中,AI 的操作权限得到合理控制——特别是在群组和公开通道中。

源码位置

src/security/
├── audit.ts              # 安全审计日志 (核心模块)
├── audit-extra.ts        # 扩展审计上下文
├── audit-fs.ts           # 文件系统审计
├── fix.ts                # 安全修复
├── skill-scanner.ts      # 技能安全扫描
├── windows-acl.ts        # Windows ACL 管理
├── external-content.ts   # 外部内容验证
└── channel-metadata.ts   # 通道安全上下文

安全层次

执行环境

会话类型执行环境信任级别
main (1:1 私聊)宿主机直接执行完全信任
group (无沙箱)宿主机 + 工具策略受限信任
group (沙箱)Docker 容器最小信任

Docker 沙箱

非 main 会话(群组/通道)可以启用 Docker 沙箱模式。在沙箱中:

  • 工具在隔离容器中执行
  • 无法访问宿主机文件系统
  • 网络访问受限
  • 资源使用有上限

通道白名单

Source: src/channels/channel-config.ts

每个通道可以配置 allowFrom,限制谁可以发送消息:

typescript
// AllowFrom configuration
interface AllowFromConfig {
  // List of allowed sender IDs
  // Supports wildcards and patterns
  // Per-channel and per-group configuration
}

节点命令策略

Source: src/gateway/node-command-policy.ts

远程节点(iOS/Android 设备)的命令执行有专门的策略控制:

typescript
// Node command policy (simplified)
// Controls what commands remote nodes can execute
// Validates command against allowed patterns
// Prevents unauthorized host access from remote devices

安全审计

Source: src/security/audit.ts

审计模块记录所有安全相关事件:

审计事件说明
认证尝试成功/失败的认证
工具执行工具名称、参数、结果
文件访问读写操作记录
配置变更配置修改记录
权限变更白名单、角色变更

技能安全扫描

Source: src/security/skill-scanner.ts

安装技能前会进行安全扫描:

typescript
// Skill scanner
// - Check for suspicious patterns
// - Validate manifest integrity
// - Scan for known vulnerabilities

小结

  • 三层安全模型:认证 → 访问控制 → 执行隔离
  • Docker 沙箱 为非 main 会话提供隔离执行环境
  • 通道白名单 (allowFrom) 控制消息来源
  • 节点命令策略 限制远程设备的执行权限
  • 安全审计 记录所有安全关键事件
  • 技能扫描 在安装前检查安全性

下一章:日志系统

OpenClaw 源码学习教程