2025 年 2 月 21 日,例行转账之后的七个多小时
2025 年 2 月 21 日 13:30(UTC),Bybit 从一个以太坊多签冷钱包往热钱包做例行转账,第一笔转出 30,000 ETH。不到一个小时后,这个冷钱包里的资金被转走。
当天的时间点摘自 Bybit Learn 2025 年 3 月 3 日发布的《Bybit Security Incident: Timeline of Events and FAQs》,表中是 UTC 时间。
| UTC 时间 | 发生什么 |
|---|---|
| 13:30 | 从以太坊多签冷钱包向热钱包例行转账,先转出 30,000 ETH |
| 14:13 | 黑客借钓鱼攻击利用 Safe 多签冷钱包的界面,掩盖具体交易;冷钱包的智能合约逻辑被改,资金转出并分散到 39 个地址 |
| 15:44 | CEO Ben Zhou 发推:黑客控制了这个特定的 ETH 冷钱包;Bybit 有偿付能力,客户资产 1:1 有备付 |
| 17:15 | Ben Zhou 直播说明:提现没有暂停、照常处理;其他冷钱包未受影响,比特币是主要储备资产 |
| 19:09 | ZachXBT 提交证据,把攻击关联到 Lazarus Group |
| 20:09 | Bitget 向 Bybit 存入 40,000 ETH |
| 21:07 | Bybit 向相关机构报案 |
按时间线里 15:44 那条推文的引述,Ben Zhou 的原话是黑客「took control of the specific ETH cold wallet」,也就是拿到了这一个冷钱包的控制权。
「冷钱包为什么会被盗」这个问题,答案在签名环节。冷钱包的私钥离线保管,可钱要转出去,总得有人签名;多签钱包要几个人分别签,每个签名人签之前都要先看到「这笔交易是什么」。显示给签名人看的这一层,就是这次事件里被动了手脚的地方。
被改的是签名网页里的一段 JavaScript
Sygnia 在 2025 年 3 月 16 日发布调查报告《Sygnia's Investigation into the Bybit Hack: What We Know So Far》,把攻击拆到了代码层。报告里的几处关键事实如下。
- 托管 Safe{Wallet} 网页界面的 AWS S3 存储桶里,JavaScript 资源在 2025 年 2 月 19 日被修改,比 21 日那笔转账早两天。
- 恶意代码设了触发条件:只有交易来源是两个合约地址之一时才执行。一个是 Bybit 的合约地址,另一个报告里没有识别出来。来源不在这两个地址里的交易,这段代码不会动作。
- 攻击交易利用 delegatecall,把合约的实现(implementation)换成恶意版本,劫持了 Bybit 冷钱包的控制权。
- 恶意交易发出两分钟后,攻击者就把恶意代码从 Safe{Wallet} 网页界面上删掉了。
- 被攻破的是 Safe{Wallet} 开发者的工作站,攻击者用盗来的凭证进入了 Safe{Wallet} 的 AWS 账户;Bybit 的基础设施没有被直接攻破。
delegatecall 是以太坊合约之间的一种调用方式:调用方借用另一个合约的代码,在自己的存储上执行。多签钱包合约背后的实现一旦用这种方式被换掉,谁能动这个钱包里的钱,也就跟着换了。(这段是本站对机制的通俗解释。)
Safe 方面的说法,出现在 Bybit 时间线 2 月 22 日 01:08 这一条:Safe 确认其代码库没有被攻破、没有恶意依赖,其他 Safe 地址未受影响,同时暂停了 Safe{Wallet} 功能进行审查。Safe 这条声明说的是代码库和依赖,Sygnia 报告写的是 S3 存储桶里托管的网页资源和 Safe{Wallet} 开发者的工作站。
2 月 26 日 15:17,Ben Zhou 公布了 Sygnia Labs 与 Verichains 的初步报告。两份报告都把根因指向 Safe{Wallet} 平台上的恶意 JavaScript 代码,在 Bybit 自身基础设施里没有发现漏洞。
四种资产被转走,72 小时内补上缺口
据 Bybit 官方时间线,只有一个冷钱包被攻破,损失 14.6 亿美元,分四种资产:
| 资产 | 数量 | 时间线给出的美元值 |
|---|---|---|
| ETH | 401,347 | 11.2 亿 |
| stETH | 90,375 | 2.5316 亿 |
| cmETH | 15,000 | 4,413 万 |
| mETH | 8,000 | 2,300 万 |
四项的美元值相加:11.2 + 2.5316 + 0.4413 + 0.23 ≈ 14.40 亿美元,比同页给的 14.6 亿美元总数少约 2,000 万美元,官方页没有解释这个差额。金额口径还不止这两个:同一页导语写的是「almost $1.5 billion」,另一处写「$1.4 billion」;FBI 公告写的是「approximately $1.5 billion」。标题里的 14.6 亿美元,取自 Bybit 时间线列出的损失总数。
之后几天的时间点如下(UTC):
| UTC 时间 | 发生什么 |
|---|---|
| 2 月 22 日 00:54 | 10 小时内处理了 35 万多笔提现请求的 99.994% |
| 2 月 22 日 02:51 | 所有提现处理完毕,恢复正常运作 |
| 2 月 22 日 13:15 | Tether 冻结与此案相关的 181,000 USDT |
| 2 月 22 日 15:32 | 推出追回赏金计划,奖励为被盗资金的 10% |
| 2 月 23 日 15:41 | 业界合计冻结 4,289 万美元被盗资金;mETH Protocol 追回 15,000 cmETH(近 4,300 万美元) |
| 2 月 24 日 02:35 | 两天内通过过桥贷款、大户存入和场外购买获得 12.3 亿美元的 ETH,补上缺口 |
| 2 月 24 日 09:12 | Hacken 发布更新的储备证明报告;72 小时内补齐客户资产的 ETH 缺口 |
| 2 月 25 日 14:40 | 推出 LazarusBounty 赏金平台 |
Hacken 那份更新的储备证明报告,和「72 小时内补齐客户资产的 ETH 缺口」记在时间线的同一条里。追回的 15,000 cmETH 和被盗的 cmETH 数量一样;损失清单里这部分标的是 4,413 万美元,追回那条写的是近 4,300 万美元,两个数出自时间线的不同条目。
FBI 在 2 月 26 日把这次攻击归到 TraderTraitor
FBI 互联网犯罪投诉中心(IC3)在 2025 年 2 月 26 日发布公告,编号 I-022625-PSA,标题是《North Korea Responsible for $1.5 Billion Bybit Hack》。公告写的是:朝鲜(DPRK)对「on or about February 21, 2025」从加密交易所 Bybit 盗走约 15 亿美元虚拟资产负责,FBI 把这类朝鲜恶意网络活动称为「TraderTraitor」。
公告还写到,TraderTraitor 正在快速把部分被盗资产换成比特币和其他虚拟资产,分散到多条链上的数千个地址,FBI 预计这些资产会被进一步洗钱,最终换成法币。
截图下半部分能看到「HOW YOU CAN HELP」一段和地址清单的开头。公告请私营机构出手:FBI 鼓励 RPC 节点运营方、交易所、跨链桥、链上分析公司、DeFi 服务等拦截与这些洗钱地址相关的交易,并列出了 50 个以太坊地址。
归因上,几份来源的说法一致。Bybit 时间线记下 2 月 21 日 19:09 ZachXBT 提交证据,把攻击关联到 Lazarus Group;Sygnia 报告引用 FBI 的归因,写明 TraderTraitor 即 Lazarus Group / UNC4899,是与朝鲜有关的威胁组织。
识别要点 · 网页显示的内容不能当签名依据
以下是本站的建议,不属于任何一份调查的结论。Bybit 用的是机构的多签冷钱包,个人用户的规模小得多,但用多签、或者拿硬件钱包连网页工具签名时,核对的逻辑相同。
- 多签的每个签名人,在硬件钱包屏幕上核对要签的原始交易数据,至少看两样:目标合约地址、调用类型。网页上显示的收款方和金额是网页自己画出来的,网页被改,这些显示也跟着变。
- 只是想转一笔币,设备屏幕上却出现 delegatecall,或者一笔要改合约实现的操作,就停在这一步。对普通转账来说,这两类调用本身就是异常信号。
- 个人用户用硬件钱包连网页端钱包或 DApp 前端,核对的对象同样是设备屏幕。网页端工具被植入代码时,外观可以和平常完全一样,「页面跟上次看起来一样」当不了安全依据。
- 屏幕上只有一串哈希或十六进制数据、读不出目标合约和调用类型时,把它当成还没核对完的交易,弄清楚它要调用什么之后再签。
- 例行操作也按同样的步骤逐笔核对。
Safe{Wallet} 网页里的代码提前两天改好,只对两个合约地址触发,恶意交易发出两分钟后就被删掉。个人用户下次在硬件钱包上确认之前,把屏幕上的目标地址和调用类型从头读到尾,再决定签不签。