术语表 /隐私与安全
供应链攻击
- 供应链攻击是什么?
- 供应链攻击通过您已经信任的事物找上您:您安装的钱包更新、其中的代码库,或经销商寄来的设备。
整个过程中并没有哪一刻是您犯了错,这正是这类攻击难以防范的原因。2018年11月,一个被广泛使用的 npm 软件包 event-stream 被移交给一名志愿维护者,此人加入的代码明确针对一款比特币钱包 Copay,并且专门针对控制着超过100枚比特币的助记词。直接购买和验证所安装的软件,是真正有帮助的两个习惯。
运作方式
供应链攻击是在受害者的上游植入恶意代码或硬件,而插入点正是信任已经被授予的环节。
依赖项。 现代钱包软件会引入数百个第三方软件包。在 event-stream 一案中,原作者不愿再继续维护,把发布权限转交给了一名自告奋勇的陌生人。新维护者先加入了一个看似无害的依赖项,随后发布了一个版本,其恶意载荷只在 BitPay 的 Copay 钱包构建中激活,解密助记词并将其外传。Copay 的5.0.2至5.1.0版本都带有该载荷。
分发渠道。 2023年12月14日,一名 Ledger 前员工的 npm 账户遭到钓鱼攻击,并被用来发布 Ledger Connect Kit 库的恶意版本。在持续数小时的时间里,从内容分发网络加载该库的应用向用户提供了一个会改写转账去向的钱包盗取程序。约600,000美元被盗,受害者只是打开了一个熟悉的网站,没有点击任何异常内容。
硬件。 通过市场商品页面和第三方经销商出售的假冒或预置助记词的设备。辨别方法简单而绝对:正版硬件钱包会在设置时于设备本身生成助记词,且仅此一次。凡是到手时卡片上已印有助记词,或要求您输入包装盒内提供的短语的,都是包装精美的盗窃工具。
构建。 这里的防御靠的是可复现性。自版本22.0(2021年9月)起,Bitcoin Core 就使用 Guix 进行可自举、可确定的构建,由独立贡献者从源代码编译发布版本并对结果签名。如果他们的证明一致,下载页面上的二进制文件就是已发布源代码所生成的那一个,被入侵的构建机器无从隐藏。
在哪里会遇到它
在正常的比特币使用环境中,有四个环节位于他人信任决定的下游。
软件下载。 请从您自己打开的页面获取安装程序,然后对照项目自己的签名密钥核对发布签名,至少核对哈希值。钱包项目同时发布这两样东西,正是为了让这一步得以进行。
浏览器扩展。 扩展会在后台自动更新,所有权也会悄悄易手,因此涉及密钥或地址的扩展,应当像对待未签名的可执行文件一样保持怀疑。
硬件购买。 请从制造商自己的商店或指名的授权经销商处购买,不要通过市场商品页面、拍卖或二手卖家购买。本站的硬件钱包评测为每款设备都链接了官方商店,原因正在于此。
固件和更新。 请通过厂商自己的应用更新,并由您主动发起,不要点击邮件中的链接或声称您的设备有风险的弹窗。
这四个环节的背后,是一项在其中任何一个失守时都能限制损失的控制措施:批准之前,在硬件钱包自己的屏幕上确认目标地址和金额。被入侵的计算机可以改写它显示的任何内容,却无法改写另一台独立设备向您显示的内容。
供应链攻击 vs 剪贴板恶意软件
剪贴板恶意软件是一种载荷;供应链攻击是一条投递途径,两者却常被当作互相替代的选项来谈。替换地址的恶意软件通常是因为从错误的地方下载了东西才进入的,因此对来源保持一般的谨慎对它有效。供应链攻击则藏在从完全正确的地方下载的东西里,因此对来源的谨慎对它无效。能同时挫败两者的是同一个习惯,这也是它比了解某段代码来自何处更重要的原因:请在签名设备上验证地址,而不是在要求您签名的那块屏幕上。