Da cura ao veneno: Por que a permissão se tornou uma fonte de risco

1. O que é Permissão?

Vamos começar com uma pequena história sobre empréstimo de dinheiro:

Imagine que eu queira pedir 1 milhão emprestado ao meu amigo Jack Ma. Sem hesitar, Jack pega o telefone e liga para o banco, confirmando sua identidade e instruindo-o a autorizar um limite de saque de 1 milhão para mim. O banco registra essa autorização, e tudo o que preciso fazer é ir ao banco, identificar-me e sacar o valor autorizado. Se o banco não conseguir encontrar a autorização, minha solicitação será negada.

Agora, vamos explorar como esse processo muda com um método diferente – Permissão. Nesse cenário, quando peço 1 milhão ao Jack, ele casualmente saca um cheque, preenche o valor, assina-o e o entrega a mim. Eu levo o cheque ao banco e, mesmo sem um registro de autorização, o banco o desconta com base na assinatura de Jack.

Isso ilustra a diferença entre Approve e Permit. O Approve, um recurso essencial do ERC-20, tem sido amplamente utilizado desde o lançamento da Ethereum. Mas por que o Permit foi introduzido mais tarde por meio do ERC-2612 para obter o mesmo efeito?

2. Por que a permissão foi necessária?

A proposta ERC-2612 foi apresentada em março de 2019 e finalizada em outubro de 2022. Seu desenvolvimento coincidiu com vários picos nos preços do gás da Ethereum. O frenesi do mercado durante as corridas de alta levou os usuários a gastar mais em taxas de gás para transações mais rápidas, em que até mesmo uma vantagem de um bloco poderia significar um lucro substancial.

No entanto, esse fenômeno criou um ônus para os usuários, pois o processo de duas transações necessário para a aprovação tornou-se caro, especialmente para aqueles com fundos menores. A introdução do Permit permitiu a assinatura off-line, eliminando a necessidade de autorização imediata na cadeia. Essa mudança significou que a autorização poderia ser fornecida juntamente com a transferência do token, semelhante a descontar um cheque sem a necessidade de aprovação bancária prévia.

Embora isso parecesse benéfico – economizar uma ligação telefônica para Jack e reduzir as taxas de transação do usuário -, inadvertidamente abriu a caixa de Pandora.

3. O rápido aumento dos riscos

Antes do Permit, os hackers geralmente recorriam a métodos de phishing que exigiam que os usuários assinassem transações de aprovação, o que acarretava taxas de gás e levantava suspeitas. Mesmo que os usuários clicassem acidentalmente, o tempo de atraso das transações na cadeia permitia que eles revertessem a ação com uma nova transação.

A permissão, no entanto, mudou o jogo. Ele elimina as taxas de gás, exigindo apenas uma assinatura, o que diminui a vigilância do usuário. Como a assinatura é off-line, os hackers podem assumir o controle e explorar a situação sempre que desejarem, maximizando seus ganhos.

O impacto dessa mudança é evidente no número crescente de vítimas de phishing e nos valores roubados. De acordo com o @ScamSniffer:

  • Em 2023, as perdas com phishing chegaram a US$ 295 milhões.
  • Em meados de 2024, esse valor já havia ultrapassado US$ 314 milhões.
  • No terceiro trimestre de 2024, um incidente significativo envolveu uma carteira que foi vítima de um ataque de phishing do Permit, resultando em uma perda de 12.000 $spWETH, avaliados em aproximadamente US$ 30 milhões.

Esses resultados provavelmente não foram previstos pelos desenvolvedores que propuseram o Permit, inicialmente com o objetivo de reduzir os custos de gás e melhorar a experiência do usuário. O que era para ser uma faca de dois gumes acabou se tornando uma faca afiada, cortando as barreiras de proteção em torno dos ativos dos usuários.

Surgiram métodos de assinatura off-line semelhantes, como o Permit2 do Uniswap, que aumenta a dependência da assinatura off-line e amplia os riscos de phishing.

O que é Permissão?

4. Como se proteger

Diante dessa ameaça iminente, os usuários podem tomar várias precauções para reduzir as perdas:

1. Aumentar a conscientização

  • Seja cauteloso com as tentações de lançamento aéreo: Os airdrops podem ser atraentes, mas muitos são tentativas de phishing. Sempre verifique a legitimidade de um lançamento aéreo por meio de várias fontes antes de participar.
  • Evite a assinatura cega: Se você entrar inadvertidamente em um site de phishing e aparecer uma janela de transação, examine os detalhes da transação. Termos como Permit, Permit2, Approve ou IncreaseAllowance indicam possíveis problemas de autorização, o que justifica cautela. As carteiras de hardware, como a Keystone, podem ajudar analisando e exibindo os detalhes da transação, evitando ações impulsivas.

2. Utilizar ferramentas

  • ScamSniffer: Essa extensão de navegador alerta os usuários antes de inserir URLs suspeitos, permitindo que eles interrompam as interações imediatamente.
  • Revogar: Revoke.cash exibe registros de autorização de token em sua carteira, aconselhando os usuários a revogar quaisquer autorizações suspeitas ou ilimitadas. A limpeza regular das autorizações minimiza os riscos.

3. Isolamento de ativos e carteiras com várias assinaturas

O ditado “não coloque todos os seus ovos em uma única cesta” também se aplica aos ativos criptográficos. Armazene ativos significativos em carteiras frias, como a Keystone, usando pequenas carteiras quentes para as transações diárias. Dessa forma, mesmo que uma carteira seja comprometida, nem todos os ativos estarão em risco.

Para maior segurança, as carteiras com várias assinaturas podem oferecer mais proteção. Os ativos só podem ser acessados com um número predeterminado de aprovações de carteira, garantindo que uma única carteira comprometida não resulte em perda total.

5. Conclusão

Embora não possamos negar o valor que o Permit traz, o número crescente de roubos sugere que seus riscos podem superar seus benefícios. Semelhante ao método ethsign, outrora predominante, que acabou sendo abandonado devido a preocupações com a segurança, o Permit agora enfrenta um momento crítico. Os desenvolvedores devem considerar cuidadosamente se devem aprimorar ou abandonar esse método daqui para frente.