安全决策报告
zappi
纯文档型技能,核心功能依赖外部下载的 sign.mjs 脚本,存在供应链风险和文档-执行分离
为什么得出这个结论
0/4 个维度触发 通过
声明与实际能力
声明资源与推断能力基本一致。
复核
隐藏执行与外联
提取到 6 个一般风险产物,需要结合上下文判断。
通过
攻击链与高危发现
没有形成明确的恶意路径。
复核
依赖与供应链卫生
没有完整依赖信息,供应链判断需要保留弹性。
风险分是怎么被拉高的
供应链风险 - 外部脚本下载 +20
sign.mjs 从 pot.zappi.money 动态下载,代码未包含在包内,用户无法在执行前验证
文档-执行分离 +10
SKILL.md 描述的是文档,但实际执行的是外部 sign.mjs,两者存在语义鸿沟
无代码签名/哈希验证 +5
下载的脚本无版本锁定或完整性校验
最关键的证据
中危 供应链
核心功能依赖外部动态下载的可执行脚本
此包不包含任何可执行代码。sign.mjs 作为核心签名组件从 https://pot.zappi.money/sign.mjs 动态下载,用户无法在执行前验证代码安全性。
SKILL.md:19 建议使用本地副本或添加 SRI (Subresource Integrity) 哈希验证
低危 文档欺骗
文档描述与实际执行代码分离
SKILL.md 只包含操作指南,真正的签名逻辑在外部 sign.mjs 中。用户阅读 SKILL.md 无法了解实际执行的代码行为。
SKILL.md:1 考虑将 sign.mjs 核心代码纳入包内或提供源码托管地址供审查
声明能力 vs 实际能力
文件系统 通过
声明 WRITE
→ 推断 WRITE
SKILL.md:24 创建本地密钥文件 pot-ONCE.txt 网络访问 通过
声明 READ
→ 推断 READ
SKILL.md:11,19,20 下载外部资源 命令执行 通过
声明 WRITE
→ 推断 WRITE
SKILL.md:13 执行 node sign.mjs 命令 可疑产物与外联
中危 外部 URL
https://pot.zappi.money/skill.json SKILL.md:11
中危 外部 URL
https://pot.zappi.money/sign.mjs SKILL.md:19
中危 外部 URL
https://pot.zappi.money/SKILL.md SKILL.md:20
中危 外部 URL
https://pot.zappi.money/deposit?sparkAddress=spark1...&sourceChain=base&sourceAsset=USDC SKILL.md:30
中危 外部 URL
https://clawhub.ai/user/edogbeatz skill-card.md:9
中危 外部 URL
https://clawhub.ai/edogbeatz/skills/zappi skill-card.md:35
依赖与供应链
没有结构化依赖告警。
文件构成
2 个文件 · 98 行
Markdown 2 个文件 · 98 行
需关注文件 · 2
SKILL.md 核心功能依赖外部动态下载的可执行脚本 · 文档描述与实际执行代码分离 · https://pot.zappi.money/skill.json · https://pot.zappi.money/sign.mjs · https://pot.zappi.money/SKILL.md · https://pot.zappi.money/deposit?sparkAddress=spark1...&sourceChain=base&sourceAsset=USDC
skill-card.md https://clawhub.ai/user/edogbeatz · https://clawhub.ai/edogbeatz/skills/zappi
安全亮点
设计理念合理:prepaid pot 而非 full wallet,避免资金外泄
明确声明 Do not POST seed to Zappi
文档清晰说明了风险和缓解措施
无本地恶意代码,包内仅包含文档