O que aconteceu em 21 de fevereiro de 2025, nas mais de sete horas seguintes a uma transferência de rotina

Às 13:30 (UTC) de 21 de fevereiro de 2025, a Bybit iniciou uma transferência de rotina de uma cold wallet multisig na Ethereum para uma warm wallet (carteira morna), enviando primeiro 30.000 ETH. Menos de uma hora depois, os fundos dessa cold wallet tinham sido retirados.

Os horários desse dia vêm de Bybit Security Incident: Timeline of Events and FAQs, publicado no Bybit Learn em 3 de março de 2025, e estão em UTC.

Horário (UTC)O que aconteceu
13:30Transferência de rotina da cold wallet multisig na Ethereum para uma warm wallet; primeiro saem 30.000 ETH
14:13Por meio de um ataque de phishing, os hackers exploram a interface da cold wallet multisig da Safe e mascaram a transação; a lógica do contrato da cold wallet é alterada, e os fundos saem e são divididos entre 39 endereços
15:44O CEO Ben Zhou tuíta que os hackers assumiram o controle dessa cold wallet específica de ETH, que a Bybit é solvente e que os ativos dos clientes têm lastro de 1:1
17:15Ben Zhou faz uma transmissão ao vivo: os saques não foram suspensos e seguem sendo processados normalmente; as outras cold wallets não foram afetadas, e o bitcoin continua sendo o principal ativo de reserva
19:09ZachXBT apresenta provas que ligam o ataque ao Lazarus Group
20:09A Bitget deposita 40.000 ETH na Bybit
21:07A Bybit comunica o caso às autoridades competentes

Na entrada das 15:44, a linha do tempo cita as palavras de Ben Zhou: os hackers “took control of the specific ETH cold wallet”, ou seja, assumiram o controle daquela cold wallet de ETH em particular.

Como uma cold wallet pode ser esvaziada? A resposta está na etapa de assinatura. Uma cold wallet guarda as chaves privadas offline, mas o dinheiro só sai quando alguém assina; uma carteira multisig exige que várias pessoas assinem separadamente, e cada signatário precisa antes ver que transação é aquela. Foi a camada que mostra a transação aos signatários que acabou adulterada neste caso.

Como a cold wallet foi drenada: JavaScript adulterado na página da Safe{Wallet}

O relatório da Sygnia, Bybit – What We Know So Far, de 16 de março de 2025, desce ao nível do código. Os pontos centrais:

  • Os recursos JavaScript hospedados no bucket AWS S3 que serve a interface web da Safe{Wallet} foram modificados em 19 de fevereiro de 2025, dois dias antes da transferência do dia 21.
  • O código malicioso tinha uma condição de ativação: só era executado quando a origem da transação era um de dois endereços de contrato. Um era o endereço de contrato da Bybit; o outro não foi identificado, e o relatório o considera provavelmente ligado aos invasores. Para transações vindas de qualquer outro endereço, o código não fazia nada.
  • Os invasores usaram o recurso de delegate call (delegatecall) para trocar a implementação do contrato por uma versão maliciosa e, com isso, assumiram o controle da cold wallet da Bybit.
  • Cerca de dois minutos depois da transação maliciosa, os invasores removeram o código malicioso da interface web da Safe{Wallet}.
  • A estação de trabalho de um desenvolvedor da Safe{Wallet} foi comprometida, e os invasores usaram as credenciais da AWS desse desenvolvedor para acessar a conta AWS da Safe{Wallet}.

delegatecall é uma das formas de um contrato chamar outro na Ethereum: quem chama toma emprestado o código do outro contrato e o executa sobre o próprio armazenamento. Por essa regra, quando a implementação por trás de um contrato de carteira multisig é trocada dessa maneira, muda junto quem pode movimentar o dinheiro da carteira.

O posicionamento da Safe aparece na linha do tempo da Bybit, na entrada de 22 de fevereiro, 01:08: a Safe confirmou que sua base de código não foi comprometida e não continha dependências maliciosas, que nenhum outro endereço Safe foi afetado e que pausou temporariamente a funcionalidade da Safe{Wallet} para uma revisão. A declaração da Safe fala da base de código e das dependências; o relatório da Sygnia trata dos recursos web hospedados no bucket S3 e da estação de trabalho de um desenvolvedor da Safe{Wallet}.

Em 26 de fevereiro, às 15:17, Ben Zhou divulgou os relatórios preliminares da Sygnia Labs e da Verichains. Segundo a linha do tempo, os dois sugerem que a causa raiz foi um código JavaScript malicioso na plataforma da Safe{Wallet}, e nenhuma vulnerabilidade foi detectada na infraestrutura da Bybit.

Quanto foi roubado da Bybit e como o déficit de ETH foi coberto em 72 horas

Pela linha do tempo oficial da Bybit, uma única cold wallet foi comprometida, com perda de US$ 1,46 bilhão em quatro ativos:

AtivoQuantidadeValor em dólares informado na linha do tempo
ETH401.347US$ 1,12 bilhão
stETH90.375US$ 253,16 milhões
cmETH15.000US$ 44,13 milhões
mETH8.000US$ 23 milhões

Somados, os quatro valores dão 1,12 + 0,25316 + 0,04413 + 0,023 ≈ US$ 1,440 bilhão, cerca de US$ 20 milhões a menos que o total de US$ 1,46 bilhão da mesma página, e a página oficial não explica a diferença. Há ainda outros números em circulação: a introdução dessa página fala em “almost $1.5 billion” (quase 1,5 bilhão de dólares), outro trecho traz “$1.4 billion” (1,4 bilhão), e o comunicado do FBI diz “approximately $1.5 billion” (aproximadamente 1,5 bilhão). O valor de US$ 1,46 bilhão usado neste caso é o total de perdas listado na linha do tempo da Bybit.

Os dias seguintes, em UTC:

Horário (UTC)O que aconteceu
22 de fevereiro, 00:5499,994% de mais de 350 mil pedidos de saque processados em 10 horas
22 de fevereiro, 02:51Todos os saques processados; a plataforma volta a operar normalmente
22 de fevereiro, 13:15A Tether congela 181.000 USDT ligados ao caso
22 de fevereiro, 15:32A Bybit lança o Recovery Bounty Program, com recompensa de 10% dos fundos roubados
23 de fevereiro, 15:41Parceiros do setor já congelaram, no total, US$ 42,89 milhões dos fundos roubados; o mETH Protocol recupera 15.000 cmETH (quase US$ 43 milhões)
24 de fevereiro, 02:35Em dois dias, a Bybit recebe US$ 1,23 bilhão em ETH por meio de empréstimos-ponte, depósitos de grandes detentores e compras OTC, cobrindo o déficit de ETH
24 de fevereiro, 09:12A Hacken publica um relatório atualizado de prova de reservas; o déficit de ETH nos ativos dos clientes é coberto em 72 horas
25 de fevereiro, 14:40Lançamento da plataforma de recompensas LazarusBounty

O relatório atualizado de proof of reserves (prova de reservas) da Hacken e a cobertura, em 72 horas, do déficit de ETH nos ativos dos clientes estão na mesma entrada da linha do tempo. Os 15.000 cmETH recuperados são a mesma quantidade de cmETH roubada; a lista de perdas atribui a essa parte US$ 44,13 milhões, enquanto a entrada da recuperação fala em quase US$ 43 milhões, e os dois números vêm de entradas diferentes da linha do tempo.

Quem o FBI apontou como responsável em 26 de fevereiro: TraderTraitor

Em 26 de fevereiro de 2025, o Internet Crime Complaint Center (IC3), do FBI, publicou o comunicado I-022625-PSA, com o título North Korea Responsible for $1.5 Billion Bybit Hack. O texto afirma que a Coreia do Norte (RPDC) foi responsável pelo roubo de aproximadamente US$ 1,5 bilhão em ativos virtuais da corretora de criptomoedas Bybit “on or about February 21, 2025” (em 21 de fevereiro de 2025 ou por volta dessa data) e que o FBI chama essa atividade cibernética maliciosa norte-coreana de “TraderTraitor”.

Captura do topo da página do comunicado do IC3, do FBI, em inglês: número I-022625-PSA, data de publicação, título North Korea Responsible for $1.5 Billion Bybit Hack, o primeiro parágrafo com a atribuição, a seção HOW YOU CAN HELP e o começo da lista de endereços Ethereum
Página em inglês do comunicado I-022625-PSA em ic3.gov, capturada em setembro de 2026: nela o FBI atribui o roubo da Bybit à atividade norte-coreana TraderTraitor.

Segundo o comunicado, os atores do TraderTraitor estão agindo rapidamente e já converteram parte dos ativos roubados em bitcoin e outros ativos virtuais, dispersos por milhares de endereços em várias blockchains. A expectativa registrada no texto é de novas etapas de lavagem e, no fim, de conversão desses ativos em moeda fiduciária.

O FBI incentiva entidades do setor privado, entre elas operadores de nós RPC, corretoras, bridges, empresas de análise de blockchain, serviços DeFi e outros provedores de serviços de ativos virtuais, a bloquear as transações feitas com os endereços usados pelos atores do TraderTraitor para lavar os ativos roubados, e também as originadas desses endereços. O comunicado lista 51 endereços Ethereum.

Na atribuição, as fontes coincidem. A linha do tempo da Bybit registra que, às 19:09 de 21 de fevereiro, ZachXBT apresentou provas ligando o ataque ao Lazarus Group; o relatório da Sygnia cita a atribuição do FBI e identifica o TraderTraitor como Lazarus Group / UNC4899, grupo de ameaça ligado à Coreia do Norte.

O que conferir antes de assinar: a tela do dispositivo, não a página web

A Bybit operava uma cold wallet multisig institucional, e os valores de um usuário comum são muito menores, mas a lógica de conferência é a mesma para quem usa multisig ou assina com uma hardware wallet conectada a uma ferramenta web.

  1. Se você é signatário de uma multisig, confira os dados brutos da transação na tela da hardware wallet e olhe pelo menos duas coisas: o endereço do contrato de destino e o tipo de chamada. O destinatário e o valor exibidos na página web são desenhados pela própria página; se ela for adulterada, o que mostra muda junto.
  2. Se a intenção era só enviar moedas e a tela do dispositivo mostra um delegatecall, ou uma operação que altera a implementação de um contrato, pare nesse passo. Numa transferência comum, qualquer uma dessas chamadas já é um sinal de alerta.
  3. Ao conectar uma hardware wallet a uma carteira web ou ao front-end de um DApp, confira também na tela do dispositivo. Uma ferramenta web com código injetado pode ter exatamente a aparência de sempre; o fato de a página estar igual à da última vez não serve como garantia de segurança.
  4. Quando a tela mostra só um hash ou uma sequência hexadecimal e não dá para ler o contrato de destino nem o tipo de chamada, trate a transação como ainda não conferida e assine só depois de entender o que ela vai chamar.
  5. Nas operações de rotina, faça a mesma conferência, uma a uma.
Para fechar

Segundo a Sygnia, o código na página da Safe{Wallet} foi alterado dois dias antes, só disparava para dois endereços de contrato e foi removido cerca de dois minutos depois da transação maliciosa. Na próxima confirmação em uma hardware wallet, leia do começo ao fim o endereço de destino e o tipo de chamada na tela antes de decidir se assina.