Back to Blog

Estudo de Caso de Fluxo de Fundos Ilícitos: Ataque à LI.FI

MetaSleuth
October 24, 2024
5 min read

Estudo de Caso de Fluxo de Fundos Ilícitos: Ataque à LI.FI

Contexto do Caso

Em 16 de julho de 2024, a Li.Fi, uma bridge cross-chain e agregador de DEX, sofreu uma violação de segurança significativa que explorou o Li.Fi Diamond Contract. Diversos tokens estáveis e outros ativos no valor aproximado de $11,6 milhões foram roubados dos usuários. O atacante conseguiu drenar fundos de usuários que haviam concedido aprovações infinitas ao contrato atacado.

A vulnerabilidade estava na função depositToGasZipERC20() do contrato GasZipFacet. O contrato GasZipFacet foi implantado pela equipe da LI.FI cinco dias antes do ataque para habilitar o reabastecimento de gás em transações de bridge. A função depositToGasZipERC20() incluía um argumento controlado pelo usuário _swapData, que era posteriormente passado para a chamada de função LibSwap.swap(). Infelizmente, LibSwap.swap incluía uma chamada de baixo nível capaz de executar funções arbitrárias com o alvo da chamada e os dados da chamada especificados pelo argumento _swapData controlado pelo atacante. O atacante aproveitou essa "vulnerabilidade de chamada arbitrária" para executar transferências não autorizadas de usuários que haviam concedido aprovação infinita ao contrato Li.Fi Diamond.

Análise do Fluxo de Fundos

Em 16 de julho de 2024, o atacante iniciou quase uma centena de transações explorando a vulnerabilidade de chamada arbitrária, transferindo aproximadamente $11 milhões em tokens estáveis (USDT, USDC, DAI) para o endereço 0x8b3c em menos de 30 minutos. Quase todos os tokens estáveis drenados foram rapidamente trocados pelo token nativo da Ethereum, ETH. As DEXs utilizadas pelo atacante incluíram Uniswap, Metamask Swap, entre outras. Exemplos de transações de swap: 0xdf9b, 0x11d, 0xb4a4.

Um exemplo do fluxo de fundos dentro de uma transação de swap 0x8e27 interagindo com o Metamask Swap Spender. O atacante trocou os 333.258 USDT adquiridos ilegalmente por 97,16 ETH. Todos os pools e proxies são exibidos claramente usando o MetaSleuth.

Dentro de duas horas após o ataque, todos os ativos roubados foram transferidos para endereços downstream controlados pelo atacante e nada restou no endereço de ataque original. Há um total de 32 endereços downstream diretamente conectados ao endereço 0x8b3c (ou seja, a um salto do endereço de ataque original). Dentre esses, 15 endereços receberam apenas 0,1 ETH do endereço de ataque. Em 22 de outubro de 2024, o ETH mantido por esses 15 endereços ainda não havia sido transferido. Os endereços restantes processaram o restante dos grandes volumes de fundos ilícitos.

Parte do fluxo de fundos dos endereços das vítimas para os endereços downstream controlados pelo atacante:

Após transferir os fundos ilícitos para os endereços downstream a um salto do endereço 0x8b3c, o atacante começou a mover os fundos em lotes. O processo de transferência (lavagem) durou quase três meses. Quase todos os fundos ilícitos foram finalmente transferidos para o Tornado Cash (99,9%), e uma pequena parte foi enviada à exchange eXch para saque direto. Houve um total de 114 transações que o atacante usou para interagir com o Tornado Cash Router. Exemplos de transações movendo ganhos ilícitos para o Tornado Cash: 0x07de, 0xfe82, 0x6a47, 0x8ea6. Exemplos de transações movendo ganhos ilícitos para a eXch: 0xaa89, 0x7e65, 0x8572, 0x625c, 0x2dd2, 0xda71.

Parte do fluxo de fundos dos endereços da camada 2 (a 2 saltos do endereço de ataque original 0x8b3c) para os endereços da camada 4:

O primeiro grande lote de transferências ocorreu na primeira semana após o ataque, entre 16 e 22 de julho. O atacante transferiu aproximadamente $500 mil em ativos ilícitos do endereço 0x6a6d para o Tornado Cash. A transferência de fundos ilícitos pelo atacante exibiu características distintas: eles moviam os fundos para endereços downstream distantes do endereço de ataque (endereço de alto risco), canalizando gradualmente uma parte para o Tornado Cash. No primeiro lote, o caminho de transferência mais longo atingiu até 20 saltos. O atacante utilizou caminhos de lavagem extremamente profundos para obscurecer os fluxos de dinheiro ilícito. Entre agosto e outubro, os fundos ilícitos restantes foram gradualmente transferidos para o Tornado Cash em lotes de transferência com as mesmas características.

Um exemplo de lote de transferência movendo fundos do endereço 0x8e85 (a um salto de 0x8b3c) para o Tornado Cash Router:

Conforme ilustra a figura, entre 13 e 16 de agosto de 2024, o atacante transferiu gradualmente 206 ETH para o Tornado Cash por meio de um caminho de 12 saltos. No endereço 0xe9f7, o atacante dividiu 204 ETH em duas transações: 100 ETH foram enviados ao Tornado Cash, enquanto 104 ETH foram encaminhados para outros endereços de lavagem. Esse padrão de divisão foi consistente ao longo de todo o processo de transferência. Ou seja, o atacante utilizava um endereço novo e mais profundo a cada interação envolvendo o Tornado Cash.

Esforços de Combate

Dois dias após o ataque, a LI.FI publicou oficialmente um relatório do incidente, afirmando que havia desativado com sucesso a faceta do contrato vulnerável em todas as redes e impedido qualquer acesso não autorizado adicional. A LI.FI iniciou um plano de compensação e reembolsou integralmente os usuários afetados. Quanto à recuperação dos ativos drenados, afirmaram que continuariam a trabalhar com autoridades policiais e terceiros relevantes, incluindo equipes de segurança do setor, para rastrear e tentar recuperar os fundos drenados. Em 22 de outubro de 2024, quase todos os fundos ilícitos já haviam sido transferidos para o Tornado Cash e a Li.Fi ainda não havia publicado relatórios de rastreamento.

Alguns Endereços e Transações Relevantes

Endereços Transações Fluxos de Dinheiro Ilícito
0x8e85eace2fa757c1d97c5ebfb8b0622e5f23c5a1 0xe237, 0x0d23 206,49 ETH
0xcb7c341dc6172b642dcf4a14015be70a27e5b31e 0x050c, 0x37d4 873.568 USDT + 36,48 ETH
0x7b93fa16c04cdcf91949d4f5f893f740992ae57e 0x57ea, 0x52ac 332,02 ETH
0x3462d2523cded523ad47c14111aa1dcbe7773675 0xc66d, 0xc0ff 120,55 ETH
0xd0be9c4c84068a9964c3781f540f703c300db268 0x0c3b, 0x1670 275,38 ETH

Visão geral do fluxo de fundos:

Veja mais no MetaSleuth: https://metasleuth.io/result/eth/0x14c1597cc833783ed8ac08ecc9b704b0a398201d?source=c8cd3609-0402-45eb-bb9e-2f710bd66554

Go Deeper with MetaSleuth Investigation

Extend your crypto compliance capabilities with Blocksec's MetaSleuth Investigation, the first platform for tracing funds, mapping transaction networks and revealing hidden on-chain relationships.

Move from detection to resolution faster with clear visual insights and evidence-ready workflows across the digital assets ecosystem.

MetaSleuth Investigation