该事件在7月30日之后为人所知,当时从大约500个单签名比特币地址转出了约594个 $BTC,当时价值约3800万美元。当消息首次出现时,Bitcoin.com News指出,这些转账发生在大约25分钟内,并且似乎是发送给了具有共同技术漏洞的钱包。
随后的区块链分析得以评估此次盗窃的可能规模。研究人员估计,在大约41分钟的时间段内,可能有1,082至1,196个地址受到影响。随后,一个名为Coldcard Sweep Watch的专用监控面板估计总金额为1,128.4717个 $BTC,在比特币交易价格约为63,044美元时,价值约7110万美元。

大部分资金集中在一个地址上,该地址存储着数百个比特币,并且其中很大一部分资金几乎未被动用。受影响地址有一个关键的共同点:它们的恢复种子短语都是在由加拿大公司Coinkite生产的Coldcard硬件钱包上创建的。
种子短语是一个控制对加密货币钱包访问权限的单词列表。任何能够恢复或获取该种子短语的人,通常都无需物理设备即可转走钱包中的资金。
Coldcard发现其随机数生成系统中的漏洞
Coinkite发布紧急警告称,在Coldcard设备上生成的一些种子可能存在漏洞。版本号为4.0.1(大约于2021年3月发布)及更高版本的Mk3设备被列为风险最高的设备之一。
进一步的分析扩大了担忧的范围,将某些Mk4、Mk5和Q设备在Coinkite发布紧急固件补丁之前创建的种子也包括在内。据报道,Tapsigner、Opendime和Satscard产品未受此漏洞影响,因为它们使用了不同的软件。
该漏洞与随机数据生成过程有关。钱包的安全性依赖于高质量的随机性,使其恢复种子无法被猜中。研究人员估计,在最受影响的Mk3设备上,种子可能仅包含大约40位的有效随机性,而非设计的128位。
这种差异至关重要。正确生成的128位种子被认为几乎无法通过暴力破解猜中。40位种子提供的可能性要少得多,这使得拥有足够计算能力的攻击者可以离线测试潜在的种子,并将生成的地址与比特币公共区块链进行比对。
一些较新的设备可能提供了大约72位的有效随机性,因为其安全硬件增加了另一层不可预测的数据。这会使得恢复种子更加困难,但它们仍然比预想的要脆弱得多。
一个配置错误持续了5年
问题始于构建阶段的一个配置错误,涉及两个执行类似任务的软件功能。一个功能使用设备的硬件真随机数生成器,而另一个则依赖于从MicroPython继承下来的较弱的软件过程。
Coinkite本意是要禁用MicroPython选项。然而,软件检查仅验证了配置标志的定义是否存在,而未检查其值是否设置为零。因此,最终固件可能在不知不觉中选择了较弱的功能。
由于两个功能具有相同的格式,软件继续编译和运行,没有出现明显的错误。这个错误是在2021年软件迁移期间潜入代码的,并在公开的固件中存在了五年多。
目前更新设备并不会增强使用有缺陷软件生成的种子。受影响的用户必须使用已修复的固件或其他安全设备创建全新的种子,然后将资金转移到由这个新种子控制的地址。

在创建种子时添加了至少50次独立掷骰子的用户,可能提供了足够的随机性水平来避免此漏洞。遵循BIP-39标准的强密码也可能增加恢复难度,而需要多个独立设备进行签名的钱包则可以防止资金从单个被破解的种子中转出。
Coinkite指向人工智能,但证据仍不充分
Coinkite首席执行官Rodolfo Novak公开道歉,并表示公司对此次固件故障负全部责任。他报告称,团队正在努力开发修复后的软件、技术报告,并为受影响的用户提供支持。
Coinkite和Novak也提出了一个引人注目的理论,关于这个漏洞是如何被发现的。由于该公司的固件已公开多年,公司声称他们认为可能有人利用人工智能分析了旧版本代码,并发现了脆弱的随机数生成路径。
"致所有其他开发者:我们认为这是人工智能新范式的严峻现实。使用人工智能进行代码审查,现在能以超越行业内最资深专家的速度找到隐藏的漏洞,"Novak在发布于X上的道歉帖子中写道。"如果你的固件是开源的,或者曾经是公开的,请假设它正被攻击者和安全专家同时研究。"
基于人工智能的现代编码系统能够处理大型软件仓库,并发现配置设置、功能和安全假设之间的可疑关联。攻击者可以要求这样的系统专门寻找弱随机数生成器、备用功能或影响加密密钥的错误。

后来,独立研究人员报告称,在底层的随机性问题为人所知后,他们使用了人工智能模型来发现或解释该问题。这展示了人工智能代码分析变得多么容易获得,但并未证明最初的攻击者使用了人工智能。

Coinkite承认,其在盗窃发生前使用领先的人工智能模型进行的审查未能发现该漏洞。这个结果表明,人工智能系统并非总能自动发现所有严重的缺陷。其有效性可能取决于收到的指令、提供的代码量以及进行审查的人是否了解警示信号。
批评者称最初是人为失误
一些安全专家认为,过度强调人工智能(AI)有可能分散人们对基本工程错误的注意力。许多人认为,这个配置错误是一个已知类型的软件缺陷,专注于种子生成的传统代码审查、测试程序或审计本应在几年前就发现它。

对立的观点并不一定互斥。人为失误创造了漏洞并使其持续存在,而人工智能可能降低了发现、理解或利用该漏洞的成本。防御者需要找到所有危险的弱点,而攻击者只需找到一个即可。
这一事件也挑战了关于开源安全性的假设。开源代码允许独立专家审查软件,但仅仅是可获得性并不能保证会有人分析正确的片段、发现细微的缺陷,并在攻击者行动之前报告它。
对于Coldcard用户来说,首要任务是确定他们的种子是在何时以及如何生成的。任何种子受到影响的人都应通过Coinkite官方渠道核查说明,安装修复后的固件,生成新种子,并谨慎地转移资金,同时提防网络钓鱼尝试和冒充客服的虚假信息。
长远来看,关注点将集中在被盗的比特币数量、调查人员能否确定攻击者身份,以及人工智能是否在发现漏洞中起到了关键作用上。硬件钱包制造商也将面临压力,需要加强熵测试,对构建配置进行审计,并持续使用人工专家和模拟攻击的人工智能工具来审查旧代码。
end-content






