Análise de Segurança de Contratos NFT: Eventos Típicos e Problemas Comuns
No primeiro semestre de 2022, ocorreram frequentemente incidentes de segurança no campo dos NFTs, resultando em perdas econômicas significativas. De acordo com a monitorização de plataformas de dados, durante esse período, ocorreram um total de 10 incidentes de segurança principais, com perdas totais de cerca de 64,9 milhões de dólares. Os métodos de ataque incluíram principalmente a exploração de vulnerabilidades em contratos, a divulgação de chaves privadas e phishing, entre outros. Ao mesmo tempo, servidores do Discord foram alvo de ataques frequentes, levando a situações em que usuários individuais sofreram perdas devido a cliques em links de phishing.
Análise de Eventos de Segurança Típicos
Evento TreasureDAO
No dia 3 de março de 2022, a plataforma de negociação TreasureDAO foi invadida por hackers, resultando no roubo de mais de 100 NFTs. A raiz do incidente está em uma falha lógica no contrato TreasureMarketplaceBuyer. O contrato não verifica o tipo de token na função buyItem, calculando o totalPrice diretamente multiplicando _quantity por _pricePerItem, permitindo que os atacantes comprassem tokens com um pagamento de 0 em tokens ERC-20. Este problema decorre da confusão lógica causada pelo uso misto de tokens ERC-1155 e ERC-721, sendo que os tokens ERC-721 não têm conceito de quantidade, mas o contrato calcula o preço com base na quantidade, e a implementação da transferência não separou a lógica.
Evento de airdrop da APE Coin
Em 17 de março de 2022, hackers obtiveram mais de 60.000 APE Coin airdrop através de um empréstimo relâmpago. O contrato de airdrop do GrapesToken apresentava uma vulnerabilidade lógica, utilizando apenas alpha.balanceOf() e beta.balanceOf() para determinar a propriedade do chamador sobre os NFTs BAYC/MAYC. Esse método só consegue capturar o estado momentâneo da propriedade do NFT pelo usuário, e esse estado pode ser manipulado por um empréstimo relâmpago. Os atacantes exploraram essa vulnerabilidade, emprestando o NFT BAYC através de um empréstimo relâmpago e obtendo o respectivo airdrop.
Evento Revest Finance
No dia 27 de março de 2022, a Revest Finance sofreu um ataque hacker, resultando em uma perda de cerca de 120.000 dólares. Havia uma vulnerabilidade de reentrada no contrato da Revest, com o padrão ERC-1155. Quando um usuário usa depositAdditionalToFNFT() para adicionar ativos de colateral FNFT, o contrato precisa primeiro destruir o FNFT original e, em seguida, cunhar um novo FNFT. No entanto, a função min() não verificou se o FNFT a ser cunhado já existia, e o incremento do fnftId foi executado após _mint(). A chamada externa em _min() para _doSafeTransferAcceptanceCheck() resultou na vulnerabilidade de reentrada.
NBA aproveitamento de vantagens
No dia 21 de abril de 2022, o projeto da NBA foi alvo de um ataque hacker. O contrato The_Association_Sales apresenta dois grandes problemas com a verificação de assinatura na lista branca: a reutilização de assinatura, que ocorre porque o contrato não armazena assinaturas já utilizadas, permitindo que o atacante as reutilize; e a falsificação de assinatura, que acontece porque o parâmetro info do vData memory não verifica o msg.sender ao passar os parâmetros.
Evento Akutar
Em 23 de abril de 2022, o contrato AkuAuction do projeto Akutar foi bloqueado devido a uma vulnerabilidade no contrato inteligente, resultando em 11539ETH( cerca de 34 milhões de dólares) sendo travados. O contrato apresentava duas vulnerabilidades lógicas: a primeira é que a função de reembolso processRefunds usava a função call para reembolsos e utilizava o resultado como condição de verificação, permitindo que um atacante revertesse maliciosamente no fallback para impedir o reembolso; a segunda é que a condição de verificação na função de reembolso não considerava que os usuários poderiam licitar em múltiplos NFTs, o que impediu a execução de operações de reembolso subsequentes.
Evento XCarnival
No dia 24 de junho de 2022, o protocolo de empréstimos NFT XCarnival foi atacado, e os hackers lucraram 3087 Éteres (, cerca de 3,8 milhões de dólares ). A função pledgeAndBorrow do contrato XNFT não verificou se o endereço xToken estava na lista branca ao fazer a garantia de NFT, e não verificou o estado do registro de garantia durante o empréstimo, permitindo que os atacantes utilizassem repetidamente registros de garantia inválidos para emprestar.
Perguntas Frequentes sobre Auditoria de Contratos NFT
Uso indevido e reutilização de assinaturas:
Os dados da assinatura estão faltando a verificação de execução duplicada, podendo reutilizar os dados da assinatura para cunhar NFT
Verificação de assinatura não razoável, qualquer usuário pode cunhar através da verificação
Falha lógica:
O administrador pode cunhar moedas de maneira especial sem limitações de quantidade total, resultando em uma quantidade real de NFT superior à esperada.
Ao leiloar NFTs, o vencedor pode modificar o preço da licitação através de um ataque de dependência da ordem de transação, obtendo o NFT a um preço baixo.
Ataque de reentrada ERC721/ERC1155:
Ao usar a funcionalidade de notificação de transferência, a contrato NFT pode enviar uma chamada para o contrato de destino, o que pode levar a um ataque de reentrada.
Escopo de autorização excessivo:
A aprovação do operador _operatorApprovals é necessária ao fazer staking ou leilão, o que pode resultar em risco de roubo de NFT
Manipulação de preços:
O preço do NFT depende da quantidade de tokens de um determinado contrato, os atacantes podem utilizar empréstimos relâmpago para aumentar o preço, resultando em liquidações anormais de NFTs em garantia.
Dada a frequência de eventos de segurança em contratos NFT, e a exploração recorrente de vulnerabilidades comuns em auditorias, é extremamente necessário buscar uma empresa de segurança profissional para realizar uma auditoria completa dos contratos NFT.
Ver original
Esta página pode conter conteúdos de terceiros, que são fornecidos apenas para fins informativos (sem representações/garantias) e não devem ser considerados como uma aprovação dos seus pontos de vista pela Gate, nem como aconselhamento financeiro ou profissional. Consulte a Declaração de exoneração de responsabilidade para obter mais informações.
11 gostos
Recompensa
11
9
Partilhar
Comentar
0/400
SerumDegen
· 07-26 15:03
mais um dia, mais um hack... clássico do web3 smh
Ver originalResponder0
CompoundPersonality
· 07-26 10:33
Esses bugs de contrato são todos tigres de papel.
Ver originalResponder0
BearMarketBuyer
· 07-26 08:12
novato perdeu cinquenta mil
Ver originalResponder0
DefiOldTrickster
· 07-25 07:36
Brinquei neste meio por dez anos e vi quantos idiotas foram feitos de parvas. Será que eles merecem perder assim?
Ver originalResponder0
TokenSleuth
· 07-23 15:36
Com tantos buracos nos contratos, quem se atreve a comprar?
Ver originalResponder0
pumpamentalist
· 07-23 15:36
Mais um peixe foi apanhado.
Ver originalResponder0
SelfCustodyBro
· 07-23 15:31
Com uma proteção tão ruim, como ainda se atreve a entrar na cadeia?
Análise de riscos de segurança de contratos NFT: Análise de 6 eventos típicos e interpretação de 5 questões comuns
Análise de Segurança de Contratos NFT: Eventos Típicos e Problemas Comuns
No primeiro semestre de 2022, ocorreram frequentemente incidentes de segurança no campo dos NFTs, resultando em perdas econômicas significativas. De acordo com a monitorização de plataformas de dados, durante esse período, ocorreram um total de 10 incidentes de segurança principais, com perdas totais de cerca de 64,9 milhões de dólares. Os métodos de ataque incluíram principalmente a exploração de vulnerabilidades em contratos, a divulgação de chaves privadas e phishing, entre outros. Ao mesmo tempo, servidores do Discord foram alvo de ataques frequentes, levando a situações em que usuários individuais sofreram perdas devido a cliques em links de phishing.
Análise de Eventos de Segurança Típicos
Evento TreasureDAO
No dia 3 de março de 2022, a plataforma de negociação TreasureDAO foi invadida por hackers, resultando no roubo de mais de 100 NFTs. A raiz do incidente está em uma falha lógica no contrato TreasureMarketplaceBuyer. O contrato não verifica o tipo de token na função buyItem, calculando o totalPrice diretamente multiplicando _quantity por _pricePerItem, permitindo que os atacantes comprassem tokens com um pagamento de 0 em tokens ERC-20. Este problema decorre da confusão lógica causada pelo uso misto de tokens ERC-1155 e ERC-721, sendo que os tokens ERC-721 não têm conceito de quantidade, mas o contrato calcula o preço com base na quantidade, e a implementação da transferência não separou a lógica.
Evento de airdrop da APE Coin
Em 17 de março de 2022, hackers obtiveram mais de 60.000 APE Coin airdrop através de um empréstimo relâmpago. O contrato de airdrop do GrapesToken apresentava uma vulnerabilidade lógica, utilizando apenas alpha.balanceOf() e beta.balanceOf() para determinar a propriedade do chamador sobre os NFTs BAYC/MAYC. Esse método só consegue capturar o estado momentâneo da propriedade do NFT pelo usuário, e esse estado pode ser manipulado por um empréstimo relâmpago. Os atacantes exploraram essa vulnerabilidade, emprestando o NFT BAYC através de um empréstimo relâmpago e obtendo o respectivo airdrop.
Evento Revest Finance
No dia 27 de março de 2022, a Revest Finance sofreu um ataque hacker, resultando em uma perda de cerca de 120.000 dólares. Havia uma vulnerabilidade de reentrada no contrato da Revest, com o padrão ERC-1155. Quando um usuário usa depositAdditionalToFNFT() para adicionar ativos de colateral FNFT, o contrato precisa primeiro destruir o FNFT original e, em seguida, cunhar um novo FNFT. No entanto, a função min() não verificou se o FNFT a ser cunhado já existia, e o incremento do fnftId foi executado após _mint(). A chamada externa em _min() para _doSafeTransferAcceptanceCheck() resultou na vulnerabilidade de reentrada.
NBA aproveitamento de vantagens
No dia 21 de abril de 2022, o projeto da NBA foi alvo de um ataque hacker. O contrato The_Association_Sales apresenta dois grandes problemas com a verificação de assinatura na lista branca: a reutilização de assinatura, que ocorre porque o contrato não armazena assinaturas já utilizadas, permitindo que o atacante as reutilize; e a falsificação de assinatura, que acontece porque o parâmetro info do vData memory não verifica o msg.sender ao passar os parâmetros.
Evento Akutar
Em 23 de abril de 2022, o contrato AkuAuction do projeto Akutar foi bloqueado devido a uma vulnerabilidade no contrato inteligente, resultando em 11539ETH( cerca de 34 milhões de dólares) sendo travados. O contrato apresentava duas vulnerabilidades lógicas: a primeira é que a função de reembolso processRefunds usava a função call para reembolsos e utilizava o resultado como condição de verificação, permitindo que um atacante revertesse maliciosamente no fallback para impedir o reembolso; a segunda é que a condição de verificação na função de reembolso não considerava que os usuários poderiam licitar em múltiplos NFTs, o que impediu a execução de operações de reembolso subsequentes.
Evento XCarnival
No dia 24 de junho de 2022, o protocolo de empréstimos NFT XCarnival foi atacado, e os hackers lucraram 3087 Éteres (, cerca de 3,8 milhões de dólares ). A função pledgeAndBorrow do contrato XNFT não verificou se o endereço xToken estava na lista branca ao fazer a garantia de NFT, e não verificou o estado do registro de garantia durante o empréstimo, permitindo que os atacantes utilizassem repetidamente registros de garantia inválidos para emprestar.
Perguntas Frequentes sobre Auditoria de Contratos NFT
Uso indevido e reutilização de assinaturas:
Falha lógica:
Ataque de reentrada ERC721/ERC1155:
Escopo de autorização excessivo:
Manipulação de preços:
Dada a frequência de eventos de segurança em contratos NFT, e a exploração recorrente de vulnerabilidades comuns em auditorias, é extremamente necessário buscar uma empresa de segurança profissional para realizar uma auditoria completa dos contratos NFT.