Back to Blog

Como Recuperamos os Fundos Roubados do TransitSwap e BabySwap

October 10, 2022
4 min read

Introdução

O BabySwap e o TransitSwap na BSC foram atacados em 1º de outubro. Algumas transações de ataque foram antecipadas por um Bot. Curiosamente, este bot era suscetível à vulnerabilidade da ferramenta profanity, e conseguimos recuperar sua chave privada. Também conseguimos fazer a engenharia reversa do contrato do bot e retirar os fundos do contrato para nossa conta segura. Transferimos os fundos para o TransitSwap e estamos contatando o BabySwap no estágio atual.

Linha do Tempo

A Detecção do Ataque ao BabySwap

Em 2022-10-01 14:47 (UTC), nosso sistema interno reportou uma transação de ataque. Nossa análise posterior mostrou que isso se deve às factories controladas no contrato do roteador inteligente. No entanto, não divulgamos os detalhes naquele momento, pois o projeto ainda estava vulnerável. Contatamos o BabySwap pelo Twitter DM e TG, mas não obtivemos resposta.

Durante a investigação, descobrimos que essa transação foi emitida por uma conta bot, que antecipou a transação de ataque original. Além disso, essa conta tem um padrão com oito zeros à esquerda, o que indica que foi gerada pela ferramenta profanity, que é vulnerável à vulnerabilidade da ferramenta profanity.

A Recuperação da Chave Privada do Bot

Em 2022-10-01 16:10 (UTC), nossa ferramenta recuperou com sucesso a chave privada deste bot em aproximadamente 20 minutos. Para a chave privada recuperada, transferimos os fundos para uma conta segura (que é o processo típico do nosso resgate). Caso contrário, outros que também recuperassem a chave privada poderiam assumir o controle da conta, e os fundos na conta estariam em risco.

Transferindo Fundos Para Fora do Bot

O desafio é que os fundos estão no contrato implantado pelo bot, e não na própria conta EOA do bot. Como transferir os fundos é um desafio.

Descompilamos o contrato e descobrimos que há uma função de saque no contrato (conforme mostrado na figura a seguir).

Esta função pode ser utilizada para retirar os fundos do contrato. O primeiro argumento é o endereço do token, e o segundo argumento deve ser zero.

Enviamos uma transação e retiramos com sucesso os fundos do contrato para o bot e, em seguida, transferimos os fundos para nossa conta segura.

Surge Outro Ataque!

Algumas horas depois, nosso sistema reportou outro ataque ao TransSwap. Há algumas transações de ataque de endereços diferentes, e uma transação foi antecipada por este bot novamente! No entanto, como o contrato implantado pelo bot é diferente, a função para transferir os fundos para fora também é diferente.

Devolução dos Fundos

Após deliberação interna, decidimos devolver os fundos aos projetos atacados (em vez do bot) pelos seguintes motivos.

  • Primeiro, os fundos foram obtidos pelo bot por meio do ataque a contratos vulneráveis. Embora o bot tenha antecipado a transação de ataque (em vez de lançar o ataque inicialmente), ainda consideramos que a transação de antecipação de uma transação de ataque também é um ataque.

  • Segundo, os fundos pertencem às vítimas do ataque, ou seja, os usuários dos protocolos DeFi afetados. Os usuários sofreram muito devido à vulnerabilidade no protocolo DeFi. Eles devem receber os fundos dos atacantes.

Transferimos os fundos para o endereço oficial do Receptor de Fundos da TransitFinance e estamos contatando o BabySwap.

Atualização do Resgate

Ainda estamos no processo de resgate de endereços vulneráveis. O desafio é que não é possível determinar se um endereço é vulnerável antes de recuperar sua chave privada. Mesmo com um algoritmo otimizado, devido à limitação de poder computacional, ainda precisamos de mais tempo para concluir todo o resgate. Lançaremos um relatório detalhado posteriormente para deliberar sobre todo o processo e responder às seguintes perguntas.

  • Quantos endereços são vulneráveis?
  • Qual é o impacto da vulnerabilidade, ou seja, quantos ativos estão em risco devido à vulnerabilidade?
  • Qual é a situação geral do ataque desta vulnerabilidade?

Fique atento e em segurança.

Lição

Tornar um projeto DeFi seguro não é uma tarefa fácil. Além da auditoria de código, acreditamos que a comunidade deve adotar um método proativo para monitorar o status do projeto e bloquear o ataque antes mesmo que ele ocorra.

Sobre a BlockSec

A BlockSec é uma empresa pioneira em segurança blockchain fundada em 2021 por um grupo de especialistas em segurança mundialmente reconhecidos. A empresa está comprometida em aprimorar a segurança e a usabilidade para o emergente mundo Web3, com o objetivo de facilitar sua adoção em massa. Para isso, a BlockSec oferece serviços de auditoria de segurança para contratos inteligentes e chains EVM, a plataforma Phalcon para desenvolvimento seguro e bloqueio proativo de ameaças, a plataforma MetaSleuth para rastreamento e investigação de fundos, e a extensão MetaDock para construtores web3 que navegam com eficiência no mundo cripto.

Até o momento, a empresa atendeu mais de 300 clientes renomados, como MetaMask, Uniswap Foundation, Compound, Forta e PancakeSwap, e recebeu dezenas de milhões de dólares americanos em duas rodadas de financiamento de investidores proeminentes, incluindo Matrix Partners, Vitalbridge Capital e Fenbushi Capital.

Site oficial: https://blocksec.com/

Conta oficial no Twitter: https://twitter.com/BlockSecTeam