ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

OpenDots 安全部署清单:凭据派生、只读浏览器与6大隔离边界完整指南

OpenDots 安全部署清单:凭据派生、只读浏览器与6大隔离边界完整指南 OpenDots 安全部署清单凭据派生、只读浏览器与6大隔离边界完整指南【免费下载链接】OpenDotsYour always-on AI coworkers that move between text, calls, and Slack.项目地址: https://gitcode.com/gh_mirrors/op/OpenDots部署 AI 智能体最怕两件事凭据泄露以及智能体权限失控。OpenDots是一套可完全自托管的常驻 AI 同事AI Coworkers开源模板每个 Dot专家智能体都拥有独立容器化的电脑。本文面向新手用一份清单讲透 OpenDots 的安全设计逐 Dot 凭据派生、只读浏览器服务以及从进程、网络、Slack 身份到内容信任的6 大隔离边界帮助你放心地把 OpenDots 跑进生产环境。先搞清楚OpenDots 的威胁模型是什么OpenDots 官方在 SECURITY.md 中明确了自己的定位这是一个开发中的应用模板不是托管服务本地原型为单所有者模式它不是经过安全审计的自主智能体。这句话很重要——它决定了安全清单的出发点OpenDots 不替你做纵深防御的全部工作但它把关键边界都替你想好了。你的职责是守住这 6 条边界。隔离边界 1逐点凭据派生每台电脑只拿自己的钥匙这是 OpenDots 最核心的安全设计。每台 Dot 的电脑容器不会拿到主令牌master token而是由主令牌通过 HMAC-SHA256 派生出一把只属于该 Dot 的凭据应用侧computer-service.ts 中使用createHmac(sha256, 主令牌)对opendots-computer:DotId派生出每 Dot 令牌监督者supervisor侧harden-supervisor.mjs 用同一算法给容器写入派生令牌。这带来三个直接好处一机一钥拿到某台电脑容器的凭据无法冒充其他 Dot主令牌不外泄监督者令牌、模型密钥、主电脑令牌都不会转发给任何 Dot 容器见 deployment/computers/README.md故障关闭fail closed如果上游 OpenBot 源码被改过补丁脚本会直接拒绝构建逼你先审查。配置时请注意见 docs/COMPUTERS.mdCOMPUTER_SUPERVISOR_TOKEN与COMPUTER_TOKEN必须是两个不同的、至少 24 位的随机密钥绝不能用占位值。隔离边界 2只读浏览器——一个只能看、不能动的爬虫OpenDots 附带一个独立的研究浏览器服务它被设计成只能读公网页面源码见 src/browser/index.ts 与 src/browser/security.ts防护点具体做法身份验证Bearer 令牌使用timingSafeEqual恒定时间比较防时序攻击index.ts协议限制仅允许 http/https且 URL 内不得携带用户名密码端口限制仅放行 80 / 443 标准端口SSRF 防护DNS 解析后逐地址检查私网、链路本地、回环、保留段全部拦截security.ts页面渲染JavaScript 关闭、Service Worker 屏蔽、禁止下载请求限制仅 GET、单页最多 50 个资源请求、16 KB 请求体上限、40 秒总超时结果校验导航结束后再次校验最终 URL防重定向跳回内网也就是说浏览器服务的定位就是只读抓取真正的读写操作发生在边界 3 的容器内且必须显式授权。隔离边界 3容器级隔离——每个 Dot 一台独立电脑每台 Dot 通过 OpenBot 监督者获得自己的容器 独立的命名卷工作区文件与浏览器档案分开持久化只有监督者容器挂载 Docker socket应用容器和 Dot 容器都拿不到compose.computers.yml容器默认不发布主机端口控制网络在容器化部署中被设为 internal应用走服务 DNS 连接compose.computers-app.yml监督者容器执行了cap_drop: [ALL]与no-new-privileges:true加固。权限默认全关浏览器、文件、Shell 三类能力按 Dot 单独保存、默认禁用由服务端逐次校验computer-service.ts。文档也提醒容器共享宿主内核需要更强隔离可显式设置COMPUTER_RUNTIMErunscgVisor模板不替你安装、也不默认宣称更强隔离。隔离边界 4Slack 身份映射——显示名字不算数Slack 集成的身份校验在 slack-channel.ts消息必须来自显式配置的 workspace 用户白名单中的真人否则直接判为无效身份。两条原则要记住永远不要用显示名或客户端自报的 user ID 当身份证明SECURITY.md 原话错误信息经过safeFailure脱敏避免把含凭据的报错内容泄漏到 Slack 或日志。隔离边界 5网络与传输边界——回环、内部网、HTTPS本地开发只在 loopback 上跑应用 5173、浏览器服务 4311、监督者 4312均绑定 127.0.0.1浏览器服务端口不对外公开不要把 computer API 直接暴露到互联网写进了部署文档docs/COMPUTERS.md远程部署必须加认证 HTTPS容器间通过 internal 网络通信宿主端口面积极小。隔离边界 6内容信任与凭据存放——文本不是授权书最后一条边界是最容易被忽视的软边界页面文本、上传内容、模型输出都视为不可信数据不能当作提权依据所有 Space / Dot / 线程操作必须在服务端逐个授权Intelligence、模型、语音、浏览器凭据全部留在服务端永不提交.env或本地数据库研究浏览是只读的页面工具只能写本 Dot 自己 Space 里的文档且写入带版本校验revision check防止旧版本覆盖新内容语音会话使用范围受限的短期凭据其计算动作走与文字、Slack 完全相同的权限通道。部署前自检清单 ✅按顺序核对全部通过再上线☐.env含两个不同的 ≥24 位随机密钥COMPUTER_SUPERVISOR_TOKEN、COMPUTER_TOKEN另加BROWSER_SECRET、OWNER_TOKEN☐.env与本地数据库未加入版本控制☐ 浏览器服务仅监听 127.0.0.1端口未暴露公网☐ 监督者独占 Docker socket应用与 Dot 容器均无 socket☐ 三类电脑能力browser/files/shell按需开启Shell 只给必须跑命令的 Dot☐ Slack 白名单只包含真实使用者 ID☐ 用文档给定的方法做隔离验证两台电脑互不可见对方文件、重启后档案持久、禁用权限后立即失效docs/COMPUTERS.md Verify and troubleshoot 一节常见误区速查 误区正确做法让 Dot 容器直接使用主令牌坚持逐点 HMAC 派生主令牌只留在应用与监督者浏览器服务方便起见放开端口保持只读、回环、4311 不对外用 Slack 显示名识别用户使用显式 workspace/用户白名单映射把模型输出当指令执行输出只是不可信数据权限由服务端策略决定更新时顺手删掉命名卷换主令牌后监督者会保留卷重建容器日常更新勿删卷总结OpenDots 的安全设计可以浓缩成一句话钥匙按 Dot 派生、浏览器只能看、容器各过各的、身份必须显式映射、内容永远不可信、端口默认不对外。配合 SECURITY.md、docs/COMPUTERS.md 与 docs/SETUP.md 这三份官方文档这份清单足以覆盖一次标准的自托管部署审查。发现疑似漏洞请通过仓库的私有漏洞报告渠道提交不要在公开 issue 里贴凭据或复现细节。【免费下载链接】OpenDotsYour always-on AI coworkers that move between text, calls, and Slack.项目地址: https://gitcode.com/gh_mirrors/op/OpenDots创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表