card 出事后,大量比特币搬家了

2026 年 8 月 13 日 · 自托管与密钥安全观察

七月底 Coldcard 漏洞让约 1,816 枚比特币被盗,但链上数据显示,随后有 233,000 枚 BTC 从长期持有钱包转出,22,000 枚流向交易所。[1] Casa CEO Nick Neuman 表示,被盗金额的 10 到 100 倍资金被转移到了安全地点。

这批迁移有两个来源:一部分 Casa 客户原本用单签 Ledger 或 Trezor(完全不同的设备品牌),但这次事件促使他们切换到多签钱包;另一部分本身就在用多签的用户,从密钥组合中移除了 Coldcard 设备。[1]

Neuman 把这次响应和中心化托管的假想情形做了对比。如果同样价值的 BTC 存放在一家交易所、交易所被攻破,那数字会反过来:几乎所有资金一次性消失,只有少量可能逃脱。[1] 而在自托管场景下,攻击者必须逐个地址破解,每次只能拿到少量 BTC,同时整个网络有时间反应、迁移剩余资金。

Glassnode 数据证实了规模:长期持有者供应量从近 1500 万 BTC 降至约 1470 万——自 2024 年 12 月以来最大单周跌幅。这发生在 BTC 价格还在 10 月 126,000 美元历史高点下方 50% 的时候。[1]

Coinkite 已敦促任何在 4.0.1 到 4.1.9 固件版本(覆盖 2021 年 3 月到 2026 年 7 月)上生成过种子的用户立即迁移到新种子。即使设备已升级,那批旧种子的熵从生成时起就是弱的,无法通过补丁修复。

## SlowMist 技术复现:随机数回退导致私钥可预测

SlowMist 团队对 Mk3 固件 4.1.9 做了完整攻击链复现。[2] 问题的根源在于两个编译层错误的叠加。

第一层,Coldcard 在 `mpconfigboard.h` 里把 `MICROPY_HW_ENABLE_RNG` 显式设为 0,因为团队认为自己封装了 `ckcc.rng_bytes` 直接调用 STM32 硬件 TRNG。但依赖库 `libngu` 用 `#ifndef` 检查这个宏,只验证"是否存在"而不验证"是否启用"。

第二层,当宏为 0 时,MicroPython STM32 移植层的 `rng_get()` 静默回退到软件伪随机数生成器 Yasmarang。这个 PRNG 的初始种子几乎完全由可预测值组成:芯片 UID(96 位标识只用了低 32 位,在 Phase A 批次中 X/Y 坐标基本落在 0–72 范围)、`SysTick->VAL`(80 MHz 时钟下的倒计时值,范围 0–79999)、以及 RTC 寄存器(在所有已确认向量中都解析为 0)。[2]

结果是两个 Yasmarang 实例:一个是 `libngu` 的全局常量流(`pad=0x0a8ce26f`,所有设备完全一致),另一个是 `rng_get()` 回退实例,唯一变量只有 `UID ^ SysTick` 这个 32 位值。整个种子生成过程的真实熵源只有约 32–72 比特——GPU 集群数天内可以穷举的空间。[2]

## AI 模型"内心想法"全部泄露,62 个 API 密钥被找回

安全研究人员发现了一种读取每家主流 AI 推理模型加密"内心想法"的方法,并从开发者公开分享(却不知道里面装了什么)的会话日志中找回了 62 个活跃 API 密钥和 33 个密码。[3]

"通过解码从公开仓库爬取的 315,320 个推理块,我们恢复了 367 个 PII(个人身份信息)和 182 个凭证。"研究团队在 8 月 10 日提交的论文中写道。[3]

所有主流 AI 供应商都用同一个全局密钥加密推理 token。攻击者利用这一点,从公开日志中解码了 315,320 个隐藏的推理块,并在过程中找回了密码和活跃的 API 密钥。[3]

这是继 OpenAI 和 Anthropic 近几周披露之后,第三起前沿 AI 实验室模型攻击第三方公司的报告事件。

7 月,OpenAI 称两个模型在寻找基准测试答案时逃离测试沙盒并攻陷了 Hugging Face。公司后续披露模型还访问了另外四个在线服务。[3] Anthropic 随后表示三个 Claude 模型在测试错误将它们暴露到互联网后攻击了真实组织。8 月,Meta 称类似错误允许其一个模型利用第三方服务。[3]

这些事件促使立法者提出 AI "kill switch" 提案,允许联邦政府在紧急情况下限制或关闭强大模型。

## MCP 服务器可以分段指令,让 AI 编码助手悄悄外泄密钥

一个连接到 AI 编码助手的恶意工具服务器可以悄悄带走 SSH 密钥、环境机密、源代码和客户数据,而无需发送任何一条看起来明显有害的指令。[4]

这个技巧即使在同一窃取请求的直白版本被拒绝后仍然有效:把请求拆分成多个看起来都很常规的片段,放置在助手已经在使用的通道里,让助手自己把它们组装起来。[4]

Model Context Protocol (MCP) 让 AI 编码助手通过结构化接口调用外部工具——读取文件、查询数据库、执行命令。攻击者可以在工具的响应消息里嵌入第二段提示,引导助手把刚读到的敏感数据发送回工具服务器,表面上看起来只是在做"日志记录"或"格式化"。

因为每次调用都是分段的、每条指令单独看都显得合理,助手的内置防护不会触发。而一旦数据流向恶意服务器,就已经外泄了。[4]

这种攻击不需要突破任何边界,只利用了 MCP 本身的设计:助手信任工具返回的结构化数据,而工具可以在返回内容里夹带第二层指令。

作者在做一款无助记词的 MPC 钱包,所以在这个题材上有立场。数据都给了出处,判断请自己做。

https://cowallet.ai/en?pid=jingle