E6 · 进阶深入

安全边界与权限:沙箱机制与安全最佳实践

2026-09-30
📌 本页已按官方口径订正:删除了无法核实的斜杠命令(如 /skills run …、/security audit-log …)。官方文档中没有这类命令,涉及权限与安全的内容已改为「设置」中的开关/入口描述与方法建议;文中的配置示例为说明性示例,具体请以官方文档与你所用客户端版本的实际界面为准。

AI 助手能读写文件、执行命令、访问网络——这些强大能力的反面是安全风险。与其假设平台一定帮你挡掉了所有风险,更实际的做法是:搞清楚哪些操作有副作用、哪些信息会外发、你自己能设哪些闸。本页就讲这三件事,并按「你实际能做的动作」组织。

⚠️ 本页的定位:官方文档对安全机制的公开描述有限(主要集中在技能页的权限与数据外发提示)。因此本页不编造产品内部机制,只写两类内容:① 官方明确说过的(如第三方技能可能存在的恶意提示词注入、越权访问、后门风险,以及「以你本人身份执行」的定性);② 你可以立刻执行的通用防护动作。文中出现的配置写法均为说明性示例,不代表产品的真实配置项——请以你客户端实际界面与官方文档为准。
WorkBuddy 安全边界:有副作用的行为与你可执行的防护动作

🏖️沙箱隔离机制

WorkBuddy 的所有代码执行和工具调用都在沙箱中运行,与宿主系统隔离:

文件系统沙箱

WorkBuddy 的文件操作被限制在工作区内:

# 默认工作区
workbuddy.workdir = /path/to/your/project

# 文件访问规则
✅ 允许:读取/写入工作区内文件
✅ 允许:在工作区内创建/删除文件
❌ 拒绝:访问工作区外的文件(如 ~/.ssh/、/etc/)
❌ 拒绝:访问 .env、credentials、*.key 等敏感文件
❌ 拒绝:符号链接跳出工作区

可以通过配置扩展或收缩工作区范围:

// .workbuddy/config.json
{
  "security": {
    "workspace": {
      "roots": ["./src", "./tests", "./docs"],
      "deny_patterns": [
        "**/.env*",
        "**/credentials*",
        "**/*.pem",
        "**/*.key",
        "**/secrets/**"
      ],
      "allow_outside_read": [
        "/usr/share/dictionaries"
      ]
    }
  }
}

进程沙箱

WorkBuddy 执行的子进程受到资源限制:

// 进程沙箱配置
{
  "security": {
    "subprocess": {
      "timeout": 30,
      "max_memory": "512MB",
      "network": "whitelist",
      "network_whitelist": [
        "api.github.com",
        "registry.npmjs.org",
        "pypi.org"
      ],
      "max_processes": 1,
      "forbidden_commands": [
        "rm -rf /",
        "format",
        "del /s /q C:",
        "shutdown",
        "reboot"
      ]
    }
  }
}

网络沙箱

WorkBuddy 的网络访问遵循最小必要原则:

🔒

默认禁止

新安装的 Skill 默认无网络权限,需显式声明和用户授权

📋

白名单模式

只允许访问声明的域名列表,防止数据外泄到未知服务器

🔍

请求审计

所有网络请求记录到审计日志,包含 URL、方法、数据大小

🚫

内容过滤

上传内容自动检测敏感信息(API Key、密码、Token),命中则阻止

⚠️高危操作确认流程

某些操作风险较高,WorkBuddy 会暂停执行并请求用户确认:

高危操作分级

级别操作类型默认行为示例
Critical不可逆删除必须确认rm -rf、DROP TABLE、格式化磁盘
High批量修改/删除必须确认删除 10+ 文件、批量数据库更新、发送全员消息
Medium外部通信可配置发送 HTTP 请求、推送 Git 提交、部署服务
Low本地修改自动执行创建文件、修改代码、安装依赖

确认交互

当 WorkBuddy 遇到高危操作时,会展示操作详情并等待确认:

⚠️ 高危操作确认

操作:删除文件
目标:src/legacy/ 目录下 23 个文件
原因:这些文件已被新模块替代,不再使用

影响分析:
- 无其他文件引用这些模块(已验证)
- 无测试依赖这些文件(已验证)
- 删除后不可恢复(未启用版本控制快照)

[确认执行] [查看文件列表] [取消] [修改为移动到归档目录]

自动确认策略

对于信任的操作,可以配置自动确认以减少交互:

// .workbuddy/config.json
{
  "security": {
    "auto_confirm": {
      "rules": [
        {
          "match": { "operation": "file_delete", "path": "tests/tmp/**" },
          "action": "allow",
          "reason": "测试临时文件,可安全删除"
        },
        {
          "match": { "operation": "git_push", "branch": "feature/*" },
          "action": "allow",
          "reason": "功能分支推送,非主分支"
        },
        {
          "match": { "operation": "subprocess", "command": "npm test" },
          "action": "allow",
          "reason": "测试命令,无副作用"
        }
      ],
      "default": "confirm"
    }
  }
}

🔑授权管理

Skill 权限声明

每个 Skill 在 manifest.json 中声明所需权限,安装时用户可审查:

// manifest.json
{
  "permissions": {
    "filesystem": {
      "access": "readwrite",
      "scope": "./project/**"
    },
    "network": {
      "access": "whitelist",
      "domains": ["api.github.com", "api.npmjs.org"]
    },
    "subprocess": {
      "access": "restricted",
      "allowed": ["node", "python3", "git"],
      "max_timeout": 60
    },
    "clipboard": false,
    "notifications": true
  }
}

安装 Skill 时,WorkBuddy 会展示权限摘要:

📦 安装 Skill: code-reviewer v1.2.0

权限请求:
  📁 文件系统:读写当前项目目录
  🌐 网络:访问 api.github.com
  ⚙️ 子进程:运行 node, git(最长 60 秒)
  📋 剪贴板:无
  🔔 通知:允许

[信任并安装] [自定义权限] [取消]

运行时权限控制

官方并未提供「用某个参数临时降级技能权限」的命令。更稳妥的做法是只启用当前任务需要的技能:在技能面板中关闭无关技能,减少误调用概率;处理敏感文件前先做好备份,涉及文件删除、批量写入、系统配置变更或资金类操作时,先小范围验证再放大使用。

🛡️数据安全

敏感信息检测

WorkBuddy 在多个环节自动检测和拦截敏感信息:

// 敏感信息规则(可自定义)
{
  "security": {
    "sensitive_patterns": [
      { "name": "AWS Access Key", "pattern": "AKIA[0-9A-Z]{16}" },
      { "name": "GitHub Token", "pattern": "gh[pousr]_[A-Za-z0-9_]{36}" },
      { "name": "Private Key", "pattern": "-----BEGIN (RSA |EC )?PRIVATE KEY-----" },
      { "name": "JWT", "pattern": "eyJ[A-Za-z0-9_-]*\\.eyJ[A-Za-z0-9_-]*\\.[A-Za-z0-9_-]*" },
      { "name": "Generic Secret", "pattern": "(password|secret|token|api_key)\\s*[:=]\\s*['\"]?[^'\"\\s]{8,}" }
    ]
  }
}

数据驻留

WorkBuddy 支持配置数据不出域策略:

📋审计与可追溯

官方文档中没有 /security audit-log 这类命令,也没有对应的「审计日志」查看入口。要保证操作可追溯,建议用工作流本身来解决:让工作区始终处于版本控制之下,技能产生的每一次文件改动都能通过提交历史回溯与回退;重要操作前后手动核对变更。

✅安全最佳实践

💡 安全与效率的平衡:开发环境可以适当放宽限制,生产环境务必保持严格。无论哪种环境,处理敏感文件前都建议先备份,并只启用当前任务需要的技能,降低误调用概率。

📚 参考资料

💬 你在 WorkBuddy 的安全配置上有什么心得?有没有遇到过安全机制拦截了误操作的经历?欢迎分享你的安全实践!