安全与隐私
ORG-2 的威胁模型、凭据在磁盘上的位置、智能体能访问到什么、哪些数据被传输到哪里,以及如何报告漏洞。
ORG-2 在你的机器上、用你的凭据、针对你的仓库运行智能体。没有任何服务器持有你的源码,但有一个本地进程可以代表你读取文件、执行命令。本页描述应用实际强制执行的内容,并且刻意把它不提供什么也说清楚。
本地优先的威胁模型
ORG-2 假定你的机器和用户账户是可信的——任何以你的身份运行的程序都能读到它的数据,而物理接触设备不在考虑范围内。网络是不可信的,因此所有流量都走 HTTPS。你的模型服务商会看到你发给它的内容。
它并不假定智能体是安全的。策略控制让破坏性操作更难发生、也更容易被看见,但模型被你仓库里的内容做提示词注入,是一个真实存在的风险——请审阅智能体究竟做了什么,回放正是为此而生。ORG-2 不防御这些情况:另一个以你的身份运行的进程、被攻破的模型服务商,或者你自己选择安装的恶意 MCP server。
凭据在磁盘上的位置
在所有平台上,ORG-2 都把数据放在 ~/.orgii/ 下(可用 ORGII_HOME 覆盖)。
| 文件 | 内容 | 保护措施 |
|---|---|---|
credentials.json | 服务商 API 密钥和会话令牌 | macOS/Linux 上为 0600 权限;Windows 上为受限 ACL |
sync_connection_tokens.json | Git 托管服务的访问令牌和刷新令牌 | 同上 |
extension_secrets.json | 扩展密钥 | 同上 |
proxy/ca-key.pem | 本地代理 CA 私钥 | 同上 |
sessions.db、projects/projects.db | 会话历史、对话记录、项目 | 普通文件权限 |
警告: 对于自己的密钥,ORG-2 不使用操作系统钥匙串、Windows 凭据管理器或 Linux Secret Service,也不做静态加密。
credentials.json是明文 JSON,唯一的保护就是文件权限位;数据库就是普通的 SQLite,没有口令。任何以你的身份运行的进程都能读到这全部内容。请把这台机器本身当作安全边界,并且只给智能体它真正需要的那部分服务商密钥。
加固过的文件会先设好权限再做原子重命名,所以它们不会有哪怕一瞬间是所有人可读的;集成配置和部分 CLI 智能体的 OAuth 配置文件则没有这种处理。云端会话令牌存放在内嵌 WebView 的 local storage 里,而不是 ~/.orgii/ 中。
粘贴进会话内密钥输入框的机密值处理得更好:它们保存在一个会自动清零的内存缓冲区里,通过一个不透明的令牌来引用,并且只有在写入环境变量文件(0600 权限)时才会被解析——永远不会进入模型的对话记录或会话数据库。
智能体能访问到什么,以及如何约束它
| 控制项 | 默认值 | 作用 |
|---|---|---|
| 访问模式 | 读取 + 写入 | 只读,或者同时可以写文件、执行命令 |
| 仅限工作区 | 开启 | 将文件和 Shell 访问限制在工作区目录内 |
| 阻止高风险命令 | 开启 | 高风险模式会被直接拒绝,而不是排队等待批准 |
| 阻止列表 | sudo、shutdown | 永远不会运行的基础命令 |
| 禁止访问路径 | 空 | 智能体绝不能碰的路径 |
| 始终询问列表 | 空 | 运行前需要额外批准的命令 |
这些都在 设置 → 安全 中按智能体分别配置,那里提供 访问模式(只读 / 读取 + 写入)、仅限工作区、路径策略 → 禁止访问路径,以及 命令策略 → 阻止列表 和 始终询问列表。禁止访问路径每行填一个绝对路径或 ~/ 相对路径;应用里给出的示例正是大多数人需要的那一组——~/.ssh、~/.aws、/etc,以及在 Windows 上你的 .ssh 文件夹和 System32。
路径会被独立检查两次:语法校验会拒绝空字节、.. 路径段,以及诸如 ..%2f 这样的 URL 编码穿越;而 仅限工作区 则单独检测路径是否包含在该会话允许的根目录之内。
请设置禁止访问路径。 它默认为空,而正是它把智能体挡在 ~/.ssh 和你的云凭据之外。
批准提示
命令在运行前会按风险分级。高风险模式——默认是 sudo 和 shutdown——会被直接阻止。中风险模式会暂停等待批准:随应用提供的列表涵盖 rm -rf、dd、reboot、su,wget、nc、ssh 这类网络工具,以及包括 git clean、git reset --hard、各种 git push --force 变体和 git branch -D 在内的破坏性 git 操作。两份列表都可以编辑,可用 策略重置 → 重置为默认值。
带有不可逆外部副作用的命令始终需要确认:git push、gh pr/issue/release、npm/yarn/pnpm publish、cargo publish、twine upload 和 pip upload。匹配是在归一化后的管道上进行的,所以用串联或管道并不能让某条命令蒙混过关。
隔离:worktree,而不是操作系统沙箱
警告: ORG-2 不在操作系统级别的沙箱中运行智能体。没有 seatbelt 或
sandbox-exec配置文件,没有 Landlock,也没有容器。智能体进程以你的身份、在你的环境中运行。隔离来自上面那层策略机制和 git,而不是来自内核。
你真正得到的是 worktree 隔离:子智能体可以在一个临时的 git worktree 中运行,这样它的文件和 Shell 活动就不会碰到你的工作树,它的产出也落在自己的分支上。过期的 worktree 会在后台被清理——默认每个仓库最多 8 个,每 6 小时清理一次。
面对任何不可信的东西,请把这几层叠起来用:在 worktree 里运行它,把 访问模式 设为 只读,并把 禁止访问路径 填好。如果你需要内核级别的隔离,请把 ORG-2 放进一台你自己掌控的虚拟机或容器里运行。
智能体所工作的仓库中的密钥卫生
遍历文件的工具使用的是能识别 .gitignore 的遍历器,因此被忽略的文件不会因为一次宽泛的搜索就被卷进上下文;智能体在会话开始时拿到的工作区摘要也会跳过点文件,只有 .gitignore 和 .env.example 除外。这降低了意外暴露的概率,但它不是一道边界——一个拥有读取权限、又知道具体路径的智能体,仍然可以读取被忽略的文件。请把真正的机密放在工作区目录之外,把 ~/.ssh 和 ~/.aws 加进 禁止访问路径,对智能体不该看到的值使用会话内的密钥输入框,并在共享一个会话之前先审阅回放。
有哪些数据被传输,传给了谁
发给你的模型服务商: 提示词、对话历史,以及智能体拉进上下文的任何文件内容或命令输出——它们用你自己的密钥,从你的机器直接发出,不经我们代理。参见 API 密钥。
同步时发给 ORG-2: 只有你的 Session 访问 模式针对 允许的工作区 所允许的那些内容,而完整回放只限于你批准过的请求。绝不包括你的 API 密钥,也绝不包括你的源码树。参见云端与同步。
除此之外没有别的。 没有崩溃上报器,也没有第三方分析 SDK。更新经过密码学签名,并用内置在应用中的密钥进行验证。
诊断与遥测
诊断是默认开启、需要你主动关闭的,而不是需要你主动开启的。 privacy.diagnosticsLevel 的默认值是 default,应用默认每 12 小时上传一份聚合快照(可在 1 到 24 之间配置)。
采集到的是聚合值和分桶值,绝不是内容本身:应用版本与启动次数、操作系统家族与粗粒度版本、CPU/内存以及应用内存的分桶、按内部操作名统计的成功与失败次数、按类别统计的会话数、工作区数量,以及在 default 级别下的模型名称和每个模型的运行次数。其中没有提示词、消息、文件内容、文件路径、仓库名、主机名或用户名。身份标识是每次安装时生成一次的随机 UUID——没有邮箱,也没有账号 ID。
清洗器按白名单工作:它会新建一条记录,只把识别得出的字段拷贝进去,并对每个字符串做长度限制,因此未被识别的键不可能被转发出去。快照会排队写入 ~/.orgii/diagnostics/queue.jsonl,再通过 HTTPS 上传到一个由 ORG-2 运营的端点,该端点还会记录它的边缘节点观测到的国家。
要修改它,请编辑 ~/.orgii/settings.jsonc:
{
"privacy.diagnosticsLevel": "performance-only",
"privacy.offlineMode": true
}performance-only会丢掉使用类聚合数据,保留性能计数器。off是一个最小化档位,而不是总开关——它仍然会发送一次最小化的存在性心跳,其中带有会话数、工作区数和外部工具数,以及安装 ID。privacy.offlineMode: true才是真正的总开关。 它会禁用非必要的对外网络请求,包括所有诊断数据上传。
注意: 目前设置界面里还没有针对这些键的开关。编辑
~/.orgii/settings.jsonc是修改它们的受支持方式。
云端路径:传输、存储与组织隔离
与 ORG-2 Cloud 之间的流量走 HTTPS。登录使用魔法链接配合 PKCE,交换在你的浏览器中完成,令牌通过 URL 片段返回桌面应用,因此它们不会到达任何 Web 服务器,也不会进入其日志;只有固定的一组桌面回调地址会被接受,这堵死了开放重定向的滥用空间。
组织之间的隔离是在数据库里强制执行的:每一张表都启用了行级安全,客户端从不直接对表发起原始查询。所有访问都经由存储过程,它们会在读写之前检查组织成员身份——在若干场景下还会检查管理员或所有者角色——而这些存储过程只授予已认证用户。
关于存储,要保持清醒:这套 schema 没有为会话负载增加任何应用层或端到端加密。同步上来的回放按其到达时的样子存储,保护它的是行级安全和平台磁盘加密,而不是一把只有你才持有的密钥,因此任何拥有合法数据库管理权限的人都能读到它。正因如此,Session 访问 默认为 关闭,而完整回放需要逐次请求批准。自托管路径会为它的设置 SQL 所创建的每一张表启用行级安全,但密钥保管、备份和网络暴露面都归你自己负责。
报告漏洞
不要为安全漏洞创建公开的 GitHub issue。请发邮件到 security@orgii.ai,写明问题描述与影响、复现步骤、受影响的版本与平台,以及你已知的任何缓解措施。我们也支持 PGP 加密邮件,可以索取。
我们公开的目标是:48 小时内确认收到,5 个工作日内完成定级,严重和高危问题在定级后 14 天内出补丁、中低危问题 90 天内出补丁,并在补丁发布之后进行协同披露。除非报告者希望匿名,否则我们都会署名致谢;另外,只有最新版本会收到安全补丁。
下一步
有问题?欢迎到 ORG-2 Discord 提问。 Discord。