Agent 技能共享威胁模型¶
状态:安全与隐私审查的实现基线。本文档不构成安全批准。
范围与信任模型¶
该模型涵盖私有技能打包、Orca Cloud 发布与授权、持久共享解析、本地和远程安装、提供商放置、更新、回滚、移除以及操作员恢复。它适用于 macOS、Linux、原生 Windows、WSL、配对的 Orca 运行时以及 SSH 目标。
私有意味着未列出:不可预测的活动共享 ID 是持有者凭证,而发布和管理仍对已认证的 Orca 用户和组织进行访问控制。V1 对 Orca Cloud 操作员不提供端到端加密。技能是来自其作者的代码:SKILL.md 可以改变 Agent 行为,打包的脚本之后可能由用户或 Agent 执行,尽管安装程序本身从不执行包内容。
受保护资产¶
- 技能内容、文件名、清单、包元数据、发布说明和作者身份。
- 组织成员资格、选定用户 ACL、持久共享标识符和包存在性。
- 签名上传策略、下载授权、身份验证 Token、数据库凭据和 GCP 服务身份。
- 现有本地技能、提供商配置、用户修改、来源信息和事务恢复状态。
- 云包元数据、不可变对象代际、审计记录以及删除状态。
- Cloud Run、Cloud SQL、GCS、已连接运行时以及本地文件系统的可用性和成本。
参与者与边界¶
参与者包括授权发布者、授权接收者、已认证但未授权的 Orca 用户、恶意技能作者、被入侵的渲染器、不可信的远程 RPC 调用方、控制网络端点的攻击者,以及具有 GCP 或数据库访问权限的操作员。
信任边界为:
- 源技能目录到所有者私有的包暂存目录。
- 桌面渲染器到主进程及其已认证的云客户端。
- Orca 客户端到配对运行时或 SSH 主机,跨越独立版本化的协议。
- Orca Cloud API 授权到短期 GCS 访问。
- GCS 隔离区到经验证的不可变发布和 PostgreSQL 元数据。
- 解压后的暂存区到规范目标路径和提供商放置位置。
- 本地诊断记录到经用户审查的支持包上传。
- Terraform 和部署身份到暂存和生产资源。
安全不变量¶
- 包身份是确定性的,并绑定规范化路径、精确字节、可执行状态以及不可变的包/版本 ID。
- 发布和安装仅接受
manifest.json加上skill/信封,并且从不执行归档内容。 - 归档验证在目标变更之前完成。
- 目标路径由拥有主机或工作区的运行时解析。
- 未拥有或已修改的本地内容绝不会被静默替换或删除。
- 最终 GCS 对象是不可变的、代际隔离的,并且只能通过新的 ACL 检查后跟短期授权来访问。
- 任何远程调用方都不能将桌面本地路径转换为远程文件系统权限。
- 中断的事务收敛到经验证的旧版本或请求版本。
- 日志和支持包排除包内容以及私有授权或文件系统数据。
- 云共享、下载和远程安装具有独立的紧急停止开关。
威胁登记册¶
| ID | 威胁 | 所需控制与当前证据 | 剩余发布门禁 |
|---|---|---|---|
| TM-01 | 源在预览后发生变化,或链接在打包期间交换字节。 | 观察特定源目录,复制时不跟随链接,重新观察暂存字节,比较每个身份,并将预览绑定到最终摘要。源漂移和链接/特殊文件测试覆盖拒绝和清理。 | 在每个受支持的文件系统上重复竞态和权限测试。 |
| TM-02 | 归档遍历、驱动器路径、链接、设备、重复路径、Unicode/大小写冲突或解压/资源耗尽逃逸出暂存区。 | 流式解析器拒绝不安全的条目类别和规范化冲突;在解析和解压期间强制实施压缩、解压、条目、文件、深度和每文件限制。边界、格式错误、校验和以及模糊测试在目标变更之前运行。 | 在发布 CI 中保持包安全测试套件为必需。 |
| TM-03 | 伪造的清单就名称、字节、可执行状态或包身份撒谎。 | 在信任条目之前解析清单,要求 skill/SKILL.md,独立哈希解压后的字节,重新计算包身份,并比较包/版本 ID 和摘要。 |
跨平台相同字节摘要证据仍然必需。 |
| ID | 威胁 | 所需控制措施与当前证据 | 剩余发布门禁 |
|---|---|---|---|
| TM-04 | 客户端选择其他主目录、工作区、WSL 发行版、SSH 路径,或逃逸目标根目录。 | 执行运行时解析主目录和工作区标识,对目录进行 realpath 检查,使用平台原生路径连接,并拒绝客户端提供的远程路径。local-file 入口仅在进程内受信任。 |
仍需进行真实 SSH 和混合版本拓扑测试。 |
| TM-05 | 安装覆盖或删除会移除无主或本地已修改的内容。 | 规划器区分缺失、未变更、干净、已修改、无主、外部链接、损坏链接和冲突状态。来源信息位于已安装内容之外。替换需要显式冲突决策;删除会重新验证所有权和摘要。 | 完成剩余的真实 junction、外部链接、副本漂移和权限矩阵。 |
| TM-06 | 在重命名或回执发布之间发生崩溃会同时丢失旧版本和新版本。 | 同一文件系统暂存、持久日志、备份、已刷新回执替换、有界恢复和所有权令牌保护每个提交边界。故障注入覆盖每个日志转换。 | 仍需进行真实进程终止和磁盘/防病毒争用测试。 |
| TM-07 | 授权可能通过重定向、userinfo、不安全协议、DNS/主机混淆或超大流泄露。 | 云请求拒绝重定向。软件包下载要求已配置的源和 HTTPS,拒绝 URL 凭据和跨源重定向,限制重定向次数,重新检查过期时间,流式传输精确的预期字节数,并验证归档/软件包摘要。 | 验证已批准的生产源,并在预发环境中演练恶意网络场景。 |
| TM-08 | 重用上传 ID、错误租户、错误密钥、过期 generation 或隔离对象会发布攻击者选择的字节。 | 随机租户绑定上传行、签名 POST 条件、过期时间、精确的元数据/密钥/类型/大小验证、generation 围栏读取、流式验证和幂等最终化均失败关闭。 | 预发 GCS 集成必须覆盖过期 generation 和生命周期删除。 |
| TM-09 | IDOR、过期的组织成员身份或猜测的标识符会暴露软件包管理数据或受 bearer 保护的内容。 | 管理请求进行身份验证并重新评估当前所有权。接收方预览和授权要求精确的不可预测、处于活动状态的 bearer 共享 ID,并忽略旧版 ACL 行。未找到响应隐藏未授权的存在性。 | 仍需进行人工授权审查和组织离职策略审批。 |
| TM-10 | 内容寻址去重会通过响应形状或时序泄露其他租户的软件包。 | 租户范围 API 从不暴露 GCS 密钥、generation 或对象是否已存在;重用现有对象会验证归档和逻辑软件包身份。跨租户测试证明相同归档使用独立的租户哈希对象,且响应形状不泄露重用。 | 在发布 CI 中保持租户隔离和响应泄露覆盖为必需项。 |
| TM-11 | 被攻陷的渲染器、旧客户端或任意 RPC 调用方会向主机发送凭据、本地路径、未知操作码或不支持的操作。 | 主进程拥有身份验证令牌和授权;远程请求使用严格模式和能力;软件包传输与安装分离;未添加流操作码;混合版本以需要更新的结果失败。 | 仍需进行真实客户端较新/服务器较新以及 SSH 对等门禁。 |
| TM-12 | 传输重放、重叠、断开连接或废弃暂存会消耗磁盘或提交不同字节。 | 会话数、空闲时间、总字节数和块大小均受限。偏移量单调递增,相同重试幂等,变更重放失败,提交对精确的暂存文件进行哈希,取消/断开清理有界。 | 在每个传输边界演练离线 GCS 和真实断开连接。 |
| ID | 威胁 | 所需控制措施及当前证据 | 剩余发布门禁 |
|---|---|---|---|
| TM-13 | 提供商别名或联接逃逸出规范存储,或指向外部内容。 | POSIX 别名相对于真实父目录,Windows 联接使用绝对规范目标,目标会重新验证,无主/损坏/外部链接被视为冲突。复制回退独立哈希并由回执拥有。真实 Windows 和 WSL 覆盖包括现有、损坏、外部、拒绝和漂移的放置行为。 | 在发布覆盖中保留物理放置矩阵。 |
| TM-14 | Skill 指令或脚本被误认为受信任的 Orca 代码,或在安装期间执行。 | 共享/安装预览会标识作者、组织、脚本、可执行文件、摘要和版本。安装从不运行脚本。信任文案说明该包来自其作者的代码。 | 安全和设计必须批准最终信任措辞和可访问性行为。 |
| TM-15 | 遥测、日志或支持包泄露指令、文件名、路径、ACL、授权、策略或凭据。 | 桌面安装诊断在跟踪前将值映射到有限类别。已部署的预发布日志仅包含路由模板和有限请求元数据,并且日志排除项会移除 bearer URL。支持包测试注入私有金丝雀,并证明它们不存在于收集的输出中。 | 为未来更改保留已部署日志和支持包隐私检查。 |
| TM-16 | 宽松的预发布权限会将包字节暴露给另一个本地用户。 | 包归档、下载、提取、中继上传、锁、日志文件和回执在 POSIX 上使用所有者私有模式;Windows 使用所有者配置文件路径和继承 ACL。现有 POSIX 下载根目录在使用前会收紧。真实 Windows、WSL、Ubuntu 基线和 SSH 验证已通过。 | 在所有受支持的主机上保留所有者私有预发布检查。 |
| TM-17 | 删除、撤销、保留或用户离职会留下未授权授权或不可恢复的元数据/对象分歧。 | 撤销会立即阻止新授权;现有授权在五分钟内过期。数据库引用控制最终删除,隔离生命周期清理废弃项,GCS 软删除提供恢复。本地安装保持独立。 | 批准离职/法律保留策略,并演练协调的数据库/GCS 恢复。 |
| TM-18 | 宽泛的 IAM、公共存储桶访问、服务账号密钥或受损的部署身份会绕过应用授权。 | 统一存储桶访问、公共访问预防、存储桶范围的对象访问、服务账号范围的签名、仅限 skill-secret 访问、Cloud SQL 客户端角色、无桌面 IAM 以及无长期密钥均由 Terraform 定义。 | 审查预发布和生产计划,并在发布前验证实时 IAM。 |
| TM-19 | 无限制的验证或请求并发会导致内存、CPU、数据库、存储或出口拒绝服务。 | 固定流式缓冲区、包限制、每实例完成信号量、速率/配额限制、有界传输会话、Cloud Run 实例限制、生命周期清理和独立紧急停止开关约束工作负载。 | 完成负载测试、仪表盘、告警和预算阈值。 |
| TM-20 | 操作员恢复、诊断或法律工作流会绕过租户隔离或泄露内容。 | 运行手册要求特定代际恢复、协调的 PostgreSQL/GCS 恢复、经过审计的生命周期操作,以及常规日志中不包含包内容。 | 安全/隐私批准和受限的破窗流程仍然必需。 |
所需审查证据¶
安全与隐私批准不得仅依赖本文档。审查人员需要:
- 包/准入模式以及稳定的失败类别。
- 归档解析器、提取隔离、事务、来源和移除测试。
- 云授权、对象代际、租户隔离、删除和恢复测试。
- Terraform 计划以及实时预发布环境的 IAM、存储桶、Cloud Run、Secret Manager 和 Cloud SQL 证据。
- 真实 macOS、Linux 基线、Windows、WSL、配对运行时、混合版本和 SSH 结果。
- 已捕获的预发布日志、指标、跟踪和支持包,其中植入的私有金丝雀不存在。
- 负载测试结果以及独立测试的上传、下载和远程安装紧急停止开关。
审批负责人在本实施文档之外记录发现的问题以及已接受的剩余风险。 在这些问题得到解决或明确接受之前,外部发布门禁保持关闭状态。
本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 orca48/orca