浏览文档
文档/安全

安全模型

ThreadCells 面向由一人或一小组受信任人员操作的一台受信任 Linux 主机。它协调功能强大的原生编码代理;它不是用于敌对用户、提示、仓库或提供商插件的沙箱。

实际信任边界

主机和运行时用户

ThreadCells 操作系统账户可读取或执行的任何内容,都可能被原生代理访问。请使用专用账户、最小化文件系统权限、经过审查的提供商安装,以及适合自动化的仓库。

托管工作树将写入者隔开,但不对其进行隔离。不要向运行时账户提供代理不需要的凭据或主机访问权限。

Web 访问

常规 UI 和打包文档不提供通用用户登录。绑定到 127.0.0.1。偶尔访问时使用 SSH 隧道,或使用 Caddy 加 Authelia 提供已认证的 HTTPS URL。绝不公开暴露原始 ThreadCells 端口。

已安装的 PWA 保持相同的网络信任边界。其服务工作线程无法提供离线运行状态,也不会缓存 API、终端、授权、工作流、结果或 Statistics。

操作员授权

敏感的控制平面变更使用由不同 OS 主体配置的独立操作员验证器。密钥的精确最小长度为五个字符;建议使用更长的随机生成值。

ThreadCells 存储加盐 scrypt 验证器、短时有效会话/授权摘要、范围、签发者、到期时间、使用记录和审计记录——而非明文。服务账户不得能够替换验证器及其每一级父目录。五分钟浏览器会话使用 HttpOnlySameSite=Strict cookie。

此边界保护已配置的变更。它不会将整个 Web UI 变成多用户认证应用。

例外的所有者启动

所有者执行器/XHigh 启动需要一次性能力,该能力绑定到精确的不可变配置文件修订、提供商配置修订、项目/工作树、会话请求、拓扑、签发者和委派深度。它会与终端元数据原子地一同被消耗。

针对内置 critical_sol_xhigh_owner 的 Web Create Session 和 Add Agent 流程需要相同的例外警告、明确确认、操作员解锁和有范围的一次性能力。Add Agent 将授权绑定到现有会话和已解析的规范工作树,而不接受用户输入的路径。本地 critical_sol_xhigh_owner --owner-xhigh 路径需要明确的交互式确认和仅回环地址启动。这些路径均不向子项或无关的 Web Settings 授予权限。提示文本无法创建或委派所有者权限。

提供商和导入构件

提供商适配器是可执行的受信任包,需要操作员审查。提供商/配置文件 JSON 是不受信任的声明式输入:可执行路径、命令、shell 标志、环境、原始密钥、任意 MCP 命令和未授予的通配符权限都会被拒绝。

提供商认证保留在提供商自身受支持的机制中。注册表导出会省略密钥值和一次性授权。

每终端控制凭据的范围限定于终端/提供商进程。ThreadCells 通过无凭据引导程序启动长期运行的 tmux 服务器,因此其持久进程命令行不会保留终端凭据。对于以同一受信任运行时账户运行的进程,这些凭据仍然敏感。

Telegram 通知

Telegram 投递为可选功能,默认禁用,适用于整个安装,并独立于项目配置。其机器人令牌是仅写入的 Web 设置,存储在私有 ThreadCells 状态根目录中由运行时拥有的 0600 常规文件内。读取 API 只公开安全的配置状态。操作员授权保护更新以及显式连接/测试操作。

生命周期消息使用固定的安全摘要,不包含提示、终端输出、异常正文、路径或凭据。对外投递对于工作流执行是故障开放的,并且会持久去重;启用通知不会重放禁用期间观察到的事件。

数据敏感性

请将 SQLite 数据库、终端日志、提示、结果、附件、托管工作树、备份、操作员验证器和提供商原生 rollout 历史视为敏感数据。即使 ThreadCells 本身避免记录凭据,它们也可能包含专有代码或用户提供的内容。

不要将明文操作员/提供商/Telegram 密钥放入仓库、环境转储、支持包、遥测、浏览器存储、API 响应或截图中。

破坏性操作

内务处理以计划为先,并按 fail-closed 原则执行。未知、不可读、打开、活跃、被引用、身份已变更或元数据不完整的资源仍受保护。绝不自动删除备份。

Full Cleanup 是同一 Housekeeping 权限内更积极的保留模式,而不是独立删除子系统。它复用服务器端操作员会话和永久操作确认,不接受调用方选择的文件系统路径,与启动/提供商/Heavy 准入串行,并在变更前立即重新验证全空闲生命周期。活跃发布版本、SQLite 状态、Ready 智能体继续执行权限、提供商凭据/状态、当前源代码/工具权限及含糊资源均保持受保护。只有通过这一显式操作,已证实不活跃的本地回滚发布版本才会被有意移除。

路径名删除仅限于通过套接字激活的 root helper。它重新认证同一操作员权限,只接受精确的规范 plan ID,要求控制平面进程持有所有准入栅栏,并在相对于描述符执行删除之前锁定隔离目录身份,防止运行时用户替换。非特权 API 不提供任意路径操作,也没有权限更弱的回退操作。

部署会保留回滚运行时和数据库备份。公开发布、公共网络暴露和破坏性历史变更仍是单独的所有者决策。

操作员职责

  • 修补 OS、ThreadCells、提供商 CLI、反向代理和认证层。
  • 在授予写入访问前审查提示、配置文件、适配器和仓库。
  • 保持运行时用户和服务环境处于最小权限状态。
  • 备份并测试持久状态恢复。
  • 在合并、部署或发布前检查 diff/结果。
  • 保持仅回环或经认证代理的访问控制。
  • 通过安全的管理流程轮换提供商凭据并替换操作员验证器。

报告安全问题

请遵循 SECURITY.md。不要包含实时凭据、私有状态,或超出维护者安全复现所需范围的公开利用细节。

由 Subaev Ruslan 创建并维护,ThreadCells 社区共同贡献。 查看仓库