STACIO WIKI · 安全指南

Stacio 安全与治理指南

适用版本:Stacio 0.14.x
更新日期:2026-07-25
面向读者:管理生产会话、凭据、远程文件、隧道、AI/Agent 和审计策略的个人或团队

1. 安全边界

Stacio 的目标是把远程操作放进可见、可确认、可脱敏和可追踪的本地工作流,但它不是:

安全责任由本机、Stacio、远端账号、网络和组织流程共同承担。

2. 本地数据与敏感资产

2.1 数据位置

默认应用支持目录为:

~/Library/Application Support/Stacio/

当前实现中的主要数据包括:

数据 默认位置或存储 敏感性
会话、分组、主机密钥、传输历史、宏、审计 Stacio.sqlite 包含主机、用户名、路径、操作记录和环境信息。
密码、私钥口令、API Key、Token CredentialVault/ 下的本地加密凭据库 高敏感;普通列表和会话数据库只保存引用。
应用日志 Logs/stacio.log 经过脱敏,但仍可能包含时间、错误和环境上下文。
Agent Bridge agent-bridge.sock 仅供本机进程与 Stacio 通信,应限制本机账号访问。
Remote Edit 与远端预览缓存 Stacio 自建缓存目录 可能包含远端文件副本。
AI 对话历史 本机 SQLite,按终端保留最近记录 可能包含问题、回复、命令卡和结果摘要。

设置 > 安全 > 本地存储复制当前实际路径。不要根据文档硬编码路径处理用户数据。

2.2 本地凭据库

当前 Stacio 连接凭据由本地加密凭据库保存,不在设置页展示 secret 原文。使用规则:

“Stacio 本地凭据库”不等同于远端密钥托管系统。组织仍应实施凭据轮换、最小权限、离职回收和紧急吊销。

2.3 私钥

Stacio 保存私钥路径,认证时从本地文件读取私钥正文。治理要求:

3. SSH 主机身份

Stacio 在认证前探测并验证 SSH 主机密钥。首次连接必须由用户确认;已保存指纹变化时默认阻断。

3.1 地址与端口也是身份边界

Stacio 按“配置的主机字符串 + 端口”保存 SSH 主机信任。常见 IP 连接应明确记录完整端点,例如:

192.168.1.20:22
192.168.1.20:2222
server.example.com:22

这三项是独立的连接身份:同一 IP 的不同端口可能经过不同 NAT 规则或到达不同 SSH 服务;同一服务器通过 IP 与域名连接,也会产生分别的信任确认。不要复制一个端点的信任结果来跳过另一个端点的指纹核对。

直接使用 IP 可以减少 DNS 依赖,但不能消除地址复用、NAT 变更或中间人风险;使用域名便于地址迁移,但需要同时治理 DNS。无论采用哪种方式,都以独立可信渠道提供的主机指纹为判断依据。

3.2 信任流程

  1. 从云控制台、CMDB、资产管理员或独立可信通道获取预期指纹。
  2. 核对主机、端口、算法和 SHA-256 指纹。
  3. 只有确认目标真实后才接受。
  4. 把首次信任纳入资产上线或会话交付记录。

3.3 指纹变化治理

把指纹变化按安全事件处理,直到证明是授权变更:

ProxyJump 会分别验证跳板机和目标主机,不得只核对其中一端。

4. 协议与网络治理

4.1 协议选择

协议 建议
SSH/SFTP/SCP 默认首选,仍需主机密钥、强认证和最小权限。
FTP/Telnet 明文协议,仅限隔离且可信网络;应制定淘汰计划。
VNC 根据服务端安全能力决定是否通过 SSH 隧道保护。
串口 物理访问同样可能获得高权限,应控制设备、线缆和现场访问。

4.2 隧道监听

5. 命令风险与审批

5.1 风险分类

Stacio 对 AI/Agent 命令使用四类风险:

风险 示例 默认治理建议
只读 查看进程、状态、日志、配置 开发环境可自动;生产环境仍要确认目标和范围。
写入 修改文件或普通状态 必须确认,变更前备份。
网络 发起网络请求、复制、连接操作 检查目标、数据去向和授权。
危险 删除、格式化、关机、重启或明显破坏性操作 逐条人工批准,并准备恢复。

风险分类用于减少误操作,不保证任何命令绝对无副作用。只读命令也可能产生负载、读取敏感数据或触发远端工具行为。

5.2 全局策略

设置 > AI 与执行设置 > 安全提供命令确认策略:

推荐:

“全部自动”不适合作为生产默认值。

5.3 会话覆盖

会话可进一步设置:

优先级原则:拒绝规则、生产环境和更严格的会话策略可以覆盖普通全局放行。会话策略只应收紧权限,不应被当作绕过组织审批的手段。

5.4 允许和禁止模式

自动放行模式与禁止模式按命令开头、大小写不敏感匹配,并会跳过常见 sudoenv 等包装器。治理要求:

6. MultiExec 治理

MultiExec 会把输入同步到多个终端,属于高影响能力:

  1. 使用前确认完整目标列表和每个目标的环境。
  2. 至少选择两个可执行终端才进入多执行工作区。
  3. 任一生产目标都会要求显式确认。
  4. 广播期间界面保持明显状态,可单独暂停某个终端。
  5. 广播事件记录目标数、成功数、失败数和脱敏后的输入。
  6. 任务结果必须按目标报告,不能用“已发送”替代“每台均成功”。

禁止通过错误标记环境、复制生产会话为开发环境或修改本地记录绕过生产确认。

7. AI 与 Agent 治理

7.1 终端上下文

AI 请求可附带当前终端标题、目录和最近输出。发送前考虑:

API Key 只写入 Stacio 本地凭据库。导出 AI 配置或诊断时不应包含 API Key。

7.2 排查助手与本地 Agent 的差异

因此,本地 Agent 工作区不应拥有超出任务需要的本机文件权限或远端账号权限。

7.3 备份与验证门槛

对配置、部署、数据库或远端文件的变更:

  1. 每次变更新建备份,不复用上次变更的备份证明。
  2. 验证备份路径存在且内容可恢复。
  3. 变更后运行与目标对应的专项验证。
  4. 验证失败立即停止继续变更。
  5. 经批准后回滚,并再次验证恢复状态。
  6. 最终报告包含备份位置、验证结果、回滚方法和残余风险。

8. 文件与数据治理

8.1 远端文件操作

8.2 传输冲突

推荐默认使用“每次询问”。自动覆盖适合受控构建产物,不适合配置、数据库文件、客户数据或多人共同编辑的目录。

8.3 缓存清理

设置 > 文件 > 缓存维护只清除 Stacio 自建的 Remote Edit 和临时远端文件缓存,不删除会话数据库、凭据、下载目录或用户真实文件。若存在未保存编辑,清理会明确警告其将丢失。

9. 日志、审计与诊断

9.1 记录范围

Stacio 本地审计用于回答:

审计内容会脱敏,不以保存 secret 或完整业务日志为目的。

9.2 诊断导出

设置 > 安全配置:

视图 > 诊断导出前进行人工预览。自动脱敏只能降低风险,不能保证所有业务敏感信息都被识别。

9.3 反馈

帮助 > 反馈会显示拟发送的清洗后诊断信息,并要求用户同意。提交前仍要检查标题、描述和预览,不粘贴终端原文、文件内容、环境变量或凭据。

10. 数据保留与删除

建议团队定义明确期限:

数据 建议策略
保存会话 每季度审查无主、过期和重复资产。
凭据引用 与账号轮换和人员变更同步审查。
AI 对话历史 在设置中按需清除;默认本地保留最近记录。
命令历史与宏 不记录 secret;定期删除过期操作。
传输历史 按项目和数据分级保留。
Remote Edit 缓存 工作完成并确认同步后清理。
诊断包 问题关闭后按组织规定销毁或归档。

删除会话、清理缓存、删除凭据引用和清除 AI 历史是不同动作,不应相互假设。

11. License 治理

License 状态控制 MultiExec、AI Agent、堡垒机、SSH 隧道、设备看板、文件同步、ProxyJump 和批量会话导入/导出等高级能力。

12. 安全事件响应

12.1 凭据疑似泄漏

  1. 停止使用相关会话、Agent 和隧道。
  2. 在远端或身份系统吊销密码、Token、密钥或证书。
  3. 检查审计、登录日志和异常来源。
  4. 保存必要证据后清理本机凭据引用和缓存。
  5. 创建新凭据并最小化权限。
  6. 验证旧凭据不能再使用。

12.2 设备丢失或本机被入侵

  1. 远程锁定或擦除设备(如组织能力允许)。
  2. 吊销所有可能保存在该 Mac 上的远端凭据。
  3. 检查 SSH 公钥、API Key、Token、堡垒机和 License 会话。
  4. 审查远端登录和变更记录。
  5. 不把本地加密凭据库视为无需吊销的理由。

12.3 主机密钥异常

立即停止连接,按本指南第 3 节进行独立核验。若无法证明是授权轮换,升级给安全和资产负责人。

12.4 可疑 Agent 或 MultiExec 操作

  1. 暂停或取消任务。
  2. 停止相关隧道和继续广播。
  3. 保存脱敏后的请求 ID、目标、审批和执行状态。
  4. 检查远端是否发生实际变更。
  5. 使用已验证备份恢复,并运行专项验证。
  6. 收紧会话策略、全局审批和允许模式。

13. 团队治理基线

更底层的威胁与控制设计见安全威胁模型,Agent 专项说明见Agent 能力与安全保障

本文是 Stacio Wiki 中文用户文档的一部分。