WEB3DEV

Cover image for Analisando Backdoors em contratos de tokens fraudulentos | QuillAudits
Arnaldo Pereira Campos Junior
Arnaldo Pereira Campos Junior

Posted on

Analisando Backdoors em contratos de tokens fraudulentos | QuillAudits

Image description

Devido à rápida evolução das tecnologias de blockchain e do sistema econômico digital, as criptomoedas experimentam um crescimento substancial nos últimos anos.

Com a evolução das criptomoedas, houve um aumento de fraudes e golpes. Nos últimos anos, os golpes estão se tornando cada vez mais comuns e custosos e os golpistas estão constantemente evoluindo suas táticas. Só neste mês, cerca de 23 milhões de dólares foram perdidos devido a saídas de golpe e rug pulls (puxões de tapete).

Índice:

1. O que são as backdoors (entradas secretas) em tokens de golpe?

2. Como os golpistas incorporam backdoors em contratos:

3. Alguns estudos de caso do mundo real

4. Dicas de segurança para usuários/investidores

5. Referências

O que são as backdoors (entradas secretas) em tokens de golpe?

Uma exchange descentralizada não impõe nenhuma restrição à listagem de tokens, ou seja, qualquer pessoa pode listar livremente um token e estabelecer um pool de liquidez. Os golpistas podem, portanto, explorar a chance de promover tokens fraudulentos para enganar consumidores desavisados.

Como todos sabemos, contratos inteligentes são programas armazenados em uma blockchain, que são executados quando condições predeterminadas são atendidas. Os golpistas geralmente modificam as funções do contrato inteligente para incorporar códigos maliciosos aos contratos. Eles geralmente manipularão as tarefas com a transferência de dinheiro, como impedir que os usuários vendam, aumentar o valor da taxa etc., o que bloqueará o dinheiro do usuário em um contrato e eles fugirão facilmente com os fundos dos usuários/investidores.

Como os golpistas incorporam backdoors em contratos:

Agora vamos ver alguns exemplos de como os hackers estão construindo moedas de golpe para enganá-lo a comprá-las e, em seguida, roubar todo o seu dinheiro. A maioria das vezes esses contratos são escondidos e não verificados, então ninguém poderia lê-los on-chain. O proprietário geralmente controla a função mais crítica relacionada às transferências de dinheiro dos contratos inteligentes:

1. Definindo taxas máximas para compra e venda:

Os golpistas ou desenvolvedores do projeto têm acesso para definir taxas e se não houver um limite superior definido para as taxas, eles podem definir as taxas máximas para vender seu token, que pode ser até 100%. Imagine que você tem um token com valor de US$ 500, e para vender esses tokens você precisa pagar mais US$ 500.

Geralmente, o código não verifica o valor máximo ao definir taxas. Os golpistas geralmente diminuem a cobrança no lançamento, depois aumentam-na uma vez que os usuários compram tokens para impedir vendas de tokens e, em seguida, vendem todos os tokens para lucrar.

2. BlackListing de usuários por proprietário

Nessa técnica, depois que os investidores ou usuários investem em tokens, os golpistas geralmente colocam esses usuários em uma blacklist (lista negra) para impedi-los de fazer mais negociações com os tokens. Após a blacklisting, os usuários não podem realizar nenhuma compra ou venda desses tokens. Dessa forma, os golpistas efetivamente roubaram os fundos dos usuários

3. Proprietário pode queimar tokens de qualquer EOA

O proprietário ou desenvolvedor também pode incorporar código malicioso na função de gravação que pode permitir que o proprietário grave tokens do EOA (Contas de Propriedade Externas) de qualquer pessoa. Depois que os usuários e investidores compram o token fraudulento, o proprietário pode queimar rapidamente todos os seus tokens para aumentar o preço do token e simplesmente drenar o pool.

4. Proprietário pode criar tokens infinitos:

A função Mint é perigosa nos tokens do tipo ERC20. O proprietário malicioso pode criar tokens infinitos e vender os novos tokens com 100% de liquidez. Os usuários e investidores ficam, assim, com tokens praticamente sem valor.

5. Os tokens não permitem que o comprador revenda e somente o proprietário pode vender

O golpe do Squid coin foi uma variação popular desse golpe que ocorreu recentemente. As pessoas compravam tokens para jogos online com a esperança de lucrar. Mas foi descoberto posteriormente que os usuários não podiam vender seus tokens. O valor do token Squid aumentou de um centavo para quase US$ 90 por token.

O valor do token, então, diminuiu para quase zero depois que o proprietário esvaziou o pool.

6. Ocultando Código Malicioso em Contrato Externo

O código malicioso pode ser escondido pelos golpistas em contratos ou bibliotecas externas para enganar as vítimas. Os usuários podem criar uma função semelhante que pareça legítima e contenha código malicioso relacionado à transferência de fundos ou bloqueio de fundos dos usuários no contrato.

Portanto, é crucial estudar e compreender o código antes de fazer qualquer transação financeira ao interagir com contratos inteligentes na blockchain.

alt_text

Alguns estudos de caso do mundo real:

1. DeFi Safe (token dSafe):

Nesse caso, o proprietário colocou na blacklisted todos os EOAs do detentor do token e, finalmente, removeu a liquidez. Vamos analisá-lo melhor:

Endereço do contrato: 0x761776f726168c9dF6dC63d5864880801E21F403

O proprietário controla a função addToBlacklist, que é um vector rug (vetor tapete) aqui:

alt_text

O invasor primeiro chamou a função addtoblacklist e adicionou os detentores de token à blacklist. Em seguida, o invasor simplesmente removeu a liquidez e ganhou cerca de US$ 127,5 mil.

alt_text

2. Projeto GDS:

Nesse caso, o proprietário aumenta as taxas de venda para impedir que qualquer usuário venda os tokens. Vamos analisá-lo melhor:|

Endereço do Contrato: 0x7f19bF116B0F0a4af7d4464CbF584fE75a243fc9

Aqui, os proprietários podem definir qualquer taxa que desejarem, não há limite superior aqui:

alt_text

O invasor chamou a função setFee e definiu _sellFee para 9900, o que impediu os usuários de retirar seus tokens e finalmente removeu a liquidez do pool, obtendo um lucro de cerca de US$ 60.000.

alt_text

alt_text

3. Token Brise:

Nesse caso, o proprietário do contrato pode queimar o token de qualquer usuário da carteira. Vamos analisar:

Endereço do contrato: 0xb6c353d519d7721b18c813130625d04de4f53580

alt_text

Depois que o usuário comprou os tokens, o proprietário queimou rapidamente todos os seus tokens para aumentar o preço do token e simplesmente drenou o pool.

alt_text

Um pequeno desafio:

Identifique o vector rug no contrato fornecido e explique como o proprietário pode aplicar rug aos usuários. Comente com suas respostas na seção de comentários:


contract rugPull is ownable {

  // o código rest é bem implementado



  uint public totalSupply;

  mapping(address => uint) public balanceOf;



  function mint(uint amount) external onlyOwner {

    balanceOf[msg.sender] += amount;

    emit Transfer(address(0), msg.sender, amount);

  }

}

contract rugPull2 is ownable {

   // o código rest é bem implementado

  function setMaxTxAmount(uint maxTxAmount) external onlyOwner {

    _maxTxAmount = maxTxAmount;

  }



  function withdraw(address recipient, uint amount) public {

    require(amount <= _maxTxAmount);

    require(from != address(0));

    require(to != address(0));



    _withdraw(recipient, amount);

  }

}

Enter fullscreen mode Exit fullscreen mode

Dicas de segurança para usuários/investidores:

  1. Nunca invista em contratos que não sejam verificados ou ocultos.
  2. Não siga cegamente nenhum influenciador.
  3. Faça sua pesquisa sobre os projetos, fundador etc., e se você encontrar alguma bandeira vermelha , não invista.
  4. Nunca invista em nenhum projeto que não tenha Auditoria de Segurança.
  5. Sempre verifique novamente qualquer notícia relacionada a tokens. Apenas olhando de perto, você pode descobrir, até certo ponto, se é uma notícia falsa.

Referências:

https://research.checkpoint.com

https://arxiv.org/pdf/2109.00229.pdf

Esse artigo foi escrito por QuillAudits Team e traduzido por Arnaldo Campos. Seu original pode ser lido Aqui.

Top comments (0)