跳转到内容

安全模型

Wuu 会把任务上下文发送给模型服务,也可以在你的机器上运行工具。理解它的安全边界,需要分清哪些数据会离开本机、会话能执行哪些操作,以及你信任了哪些已安装的代码。

请求可能包含消息、会话历史、指令、选中的记忆、附件、文件内容、差异、搜索结果、命令输出和工具错误。Hook 与 MCP 服务返回的内容也可能进入模型上下文。

请选择隐私和保留政策适合这些数据的服务商。自定义 API 地址会接收该服务配置发出的提示内容。在本地运行桌面应用,并不意味着远程模型也在本地运行。

Wuu 会避免把服务凭据放入提示,并对工具输出中的常见密钥格式做脱敏。但这些措施无法识别所有秘密。文件、命令、扩展或用户消息仍可能以脱敏器无法识别的形式泄露凭据。

内置 Wuu 引擎提供 Standard、Read only 和 Unconfined 三种模式。专用工具执行路径与敏感文件检查;受限模式下的命令工具还必须使用实际生效的文件系统沙箱,没有可用后端就会失败。

这个沙箱限制的是文件系统写入,不隔离网络访问、所有文件读取、进程可见性或继承的环境变量。Read only 适合调查,但不是防止数据外泄的边界。Unconfined 会移除命令沙箱,让命令拥有运行 Wuu 的用户权限。

PTC 程序运行在有内存上限的隔离解释器中。程序无法访问原生 API、 导入模块、读取进程环境或直接操作文件系统与网络;Unconfined 模式下也保留这条 边界。所有副作用均通过嵌套工具及其原有权限、调度和审计流程。在 Standard 模式 开启替我审批后,程序启动前仍需审查,每个嵌套调用也保留自己的检查。 宿主进程继续使用会话命令沙箱作为额外保护。取消会停止程序和活动调用,但不会 撤销已经完成的副作用。内置引擎默认开启 PTC,用户可通过全局开关关闭它;项目配置不能修改它或替换执行器。只有显式保存的 JSON 检查点会进入 有界内存状态,并按会话、执行者与工作区隔离。失败程序丢弃暂存状态变更, 但不会撤销工具副作用。直调交互与生命周期控制不能嵌套。控制通道仅监听本次调用的本机回环地址并使用身份校验。执行 worker 协议版本 4 拒绝旧 worker,防止退回拥有原生 API 权限的程序执行方式。

Approve for me 在 Standard 模式下增加模型审核,不扩大权限,也不能代替隔离。外部 Codex 和 Claude Code 会话使用各自的执行控制。具体范围和适配参数见权限模式。

处理恶意仓库或不可信依赖时,请使用可丢弃的隔离环境或独立系统账户。在桌面终端中手动输入的命令不是 agent 工具调用,不受 agent 的权限检查约束。

正常启动以用户配置为基础。项目配置不能替换模型服务连接、受保护字段中的模型选择、指令发现设置或权限模式;此限制也适用于正常启动时的 .wuu/settings.local.json。wuu exec --config 和 --ignore-user-config 则会明确采用可信项目配置,只应对已经审查的输入使用。详见配置。

标准模式把 Wuu 主目录纳入 Agent 文件范围和命令沙箱的可写目录,因此 Agent 可以修改受信任的用户配置和运行记录。项目层过滤不会阻止这种直接编辑。专用文件工具仍禁止访问 Wuu 登录凭据文件,但这些防护不提供对子进程的凭据隔离。任务不能修改配置或状态时,应使用只读模式。

仓库指令、技能、工具输出和检索内容都能影响模型,但不因此成为可信指令。使用新项目之前,应检查其中的 AGENTS.md、Wuu 设置、Hook、技能和 MCP 配置。

项目 .mcp.json 中的服务需要本地信任决定后才会加载。信任 MCP 服务,意味着信任其程序或远程服务处理你交给它的数据与凭据;它的回复仍属于外部输入。

已启用扩展是受信任代码,不是沙箱代码。安装本地包即确认信任并启用,同源更新继承信任,来源改变需要确认,具体见插件安装与更新。Wuu 提供加载、诊断和安全模式,但不为扩展的安全性背书。

Hook 和 MCP 子进程也不属于 agent 命令沙箱的狭义保护范围。启用前应检查来源、参数、环境和远程目标。禁用扩展能够停止其运行,但无法撤销已经完成的操作。

模型服务配置可以引用环境变量。桌面管理的 MCP OAuth 凭据使用 macOS 钥匙串或 Linux Secret Service。Linux 需要会话 D-Bus 和可用的 Secret Service 密钥环。密钥环失败会直接报告,不会悄悄改用明文文件。无界面认证支持文件存储,因此需要保护运行它的账户和状态目录。

会话历史、工具结果、日志、产物和插件数据可能包含源代码与私人文本。即使明显的令牌已经脱敏,也应把 Wuu 状态目录、会话导出和诊断包视为敏感数据。分享或备份到其他服务前先检查内容。

在 Unix 上,私有状态写入时使用文件权限 0600 和目录权限 0700,SQLite 辅助文件继承数据库的受保护权限。工作区文件工具和子命令保留调用者的 umask; 编辑已有文件不会改变其权限位。调用者主动设置 umask 077 时,新建的工作区 文件仍然只有所有者可访问。

wuu app-server 通过子进程的标准输入输出通信,其控制协议不需要网络监听端口;PTC 程序使用临时、经过身份校验的回环通道。桌面外壳通过 preload 和 IPC 桥接暴露选定操作。

远程控制是独立能力,当前发布构建关闭了桌面中的相关界面。如果自行构建或运行远程组件,应把已登记设备视为宿主工作区的控制端。使用安全的中继传输,并撤销不再信任的设备;详见远程与移动控制。

怀疑存在边界绕过问题时,请按 SECURITY.md 私下报告。