安全决策报告

bankbid-daily-free

功能正常的商业 API 客户端,收集设备指纹和存储凭证属于正常运营需要,但文档对写入凭证和上报原始设备信息的描述不够透明。

安装决策优先 来源: ClawHub 扫描时间: 2026/9/19
文件 4
IOC 2
越权项 1
发现 3

为什么得出这个结论

1/4 个维度触发
阻止
声明与实际能力

发现 1 项声明之外的能力或越权行为。

复核
隐藏执行与外联

提取到 2 个一般风险产物,需要结合上下文判断。

通过
攻击链与高危发现

没有形成明确的恶意路径。

复核
依赖与供应链卫生

没有完整依赖信息,供应链判断需要保留弹性。

风险分是怎么被拉高的

凭证写入未充分声明 +10

SKILL.md 说明读取凭证但未明确告知会自动创建 ~/.bankbid/credentials.json

设备指纹上报原始值 +8

代码上报 hostname/username/home 等原始字段,虽有降级处理说明但透明度不足

外部服务依赖 +4

依赖外部商业服务 www.tokendidi.cn,无恶意行为但构成供应链风险

最关键的证据

中危 文档欺骗

凭证写入操作未在文档中明确声明

SKILL.md 只说明「读取本地凭证 ~/.bankbid/credentials.json」,未告知首次调用时会自动创建该文件保存 account_key。代码实现了自动写入但文档未声明。

scripts/run.mjs:98
在 SKILL.md 的「用法 B:Node 薄客户端」部分补充说明:首次成功调用后会自动将 account_key 写入 ~/.bankbid/credentials.json
低危 敏感访问

设备指纹包含主机标识信息

代码读取 /etc/machine-id、hostname、username、homedir 等系统标识并上报给外部服务端,虽说明「哈希由服务端加盐算」但上报的是原始值。

scripts/run.mjs:17
考虑在客户端本地计算哈希后再上报,或在文档中明确告知会上报哪些原始标识信息
低危 供应链

依赖外部商业服务

技能核心功能依赖外部服务端 www.tokendidi.cn,服务可用性和数据安全由第三方保障。

SKILL.md:26
了解服务商的隐私政策和服务条款;如对数据处理有疑虑,优先使用 curl 方式手动控制请求

声明能力 vs 实际能力

文件系统 阻止
声明 READ
→
推断 WRITE
scripts/run.mjs:98-100 - 自动创建 ~/.bankbid/credentials.json
网络访问 通过
声明 READ
→
推断 READ+WRITE
POST 到外部 API 并接收响应,属声明范围内的网络调用
命令执行 通过
声明 WRITE
→
推断 READ
仅用于读取系统信息(macOS ioreg/Windows reg),无危险命令执行

可疑产物与外联

中危 外部 URL
https://www.tokendidi.cn/api/bankbid/api/v1/bankbid-daily

README.md:26

中危 外部 URL
https://skillpay.alipay.com/buildguide.md

README.md:89

依赖与供应链

没有结构化依赖告警。

文件构成

4 个文件 · 372 行
Markdown 2 个文件 · 232 行JavaScript 1 个文件 · 134 行JSON 1 个文件 · 6 行
需关注文件 · 3
README.md Markdown · 116 行
https://www.tokendidi.cn/api/bankbid/api/v1/bankbid-daily · https://skillpay.alipay.com/buildguide.md
SKILL.md Markdown · 116 行
依赖外部商业服务
scripts/run.mjs JavaScript · 134 行
凭证写入操作未在文档中明确声明 · 设备指纹包含主机标识信息
其他文件 · sample.json

安全亮点

代码结构清晰,无混淆或隐藏执行逻辑
错误处理完善(网络失败、402 额度耗尽等场景均有处理)
凭证只存储在本地,不会上传到其他位置
容器场景有降级处理逻辑,防止基础镜像 machine-id 导致误判
明确禁止在文件中硬编码 API Key