一个伪造的 Polymarket Skill 窃取了 Solana 钱包:bob-p2p 攻击事件深度分析
一个伪装成去中心化 API 市场的 ClawHub Skill,诱骗 AI Agent 以明文存储钱包私钥并购买毫无价值的代币。以下是其完整攻击手法。
概要
- 威胁行为者
26medias在 ClawHub 发布了 bob-p2p-beta,声称是一个去中心化 API 市场 - 该 Skill 指示 AI Agent 以明文存储 Solana 钱包私钥
- 它引导 Agent 在 pump.fun 上购买毫无价值的
$BOB代币 - 所有支付均通过攻击者控制的聚合器基础设施进行路由
- 链上分析确认:聚合器钱包由 $BOB 代币创建者直接注资
布局:两个 Skill,一个攻击者
攻击者在同一个 ClawHub 账号下发布了两个 Skill。第一个是 runware,一个看起来合法的图片生成工具 — 用作信誉锚点。它按描述正常工作,通过 API 生成图片,没有任何恶意行为。
第二个 Skill bob-p2p-beta 紧随其后发布,自我描述为:
# bob-p2p-beta
A decentralized peer-to-peer API marketplace. Buy and sell API access using SOL tokens.
专业的 README、清晰的文档、一个 NPM 包。对于用户 — 或者 AI Agent — 来说,它看起来完全合法。
攻击手法:该 Skill 的真实行为
第一步:明文存储私钥
该 Skill 的 SKILL.md 中包含指令,告诉 AI Agent 将用户的 Solana 钱包私钥存储在本地配置文件中 — 以明文形式。没有加密,没有 Keychain 集成,只是原始的私钥字节存放在一个 JSON 文件中。
// ~/.bob-p2p/config.json
{
"wallet_private_key": "5Kd3...your_actual_private_key...",
"rpc_endpoint": "https://api.mainnet-beta.solana.com"
}
第二步:强制购买代币
钱包配置完成后,该 Skill 指示 Agent 在 pump.fun 上购买 $BOB 代币,声称是"市场所需的抵押品"。该代币毫无实际用途。Birdeye 的风险评估将其标记为 100% 诈骗/跑路概率。
第三步:攻击者控制的支付路由
所有 API 支付均通过攻击者控制的"聚合器"钱包进行路由。链上取证确认:
- 聚合器钱包直接从 $BOB 代币创建者钱包收到了 0.25 SOL 转账
- 两个钱包的交易模式一致,符合单一实体控制的特征
- 不存在任何合法的市场基础设施 — 所谓的"API 市场"完全是虚构的
为什么这个攻击能成功
这次攻击堪称利用 Agent 原生信任链的教科书案例:
用户信任 Agent → Agent 信任 Skill → Skill 说"存储你的私钥"
结果:用户私钥以明文存储,资金被盗
用户从未直接接触恶意指令。AI Agent 读取了 SKILL.md,将其解读为合法的配置需求,并作为正常的配置步骤呈现给用户。
IOC(失陷指标)
| 类型 | 值 |
|---|---|
| ClawHub 作者 | 26medias |
| Skill 名称 | bob-p2p-beta |
| 诈骗代币 | $BOB on pump.fun |
| 信誉锚点 | runware(图片生成 Skill) |
ClawSafety 能检测到什么
- CS-SEC-001:SKILL.md 指令中的私钥存储模式
- CS-CFG-004:引导 Agent 处理凭证的提示注入模式
- CS-PRM-001:一个"API 市场"Skill 请求钱包/金融权限
- AI 分析:意图不匹配 — Skill 声称是 API 市场,但主要行为涉及钱包密钥管理和代币购买
经验教训
- 永远不要信任索要私钥的 Skill。任何合法 Skill 都不需要你的钱包私钥明文。
- 信誉锚点是真实存在的攻击手段。攻击者先发布无害的 Skill 建立信任,然后再部署恶意载荷。
- 链上取证至关重要。聚合器与代币创建者之间的钱包关联是关键证据。
- AI Agent 需要金融安全护栏。Agent 不应在没有明确的带外用户确认的情况下发起代币购买。