| name | Agent Hook与子Agent安全测试 |
| description | 测试Agent的Hook、子Agent、任务Agent与工作流扩展点的安全边界。 适用于评估项目级Hook、用户级Hook、子Agent提示文件、工具权限继承、 输入传递、审批绕过与持久化执行风险。
|
Agent Hook与子Agent安全测试
本skill聚焦Agent生态里最容易被当成正常自动化、实际却最接近执行边界的那一层:Hook与子Agent。
它们的特点是:
- 看起来像配置,实际上可能直接决定执行
- 看起来像辅助提示,实际上可能改变工具权限和行为
- 看起来像团队协作文件,实际上可能被项目级内容劫持
什么时候用
- 目标产品支持会话级Hook、启动事件Hook、提示提交Hook或工具调用Hook
- 目标产品支持子Agent、项目级子Agent、工作区子Agent、任务型子Agent
- 工作区中存在
.claude/agents/、Hook脚本、规则文件、工作流脚本
- 想验证提示词注入或配置投毒能否升级为稳定执行或稳定防护绕过
核心问题
- Hook是在哪个事件点触发的
- Hook命令来自哪里,参数来自哪里
- 子Agent定义是否可项目级下发
- 子Agent是否继承父Agent工具权限
- Hook与子Agent修改后,是否会立即生效,还是需要重启或复核
交互层级
| 层级 | 典型场景 |
|---|
| Tier 1 | 打开项目或开始会话即自动触发Hook或子Agent加载 |
| Tier 2 | 用户正常发起一次任务,系统自动把任务分派给子Agent |
| Tier 3 | 用户需要先批准某个Hook、工具或Agent |
| Tier 4 | 用户已信任项目且要执行特定命令或切换模式 |
推荐流程
-
先枚举事件点。
看看支持哪些Hook事件,例如会话启动、用户提示提交、工具调用前 / 后、停止。
-
再枚举定义来源。
分清:
- 用户级Hook
- 项目级Hook
- 企业策略级Hook
- 项目级子Agent
- 用户级子Agent
-
测权限继承。
子Agent拿到的是:
- 父Agent完整权限
- 限缩权限
- 独立权限
- 额外放大权限
-
测输入拼接。
看Hook stdin、环境变量、参数内容、task描述、文件路径是否能影响执行。
-
测变更生效时机。
修改Hook或子Agent定义后,当前会话是否立即受影响,还是只影响下一次会话。
重点测试主题
1. Hook自动执行
- 会话开始时是否自动运行
- 工具调用前后是否自动运行
- 用户提交提示词前是否可插入额外逻辑
- Hook脚本工作目录、环境变量、PATH来源是什么
2. 子Agent定义与权限继承
- 项目级子Agent是否可随仓库分发
- 子Agentfrontmatter里是否能声明额外工具权限
- 子Agent是否会在父Agent不显眼的情况下接管任务
- 子Agent调用链是否在UI里足够可见
3. Hook与提示词注入链
- 工作区内容能否诱导主Agent创建或修改Hook
- 工作区内容能否诱导主Agent创建或修改子Agent文件
- 新建后的Hook或子Agent是否在后续会话自动生效
4. 审批与快照
- Hook配置是启动时快照,还是实时读取
- 当前会话外部改动Hook后会不会立即影响
- 已批准的Hook脚本换内容后是否继续沿用
与其他skill的衔接
- 涉及project配置与trust:转
Agent工作区信任与审批测试
- 涉及项目级配置写入:转
提示词注入攻击链测试
- 涉及Hook落地执行:转
AI-IDE代码执行面测试
- 涉及命令批准或参数绕过:转
终端过滤绕过测试
- 涉及整体持久化链:转
AI-IDE攻击链编排
输出时至少要写清
- 哪个Hook或子Agent点能被控制
- 定义文件位于哪里
- 何时生效
- 继承了什么权限
- 能否跨会话持久化
可优先参考的资料
references/hook-event-matrix.md
references/subagent-load-paths.md
references/public-patterns.md