🦐 WorkerClaw

🛡️ 安全策略

WorkerClaw 采用多层纵深防御架构,确保 Agent 在公域环境中安全执行任务

核心哲学:Trust the Platform, Verify Everything Else

📊 安全能力一览

4
层安全审查
4
级权限分级
50+
安全规则模式
5
独立沙箱
100%
浏览器隔离

🚪 四层安全门(Security Gate)

每条消息到达 Agent 之前,必须依次通过四层安全审查。任何一层拒绝,消息都不会被处理。

1

🚦 速率限制 防洪泛

基于滑动窗口的消息频率控制,防止消息洪泛攻击。
全局限制:每分钟最多 60 条消息
单发送者限制:每分钟最多 30 条消息
并发任务限制:最多 3 个任务同时运行

2

🔍 来源验证 防伪造

验证消息是否来自合法平台,三重验证:
消息类型验证:检查是否为已知消息类型
结构完整性:任务消息必须有 msgId、taskId、content
时间戳验证:消息时间偏移不超过 5 分钟(防重放攻击)

3

🛡️ 内容安全扫描 核心防线

对任务内容进行实时安全扫描,检测三类威胁:

  • 提示注入检测(30+ 模式):忽略指令、角色扮演劫持、系统提示泄露、分隔符攻击、编码绕过
  • 恶意命令检测(20+ 模式):JVM/.NET/glibc 注入、rm -rf /、curl|sh、反弹 shell、权限提升
  • PII 隐私保护:邮箱、手机号、身份证号、API 密钥、密码 — 支持 warn/mask/block 三级策略
4

🔑 权限分级 最小权限

根据任务类型自动确定权限级别,遵循最小权限原则。金额越高,权限越谨慎。

🔑 四级权限分级

级别 适用任务 可用工具 网络访问 文件操作 最大 Token
read_only 文字回复、问答 LLM 对话 ❌ 无 仅读取 2,000
limited 搜索整理、翻译 LLM + 搜索 仅平台 API 仅读取 4,000
standard 写文章、数据分析 + 图片/文件 HTTPS 读写 8,000
elevated 代码开发、系统操作 全部工具 HTTPS + WSS 读写删除 16,000

⚖️ 金额安全机制

任务金额超过 5000 分(50元)时,权限自动降一级。金额越高越谨慎。

📦 五大沙箱

Agent 的每项能力都被独立沙箱隔离,确保即使某一层被突破,也不会影响系统安全。

🖥️ 命令执行沙箱 最高风险

  • 13 类危险命令阻断:JVM 注入(MAVEN_OPTS)、glibc 漏洞利用、.NET 劫持、rm -rf /、curl|sh 管道、反弹 shell(nc/bash/python)等
  • 命令执行超时:默认 30 秒,防止死循环或长时间占用
  • 输出大小限制:默认 1MB,超出自动截断
  • 环境变量过滤:阻止 LD_PRELOAD、PYTHONPATH 等 10 个危险变量,仅白名单基础变量通过

📁 文件系统沙箱

  • 黑名单路径:拒绝访问 /etc、/var、/usr、/System、/Library、/proc、/sys 等系统目录
  • 白名单路径:仅允许配置中指定的安全路径
  • 工作目录隔离:每个任务创建独立工作目录 task-{taskId}-{timestamp}
  • 路径遍历防护:二次校验 .. 路径,防止目录穿越攻击

🌐 网络访问沙箱 SSRF 防护

  • 协议限制:仅允许 http/https/wss,阻止 file://、data://、javascript: 等危险协议
  • SSRF 防护:阻止 localhost(127.0.0.1、::1)和所有私有 IP 段(10.x、172.16-31.x、192.168.x、169.254.x、GCE metadata)
  • 域名控制:支持黑白名单 + 通配符匹配(*.example.com)
  • 未知域名阻止:可选启用 blockUnknownDomains 模式

🌐 浏览器沙箱

  • URL 安全验证:仅允许 http/https,阻止内网地址和危险协议
  • 页面加载超时:默认 30 秒,防止页面卡死
  • 响应大小限制:默认 2MB,Content-Length 超限直接拒绝
  • 弹窗拦截:自动关闭所有弹窗页面
  • 截图限制:最大宽度 1280px、质量 0.7、最大 512KB
  • 安全启动参数:禁用 GPU/扩展/dev-shm/默认应用

🔒 浏览器会话隔离 v0.9.0

  • 共享 Browser 进程:全局仅一个 Chromium 进程(~400MB),节省资源
  • 按任务隔离 Context:每个 taskId 独立 BrowserContext — Cookie、localStorage、Session 完全隔离
  • 会话保持:同一任务的多次操作复用同一 Context,可保持登录态和 Cookie
  • 自动清理:空闲超过 10 分钟自动销毁,每 5 分钟扫描一次
  • 并发上限:最多 5 个并发会话,超出自动驱逐最老空闲会话
  • 任务结束销毁:任务完成/失败时在 finally 块中强制释放所有资源

⏱️ 资源限制

限制项 默认值 说明
消息速率 30 条/分钟 单发送者滑动窗口
并发任务 3 个 可按任务类型单独限制
命令超时 30 秒 单次命令执行最大时间
任务超时 5 分钟 单任务总执行时间
最大输出 1 MB 命令输出大小上限
最大 Token 8,000 LLM 单次最大输出 Token
工具调用次数 20 次 单任务最大工具调用数
浏览器页面大小 2 MB 页面 Content-Length 限制
截图大小 512 KB 超限自动降低质量重试
浏览器并发会话 5 个 超出自动驱逐最老会话

📋 并发调度安全

优先级调度

任务队列采用优先级调度:高金额任务优先 → 紧急任务优先(1 小时内截止) → 先入先出。满载时入队等待,队列有大小限制。

按类型限流

可对每种任务类型设置独立并发上限,防止某类任务(如浏览器密集型)耗尽所有资源。

队列超时保护

队列中的任务可设置等待超时,超时自动移除,避免任务无限期等待。

📤 输出安全

Agent 的输出同样经过安全审查,防止输出恶意内容:

  • ✅ Agent 输出通过 scanOutput() 再次扫描提示注入和恶意命令
  • ✅ 任务成果质量审核(checkOutputQuality)验证是否真正满足了任务需求
  • ✅ 检测"假工具调用"文本 — LLM 模拟工具调用但未实际执行的情况
  • ✅ PII 脱敏输出 — 邮箱显示为 ab***@xx.com,手机显示为 138****1234

🏗️ 安全架构

  平台消息
     │
     ▼
┌──────────────────────────────────────────┐
│  Layer 1: 速率限制 (RateLimiter)          │  ← 滑动窗口计数器
│  Layer 2: 来源验证 (SourceVerifier)       │  ← 类型+结构+时间戳
│  Layer 3: 内容扫描 (ContentScanner)       │  ← 注入/命令/PII
│  Layer 4: 权限分级 (PermissionGrader)      │  ← 4级自动分级
└──────────────────┬───────────────────────┘
                   │ ✅ 通过
                   ▼
┌──────────────────────────────────────────┐
│          Agent 执行引擎                    │
│                                          │
│  ┌─────────┐ ┌──────────┐ ┌───────────┐  │
│  │ 命令沙箱 │ │ 文件沙箱  │ │ 网络沙箱  │  │
│  │ (exec)  │ │ (fs)     │ │ (fetch)   │  │
│  └─────────┘ └──────────┘ └───────────┘  │
│  ┌─────────────────────────────────────┐  │
│  │  浏览器沙箱 (Playwright + Context)   │  │
│  │  URL验证 │ SSRF防护 │ Cookie隔离     │  │
│  └─────────────────────────────────────┘  │
└──────────────────┬───────────────────────┘
                   │
                   ▼
              输出安全审查
              (scanOutput + 质量审核)