# 概述 在2025年2月21日晚上10.16分,Bybit的[冷钱包](https://etherscan.io/address/0x1db92e2eebc8e0c075a02bea49a2935bcd2dfcf4)遭遇攻击。本次攻击损失列表如下: 1. 401,346 ETH:[攻击交易1](https://app.blocksec.com/explorer/tx/eth/0xb61413c495fdad6114a7aa863a00b2e3c28945979a10885b12b30316ea9f072c) 2. 15,000 cmETH: [攻击交易2](https://app.blocksec.com/explorer/tx/eth/0x847b8403e8a4816a4de1e63db321705cdb6f998fb01ab58f653b863fda988647) 3. 8,000 mETH: [攻击交易3](https://app.blocksec.com/explorer/tx/eth/0xbcf316f5835362b7f1586215173cc8b294f5499c60c029a3de6318bf25ca7b20) 4. 90,375 stETH: [攻击交易4](https://app.blocksec.com/explorer/tx/eth/0xa284a1bc4c7e0379c924c73fcea1067068635507254b03ebbbd3f4e222c1fae0) 5. 90 USDT:[攻击交易5](https://app.blocksec.com/explorer/tx/eth/0x25800d105db4f21908d646a7a3db849343737c5fba0bc5701f782bf0e75217c9) # 根本原因 Bybit的冷钱包的逻辑合约被恶意合约替换,导致钱包内的资金被盗取。[此处](https://app.blocksec.com/explorer/tx/eth/0x46deef0f52e3a983b67abf4714448a41dd7ffd6d32d32da69d62081c68ad7882)为替换冷钱包逻辑合约的核心攻击交易。 # 技术分析 ## 背景 Bybit使用`Safe{Wallet}`服务保证其资金安全。`Safe{Wallet}`是一款基于智能合约的多签钱包。用户需要指定签名者,并将资金托管到`Safe{Wallet}`。而后`Safe{Wallet}`将会部署一个冷钱包(智能合约)用户存放资金。 之后,如果需要对冷钱包进行任意操作,都需要各签名者进行签名(3/5,1/2等形式)。签名者在进行签名之前,会看到一个`URL`,该`URL`内包含了交易的交互地址和交易信息。一般来说,签名者应当核对交互地址是否正常,再核对交易信息(calldata)是否正常,再进行签名便可保证安全。如果进行签名的签名者的数量达到了阈值,则会生成一个聚合签名。最后将聚合签名作为参数放到链上的冷钱包合约中执行即可。 ## 攻击准备 攻击者需要达到以下条件才能完成这次攻击: 1. 定位到Bybit冷钱包三位签名者的IP。 2. 控制三位签名者的Safe{Wallet}前端界面,替换显示内容。 3. 获取交易签名后的聚合签名。 4. 掌握Bybit工作人员进行正常操作的时机。 **为什么要达到这些条件呢?** 首先三位签名者不可能在非正常工作的时机对冷钱包进行操作;而后,在`Safe{Wallet}`的前端界面是会显示交互的地址的,如果交互地址异常,则签名者不可能进行交易签署;最后,即使签名者签署了这笔交易,但若攻击者没有获取该交易的聚合签名,该交易也无法上链。 ## 攻击流程 攻击者为了完成这次攻击,共部署了两个攻击合约: 1. [攻击合约1](https://etherscan.io/address/0x96221423681A6d52E184D440a8eFCEbB105C7242)将`upgrade`操作伪装为`transfer`。 2. [攻击合约2](https://etherscan.io/address/0xbdd077f651ebe7f7b3ce16fe5f2b025be2969516)用于提取Bybit冷钱包内的资金。 而后,攻击者开始了攻击: 1. 攻击者在2025年2月18日先后部署了攻击合约1和攻击合约2。 2. 攻击者构造了一笔[恶意交易](https://app.blocksec.com/explorer/tx/eth/0x46deef0f52e3a983b67abf4714448a41dd7ffd6d32d32da69d62081c68ad7882),该交易的交互地址并非Bybit官方相关的地址,该交易的操作是将Bybit冷钱包的逻辑合约修改为[攻击合约2](https://etherscan.io/address/0xbdd077f651ebe7f7b3ce16fe5f2b025be2969516)。 3. 攻击者入侵了`Safe{Wallet}`的前端界面,导致签名者在UI界面中看到的交互地址是Bybit热钱包的地址,交互操作为转账。签名者并未验证交易是否正确,直接进行了签名。 4. 攻击者通过渗透的方式获得了聚合签名。并据此执行了恶意交易,导致Bybit冷钱包的逻辑合约被替换为[攻击合约2](https://etherscan.io/address/0xbdd077f651ebe7f7b3ce16fe5f2b025be2969516)。 5. 攻击者通过执行的[攻击合约2](https://etherscan.io/address/0xbdd077f651ebe7f7b3ce16fe5f2b025be2969516)的`sweep_eth`和`sweep_erc20`函数完成了资金盗取。 # 总结 本次攻击已被证实是朝鲜黑客组织所为,其体现出的专业程度令人咋舌。首先黑客可能通过钓鱼邮件的方式在签名者的主机中植入了木马程序,导致`Safe{Wallet}`前端页面显示错误。而后黑客可能通过社会工程学等方式知悉了Bybit冷钱包转账至热钱包的时机,并构造了恶意交易。最后欺骗签名者对恶意交易进行签名,并获取聚合签名,完成了本次攻击。本次攻击造成的损失大概在14.5亿美元左右,是区块链历史上单次攻击金额之最。本次攻击也为各大平台敲响了警钟,`Safe{Wallet}`也紧急排查了其前端代码,保证了后续安全。github社区中也出现了如[safe verify](https://github.com/mimir-labs/safe-verify)等交易验证软件,保证交易数据的多渠道验证。