安全决策报告

zappi

纯文档型技能,核心功能依赖外部下载的 sign.mjs 脚本,存在供应链风险和文档-执行分离

安装决策优先 来源: ClawHub 扫描时间: 23 天前
文件 2
IOC 6
越权项 0
发现 2

为什么得出这个结论

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 Markdown · 43 行
核心功能依赖外部动态下载的可执行脚本 · 文档描述与实际执行代码分离 · 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 Markdown · 55 行
https://clawhub.ai/user/edogbeatz · https://clawhub.ai/edogbeatz/skills/zappi

安全亮点

设计理念合理:prepaid pot 而非 full wallet,避免资金外泄
明确声明 Do not POST seed to Zappi
文档清晰说明了风险和缓解措施
无本地恶意代码,包内仅包含文档