As vulnerabilidades mais exploradas nos contratos inteligentes
Embora aparentemente infalível, essa tecnologia ainda está sujeita à exploração por invasores com motivação financeira
Entre os avanços que as criptomoedas estão os contratos inteligentes, que são nada mais que código para operacionalizar uma transação entre partes sem a interferência humana.
O princípio fundamental por trás dessa tecnologia é que a rede distribuída em que opera minimiza o risco de um único ponto de vulnerabilidade – característica de um banco de dados centralizado. Embora aparentemente infalível, essa tecnologia ainda está sujeita à exploração por invasores com motivação financeira.
Há pouco dias assistimos mais uma vez o caso no qual o hype em torno de um projeto foi diretamente implicado, devido à uma falha em seu código, o projeto YAM sofreu um hack e quando a falha ficou exposta, os US$ 90 milhões levantados em poucas horas, foram reduzidos a nada, em poucos minutos.
Qualquer tecnologia que envolva a transferência de moeda atrairá atacantes com motivação financeira. A proliferação de vulnerabilidades dentro das tecnologias de blockchain é principalmente devido à sua documentação limitada e classificação dentro de um sistema completo de auditoria de código.
A quantidade de bugs que estão sendo explorados só tende a crescer e a demanda por segurança nos contratos inteligentes tende a aumentar na mesma proporção. Vejamos a lista de vulnerabilidades já encontradas em smartcontracts da rede Ethereum.
Conhecendo as vulnerabilidades mais exploradas
Reentrada – Um dos maiores perigos de chamar contratos externos é que eles podem assumir o controle do fluxo e fazer alterações em seus dados que a função de chamada não esperava. Essa classe de bug pode assumir várias formas, e os dois principais bugs que levaram ao colapso do DAO eram desse tipo.
Imagem: Smartdec
Reentrância multifuncional – Um invasor também pode fazer um ataque semelhante usando duas funções diferentes que compartilham o mesmo estado.
Imagem: smartquant
Front-Running – Como todas as transações ficam visíveis no mempool por um curto período antes de serem executadas, os observadores da rede podem ver e reagir a uma ação antes que ela seja incluída em um bloco. Um exemplo de como isso pode ser explorado é com uma exchange descentralizada em que uma transação de ordem de compra pode ser vista e a segunda ordem pode ser transmitida e executada antes que a primeira transação seja incluída. Proteger contra isso é difícil, pois dependeria do próprio contrato específico.
A assimetria da informação como arma
Nos mercados financeiros, o fluxo de informações deu origem a intermediários que poderiam simplesmente lucrar sendo os primeiros a saber e reagir a algumas informações. Esses ataques ocorreram principalmente em transações do mercado de ações e nos primeiros registros de domínio, como gateways whois.
No mercado de criptoativos o caso do The DAO é o mais emblemático. Como o uso de criptomoeda digital, tecnologia de blockchain e contratos inteligentes continuam a crescer em popularidade, é necessário estabelecer um mecanismo para classificar essas vulnerabilidades potenciais de uma forma que seja acessível para o público ver e acessar.
Por causa dos investimentos financeiros que foram feitos no espaço, torna-se cada vez mais provável que invasores motivados por ganhos financeiros busquem possíveis vulnerabilidades no sistema.
Esses ataques não incluem apenas problemas de Solidity (a linguagem de programação nativa da rede Ethereum), mas também consistem em código de bytes na Ethereum Virtual Machine (EVM) e problemas inerentes à própria tecnologia de blockchain. Eles confirmam que uma das principais causas da proliferação de vulnerabilidades em blockchains foram a falta de algumas documentações formais sobre os bugs mais frequentes.
LEIA MAIS