安全决策报告

rustok-wallet-tui

合法以太坊钱包工具,但存在文档-行为差异:安装脚本绕过审计、cosign验证非强制、外部Docker镜像不可审计

安装决策优先 来源: ClawHub 扫描时间: 29 天前
文件 3
IOC 5
越权项 0
发现 4

为什么得出这个结论

0/4 个维度触发
通过
声明与实际能力

声明资源与推断能力基本一致。

复核
隐藏执行与外联

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

通过
攻击链与高危发现

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

通过
依赖与供应链卫生

依赖结构存在,但暂未看到明显高危告警。

风险分是怎么被拉高的

用户运行curl|sh安装 +15

文档推荐但未强制要求先审查脚本

cosign验证非强制 +10

文档明确说明cosign缺失时跳过验证继续安装

外部不可审计Docker镜像 +15

实际钱包逻辑在ghcr.io镜像中,skill本身无代码可审计

credential相关风险 +5

keyring密码/seed phrase若在agent会话处理有泄露风险

最关键的证据

中危 供应链

cosign验证可选导致供应链完整性未保障

文档明确表示cosign缺失或验证失败时安装继续而非中止,仅拉取摘要匹配镜像。这绕过了软件供应链安全最佳实践。

SKILL.md:42
要求cosign验证作为安装前置条件,或明确告知用户跳过验证的安全后果
中危 文档欺骗

远程脚本执行行为

文档建议用户运行curl|sh执行安装脚本,虽强调先审查但实际流程鼓励直接管道执行。用户可能跳过审查步骤。

SKILL.md:38
提供校验和验证选项,或强制要求下载后审查的流程
中危 供应链

外部Docker镜像不可审计

skill本身无代码实现,实际钱包逻辑在ghcr.io/rustok-org/rustok-wallet-tui镜像中。镜像内容无法通过本地代码审查验证。

SKILL.md:56
考虑开源钱包核心代码,或提供镜像构建可重现性证明
低危 敏感访问

keyring密码传递机制文档

文档描述了podman secret和docker _FILE传递机制,但未明确说明在agent无shell访问权限时如何保证安全。

SKILL.md:74
在文档中明确agent权限约束,确保keyring密码传递路径与agent权限隔离

声明能力 vs 实际能力

文件系统 通过
声明 NONE
推断 WRITE
通过Docker volume挂载进行,文档明确警告不通过agent处理敏感凭证
网络访问 通过
声明 READ
推断 READ
Ethereum RPC通信,文档声明一致
命令执行 通过
声明 NONE
推断 WRITE
用户主动执行安装命令,非agent自动执行

可疑产物与外联

中危 外部 URL
https://your-rpc

SKILL.md:185

中危 钱包地址
0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48

SKILL.md:299

中危 钱包地址
0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913

SKILL.md:300

中危 外部 URL
https://clawhub.ai/user/rustok

skill-card.md:9

中危 外部 URL
https://clawhub.ai/rustok/skills/wallet

skill-card.md:39

依赖与供应链

包名版本来源漏洞备注
ghcr.io/rustok-org/rustok-wallet-tui v0.9.8 GitHub Container Registry 外部镜像内容不可审计
cosign 3+ external 可选依赖,缺失时不中止安装

文件构成

3 个文件 · 435 行
Markdown 2 个文件 · 413 行JSON 1 个文件 · 22 行
需关注文件 · 2
SKILL.md Markdown · 353 行
cosign验证可选导致供应链完整性未保障 · 远程脚本执行行为 · 外部Docker镜像不可审计 · keyring密码传递机制文档 · https://your-rpc · 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 · 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913
skill-card.md Markdown · 60 行
https://clawhub.ai/user/rustok · https://clawhub.ai/rustok/skills/wallet
其他文件 · claw.json

安全亮点

文档清晰说明安全边界和保护机制
sign_message被明确拒绝而非仅gated
资金转移需要独立控制台审批
Autonomous模式需人类确认
完整的安全警告和免责声明
使用摘要固定镜像而非tag确保内容一致性
工具capability分层设计合理