Especialistas afirmam que exploração de US$ 730 mil na SuperRare era evitável
A recente situação da SuperRare, uma plataforma que negocia NFTs, trouxe à tona questões importantes sobre segurança digital. Na segunda-feira, a empresa enfrentou um ataque que resultou em um prejuízo de 730 mil dólares devido a uma falha em seu contrato inteligente. Para especialistas, esse problema era bem mais fácil de evitar do que se imagina, bastando um teste padrão.
O ataque pegou de surpresa muitos, já que ocorreu no contrato de staking da SuperRare, onde cerca de 731 mil dólares em tokens RARE foram roubados. Esse dado foi confirmado pela Cyvers, uma empresa especializada em cibersegurança. O que aconteceu? Uma função específica, que deveria limitar a modificação da raiz de Merkle a apenas alguns endereços, foi escrita de forma errada. Assim, qualquer um conseguiu interagir com essa função, facilitando a ação dos hackers.
Um dos desenvolvedores mais renomados, 0xAw, até mencionou que o erro era tão óbvio que até mesmo ferramentas como o ChatGPT conseguiriam identificá-lo. E, de fato, foi verificado que tais ferramentas puderam detectar a falha durante os testes.
O cofundador da SuperRare, Jonathan Perkins, afirmou que não houve perda de recursos no protocolo principal e que todos os usuários afetados seriam compensados. Foram aproximadamente 61 carteiras impactadas pelo ataque. Ele prometeu que a empresa aprenderia com a experiência e que melhorias nos processos de revisão seriam implementadas.
Anatomia de uma vulnerabilidade
A questão principal estava na lógica que determinava se a raiz de Merkle poderia ser alterada ou não. O contrato estava verificado de maneira errada, permitindo que qualquer um pudesse retirar os tokens em staking. Isso mostra como uma simples confusão na programação pode causar grandes problemas.
Um engenheiro da Nexus Mutual ressaltou que testes apropriados poderiam ter identificado esse erro. Mike Tiutin, que é arquiteto de blockchain, também mencionou que foi uma falha básica do desenvolvedor, resultado da ausência dos testes adequados. Slava Demchuk, CEO da AMLBot, reforçou a necessidade de testes rigorosos e de programas que identificassem falhas antes do lançamento. Ele ressaltou que, mesmo um pequeno detalhe na programação pode acarretar consequências graves em sistemas descentralizados.
Perkins acrescentou que, embora os contratos tivessem sido auditados e testados, o problema foi introduzido tardiamente e não foi identificado nas últimas fases de teste. Ele mesmo reconheceu que isso serve como um lembrete de como pequenas mudanças podem afetar sistemas complexos.
A importância dos testes unitários
Os testes unitários são fundamentais, pois avaliam se partes específicas de um programa funcionam como deveriam. Cada teste tem como meta identificar comportamentos ou resultados esperados a partir de dados fornecidos. No caso da SuperRare, a falha nos testes que verificariam a função de modificação da raiz de Merkle poderia ter evitado todo esse problema.
Demchuk também comentou que, devido à falta de cuidado ou a uma cobertura de testes insuficiente, a plataforma enfrentou essa vulnerabilidade grave. 0xAw ressaltou que o problema foi a total ausência de testes e enfatizou que o código estava funcionando de forma inversa ao esperado.
Diante dessa situação, Perkins assegurou que a SuperRare adotaria novos procedimentos, exigindo auditorias para quaisquer alterações, mesmo as mais simples.
A maioria das vulnerabilidades é causada por descuidos
Para 0xAw, o erro foi um típico “erro humano”, mas o que ele considera um deslize significativo é que o problema chegou até a produção sem ser notado. Ele argumentou que a grande maioria das brechas de segurança vem de erros simples e que poderiam ser evitados. Contudo, admitiu que, na maior parte das vezes, esses deslizes são um pouco mais disfarçados do que o que ocorreu na SuperRare.
Yehor Rudytsia, responsável pela resposta a incidentes na Hacken, concordou que um teste mais completo poderia ter evitado essa falha. Ele também ressaltou que, ao revisar a função em questão, percebeu que o erro era notavelmente óbvio.