imagem em vetor para a logo da empresa chamada Criptos Brasil, com um logo em forma de moeda e etherum em verde e amarelo discretos e modernos em ultra hd

O Roubo de $30 Mil: Como Um Incidente Nos Ensinou Lições Valiosas Sobre Segurança em Contratos Inteligentes

Roubo de $30 Mil Lições de Segurança em Contratos Inteligentes

Imagine acordar em um sábado de manhã, pegar seu celular e descobrir que uma nova funcionalidade do seu site foi explorada, resultando em um roubo de quase $30 mil dólares dos seus usuários.

Parece um pesadelo, certo? Mas foi exatamente isso que aconteceu conosco em 18 de fevereiro de 2023. Vamos mergulhar nessa história, entender o que deu errado e como transformamos essa experiência em uma lição valiosa sobre segurança.

O Alarme Toca: Um Despertar Inesperado

Era madrugada de sábado quando um de nossos usuários postou no Discord: “AVISO: Acabei de ter meu USDC na Polygon roubado após aprová-lo via a funcionalidade de adicionar liquidez de token único da Revert.” Não é exatamente o tipo de mensagem que você espera ver antes do café da manhã.

Pouco tempo depois, outro usuário relatou um problema semelhante. A equipe, toda no mesmo fuso horário, só percebeu o problema às 6:46 da manhã. Foi um despertar abrupto, mas necessário.

Desativando o Problema: A Primeira Linha de Defesa

Assim que percebemos o que estava acontecendo, desativamos imediatamente a funcionalidade “Atomic swap into Uniswap v3 positions” do site. Essa era a nova funcionalidade que havia sido lançada na semana anterior e estava sendo usada pelos usuários afetados.

Se fosse um ataque em andamento, desativar essa funcionalidade impediria que novos usuários fossem prejudicados. Foi como puxar o freio de emergência em um trem desgovernado.

Investigando o Mistério: O Detetive em Ação

Com a funcionalidade desativada, começamos a investigar. Descobrimos que o contrato V3Utils estava envolvido e que havia uma interação com um contrato suspeito, não verificado e recentemente implantado.

Usando a ferramenta Tenderly, identificamos o vetor de ataque: o parâmetro swapRouter estava sendo usado para executar código arbitrário contra o contrato com nosso próprio V3Utils como chamador. Era como se alguém tivesse encontrado uma chave mestra para o cofre.

A Corrida Contra o Tempo: Notificando a Comunidade

Às 7:39 da manhã, postamos no Twitter e no Discord, notificando todos os membros sobre os possíveis endereços de contrato vulneráveis e instando todos a revogar quaisquer saldos aprovados. Foi uma corrida contra o tempo, mas a comunidade respondeu rapidamente.

Em poucas horas, as permissões vulneráveis foram reduzidas para cerca de $30 mil dólares, uma quantia considerável, mas muito menos catastrófica.

O Chapéu Branco: Recuperando o que Foi Perdido

No dia seguinte, ainda havia cerca de $20 mil dólares em permissões não revogadas. Decidimos que a melhor abordagem seria implantar nosso próprio contrato “atacante” para monitorar e executar o ataque descrito, mas com a intenção de reembolsar os usuários.

Foi como se tornar um ladrão para pegar um ladrão, mas com um final feliz.

Lições Aprendidas: Segurança em Primeiro Lugar

Essa experiência nos ensinou que, quando se trata de contratos inteligentes, a segurança deve sempre vir antes da velocidade. Não subestimaremos novamente o risco de qualquer contrato que lide com fundos de usuários, mesmo que temporariamente.

Vamos garantir que todos os nossos futuros lançamentos passem por auditorias externas adequadas.

Agradecimentos: A Força da Comunidade

Por fim, queremos expressar nossa sincera gratidão aos nossos usuários e a todos que nos ofereceram ajuda e apoio. Vocês foram a luz no fim do túnel durante esse incidente. E lembrem-se, na próxima vez que alguém disser que a segurança é chata, conte a eles essa história.

Afinal, um pouco de precaução pode evitar um grande pesadelo.

Share this post :
Facebook
Twitter
LinkedIn
Pinterest

Coversão

Source: CurrencyRate

Últimas postagens