Read-only AI agent CLI security audit for hidden global Skill routing, credential inheritance, bridge snapshots, and over-broad permissions.
本页把威胁模型转成可执行的工作场景。每个场景都包含触发信号、审计动作和退出条件;审计器在所有场景中都保持只读。
触发信号: vendor CLI、npm 包、桌面扩展或自更新器可能在当前项目之外安装 Skill、hook 或桥接配置。
执行:
agent-scope-guard --json --output before.json
# 安装或升级待审查的 CLI
agent-scope-guard --json --output after.json
重点核对: 新增的用户级 SKILL.md、包生命周期脚本、共享链接、Bridge 快照和权限变化。
退出条件: 每个新增全局对象都有明确负责人、作用域、关闭方式和必须全局生效的理由。
触发信号: 你要求 Codex 或其他宿主模型修改代码,但 Coze、Figma 等未被点名的平台创建了实际产物。
执行:
agent-scope-guard --fail-on high
重点核对: ROUTE-001 中的 always use、whenever、“无需显式点名”或宽泛开发触发词,并追踪 Skill 的物理路径和安装来源。
退出条件: 外部委托必须由平台名或命令前缀显式触发,普通开发继续由用户选择的宿主模型完成。
触发信号: 安装一次 CLI 后,Codex、Trae 或其他编辑器开始做出相同的路由决定。
重点核对: ROUTE-002、符号链接、Windows Junction 和中央 Skill 池。多个可见目录可能指向同一个物理来源,删除其中一个副本并不能解决问题。
退出条件: 共享传播要么被明确记录为有意控制,要么改成宿主专用、项目级配置。
触发信号: 只处理本地代码的 Agent 可以看到公众号、云服务、OAuth 或模型 API 凭据。
执行:
agent-scope-guard --json
重点核对: SECRET-001 环境变量名称、SECRET-002 Bridge 快照、SECRET-003 凭据文件权限,以及桥接进程是否仍在运行。
退出条件: 子进程只获得白名单环境;隔离完成后删除陈旧快照;凭据文件仅所有者可读;仍有效的暴露凭据完成轮换。
发现本地快照只能证明暴露面扩大,不能单独证明凭据已经远程外传。
触发信号: 请求超时或多个 Agent 并行运行后,同一业务操作产生多个远端资源。
重点核对: 谁拥有写入权、是否存在幂等键、是否自动重试,以及在结果不确定时是否先查询远端状态。
退出条件: 唯一写入者持有租约;每次写操作都有稳定 operation key;超时进入 unknown;重试前先只读核对。
触发信号: 工作站长期累积可信项目、全局指令、用户级 API 凭据、完全访问会话或免审批策略。
执行:
agent-scope-guard --json --fail-on medium
重点核对: PERM-001、PERM-002、TRUST-001、AUTO-001 和 UX-001,并比较启动时覆盖与持久配置。
退出条件: 默认仅工作区写入;外部写入需要批准;删除陈旧信任项;项目专用自动化不再放在全局。
触发信号: 标准开发镜像或受管工作站必须阻止不安全的 Agent CLI 配置交付给用户。
在 CI 或镜像验收中执行:
agent-scope-guard --json --output agent-scope-report.json --fail-on high
建议策略: 严重和高风险直接失败;保存脱敏报告;接受中风险必须有负责人和到期时间。
退出条件: 镜像中不存在环境级生产凭据、隐式 vendor 路由、活动 Bridge 快照、默认完全权限或未经审查的全局 hook。
触发信号: 新 Skill 使用自然语言触发器、安装到用户级目录,或同时面向多个宿主。
重点核对: 触发精度、用户显式意图、安装作用域、升级行为、卸载持久性、子进程环境过滤和误报测试。
退出条件: 默认项目级安装;全局安装必须选择加入;每次外部写入单独授权;升级不能静默扩大路由。
触发信号: 已经出现无法解释的外部资源、权限变化、凭据使用或路由决定。
处置顺序:
退出条件: 有效路由、凭据路径、写入者身份、远端副作用和长期预防控制均已对账。
Agent CLI Scope Guard 检查本地配置和有限运行信号,不能替代终端检测、网络遥测、云审计日志、密钥扫描、软件成分分析或外部平台访问日志。需要证明远程传输或确认外部操作归因时,应结合这些证据源。