安全决策报告
fin-advisor
脚本存在未声明的网络访问和环境变量读取操作,但未发现明显的凭证收割或数据外泄行为,属于边界可疑技能。
最直接的威胁证据
为什么得出这个结论
1/4 个维度触发 阻止
声明与实际能力
发现 1 项声明之外的能力或越权行为。
通过
隐藏执行与外联
当前没有明显的高危外联或执行信号。
通过
攻击链与高危发现
没有形成明确的恶意路径。
复核
依赖与供应链卫生
没有完整依赖信息,供应链判断需要保留弹性。
风险分是怎么被拉高的
未声明的网络访问 +15
SKILL.md 未声明网络访问能力,但 scripts/slot-filling.sh 使用 curl 向外部服务发送 HTTP POST 请求
环境变量读取 +10
脚本读取 SLOT_SERVICE_TOKEN 等环境变量,虽未外泄但未在文档说明
边界行为 +10
脚本行为超出声明范围:向外部服务传输 query 数据并接收实体数据
最关键的证据
中危 文档欺骗
未声明的网络访问能力
scripts/slot-filling.sh 使用 curl 向 SLOT_SERVICE_URL 发送 HTTP POST 请求,但 SKILL.md 的 allowed-tools 仅声明 Bash(mcporter:*) 和 Read(*.md),未声明网络访问能力。
scripts/slot-filling.sh:63 在 SKILL.md 的 allowed-tools 中添加网络访问声明,说明 slot-filling 服务的调用目的和数据用途
低危 敏感访问
环境变量读取未在文档说明
脚本读取 SLOT_SERVICE_TOKEN 等多个环境变量用于外部服务认证,虽未外泄凭证,但 SKILL.md 未说明需要哪些环境变量。
scripts/slot-filling.sh:16 在文档中说明必需的环境变量,或将敏感配置移至非脚本位置
低危 供应链
外部服务依赖未声明
脚本依赖外部 slot-filling 服务获取实体数据,但未在文档中说明该外部依赖的存在和用途。
scripts/slot-filling.sh:50 在 SKILL.md 中说明外部服务依赖,建议添加 mock 模式作为回退方案(已实现但默认关闭)
声明能力 vs 实际能力
命令执行 通过
声明 WRITE
→ 推断 WRITE
SKILL.md:3 scripts/slot-filling.sh:63-71 文件系统 通过
声明 READ
→ 推断 READ
SKILL.md:3 仅限 *.md 文件 网络访问 阻止
声明 NONE
→ 推断 READ
scripts/slot-filling.sh:63-71 curl POST 到外部服务 可疑产物与外联
没有提取到明显 IOC。
依赖与供应链
没有结构化依赖告警。
文件构成
9 个文件 · 678 行
Markdown 8 个文件 · 552 行Shell 1 个文件 · 126 行
需关注文件 · 1
scripts/slot-filling.sh 未声明的网络访问能力 · 环境变量读取未在文档说明 · 外部服务依赖未声明
其他文件 · SKILL.md · tool-guide.md · domain-knowledge.md · output-guide.md · compliance.md · friendly.md +2
安全亮点
脚本包含完善的错误处理机制,失败时优雅降级返回原始工具列表
实现了 MOCK_MODE 支持,可在测试环境避免真实网络调用
响应数据经过 JSON 校验,非有效响应不处理
没有代码混淆或可疑的动态执行
合规文档完善,包含投资建议的红线和正确表达方式