Análise do incidente de ataque de empréstimo flash na Cellframe Network
No dia 1 de junho de 2023, às 10h07min55s (UTC+8), a Cellframe Network foi alvo de um ataque hacker em uma determinada cadeia inteligente devido a um problema no cálculo da quantidade de tokens durante o processo de migração de liquidez. Este ataque resultou em um lucro de cerca de 76.112 dólares para os hackers.
Causa Raiz do Ataque
O problema no cálculo durante o processo de migração de liquidez foi a principal razão para este ataque.
Detalhes do fluxo de ataque
O atacante começa por obter 1000 tokens nativos de uma determinada cadeia e 500000 tokens New Cell através de um empréstimo flash. Em seguida, troca todos os tokens New Cell por tokens nativos, fazendo com que a quantidade de tokens nativos no pool de liquidez se aproxime de zero. Por fim, o atacante troca 900 tokens nativos por tokens Old Cell.
Vale a pena notar que o atacante, antes de lançar o ataque, adicionou previamente a liquidez de Old Cell e de tokens nativos, obtendo tokens lp antigos.
Em seguida, o atacante chamou a função de migração de liquidez. Neste momento, quase não havia tokens nativos na nova piscina, enquanto na piscina antiga quase não havia tokens Old Cell. O processo de migração inclui os seguintes passos:
Remover a liquidez antiga e devolver a quantidade correspondente de tokens aos usuários
Adicionar nova liquidez de acordo com a proporção do novo pool
Devido à quase inexistência de tokens Old Cell na pool antiga, a quantidade de tokens nativos recebidos ao remover a liquidez aumenta, enquanto a quantidade de tokens Old Cell diminui. Isso leva os usuários a precisarem adicionar apenas uma pequena quantidade de tokens nativos e tokens New Cell para obter liquidez, enquanto os tokens nativos em excesso e os tokens Old Cell são devolvidos aos usuários.
Por fim, o atacante remove a liquidez do novo pool e troca os tokens Old Cell retornados da migração por tokens nativos. Neste ponto, o pool antigo tem uma grande quantidade de tokens Old Cell, mas quase nenhum token nativo, e o atacante troca os tokens Old Cell novamente por tokens nativos, completando assim o lucro. Em seguida, o atacante repete a operação de migração.
Sugestões de Segurança
Ao realizar a migração de liquidez, deve-se considerar completamente a variação das quantidades das duas moedas nos antigos e novos pools, bem como o preço atual das moedas. Calcular apenas com base nas quantidades das duas moedas no par de negociação é suscetível a manipulações.
Antes de lançar o código, é imprescindível realizar uma auditoria de segurança abrangente e profunda para identificar e corrigir potenciais vulnerabilidades.
Este incidente destaca novamente a importância da segurança e da qualidade do código no campo das finanças descentralizadas (DeFi). As equipes de projeto precisam manter-se vigilantes e aprimorar as medidas de segurança para proteger os ativos dos usuários e manter o desenvolvimento saudável do ecossistema.
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
A Cellframe Network sofreu um ataque de empréstimo flash, com uma perda de 76 mil dólares.
Análise do incidente de ataque de empréstimo flash na Cellframe Network
No dia 1 de junho de 2023, às 10h07min55s (UTC+8), a Cellframe Network foi alvo de um ataque hacker em uma determinada cadeia inteligente devido a um problema no cálculo da quantidade de tokens durante o processo de migração de liquidez. Este ataque resultou em um lucro de cerca de 76.112 dólares para os hackers.
Causa Raiz do Ataque
O problema no cálculo durante o processo de migração de liquidez foi a principal razão para este ataque.
Detalhes do fluxo de ataque
O atacante começa por obter 1000 tokens nativos de uma determinada cadeia e 500000 tokens New Cell através de um empréstimo flash. Em seguida, troca todos os tokens New Cell por tokens nativos, fazendo com que a quantidade de tokens nativos no pool de liquidez se aproxime de zero. Por fim, o atacante troca 900 tokens nativos por tokens Old Cell.
Vale a pena notar que o atacante, antes de lançar o ataque, adicionou previamente a liquidez de Old Cell e de tokens nativos, obtendo tokens lp antigos.
Em seguida, o atacante chamou a função de migração de liquidez. Neste momento, quase não havia tokens nativos na nova piscina, enquanto na piscina antiga quase não havia tokens Old Cell. O processo de migração inclui os seguintes passos:
Devido à quase inexistência de tokens Old Cell na pool antiga, a quantidade de tokens nativos recebidos ao remover a liquidez aumenta, enquanto a quantidade de tokens Old Cell diminui. Isso leva os usuários a precisarem adicionar apenas uma pequena quantidade de tokens nativos e tokens New Cell para obter liquidez, enquanto os tokens nativos em excesso e os tokens Old Cell são devolvidos aos usuários.
Sugestões de Segurança
Ao realizar a migração de liquidez, deve-se considerar completamente a variação das quantidades das duas moedas nos antigos e novos pools, bem como o preço atual das moedas. Calcular apenas com base nas quantidades das duas moedas no par de negociação é suscetível a manipulações.
Antes de lançar o código, é imprescindível realizar uma auditoria de segurança abrangente e profunda para identificar e corrigir potenciais vulnerabilidades.
Este incidente destaca novamente a importância da segurança e da qualidade do código no campo das finanças descentralizadas (DeFi). As equipes de projeto precisam manter-se vigilantes e aprimorar as medidas de segurança para proteger os ativos dos usuários e manter o desenvolvimento saudável do ecossistema.