安全决策报告
agent-runtime
Agent Runtime 框架代码本身无恶意行为,但存在文档-行为不一致(未声明的内置工具)属于轻微阴影功能,以及权限控制在 SKILL.md 中被强调但实现为直接允许(简化版)。
为什么得出这个结论
1/4 个维度触发 阻止
声明与实际能力
发现 3 项声明之外的能力或越权行为。
通过
隐藏执行与外联
当前没有明显的高危外联或执行信号。
通过
攻击链与高危发现
没有形成明确的恶意路径。
复核
依赖与供应链卫生
没有完整依赖信息,供应链判断需要保留弹性。
风险分是怎么被拉高的
文档-行为差异 +15
SKILL.md 完全未声明内置工具(read_file/bash/search/todo),但代码中实现并注册
权限控制名不副实 +10
SKILL.md 强调'权限控制',但 SimpleHookRunner 实现直接允许(allowed:true, denied:false),无实际拦截
bash 工具权限宽松 +5
内置 bash 工具 permission='danger' 但 SKILL.md 未声明其存在,存在潜在的权限提升风险
最关键的证据
中危 文档欺骗
内置工具未在文档中声明
代码内置了 read_file、bash、search、todo 四个工具,且注册到运行时供用户调用,但 SKILL.md 完全没有提及这些工具的存在,仅描述了框架架构。
scripts/agent-runtime.mjs:137 在 SKILL.md 的工具列表或 allowed-tools 部分明确列出内置工具及其用途和权限级别。
中危 权限提升
权限控制实现为空壳
SKILL.md 强调'权限级别控制'、'权限控制'为核心功能,但 SimpleHookRunner 的 runPreToolUse 和 runPostToolUse 均直接返回 { allowed: true, denied: false },没有任何实际拦截逻辑。
scripts/agent-runtime.mjs:94 实现真实的权限检查逻辑,参照 SKILL.md 中声明的 PermissionLevel (READ/WRITE/DANGER/ADMIN) 进行工具过滤。
低危 权限提升
bash 工具未声明且权限较高
bash 工具 permission='danger'、shell:true,允许执行任意 shell 命令,且未在 SKILL.md 声明,存在潜在权限提升风险。
scripts/agent-runtime.mjs:153 如非必需,移除内置 bash 工具;如需保留,应在文档中明确声明并限制 agentTypes 范围。
声明能力 vs 实际能力
文件系统 阻止
声明 NONE
→ 推断 READ
scripts/agent-runtime.mjs:143 内置 read_file 工具调用 fs.readFileSync 命令执行 阻止
声明 NONE
→ 推断 WRITE
scripts/agent-runtime.mjs:157 内置 bash 工具使用 spawn('cmd', ['/C', command], {shell:true}) 技能调用 阻止
声明 NONE
→ 推断 WRITE
scripts/agent-runtime.mjs:155 动态 import('child_process') 可疑产物与外联
没有提取到明显 IOC。
依赖与供应链
没有结构化依赖告警。
文件构成
2 个文件 · 610 行
JavaScript 1 个文件 · 508 行Markdown 1 个文件 · 102 行
需关注文件 · 1
scripts/agent-runtime.mjs 内置工具未在文档中声明 · 权限控制实现为空壳 · bash 工具未声明且权限较高
其他文件 · SKILL.md
安全亮点
代码本身无恶意行为(无数据外泄、无凭证收割、无反向shell、无持久化)
框架架构清晰,有合理的组件分离(Registry/Hook/Compactor/Tracker)
无外部网络请求,无敏感路径硬编码
Usage Tracker 和 Session Compactor 实现合理