Compartilhe este artigo

Como os aplicativos Ethereum ganham classificações de segurança A+

Mais de 1,2 milhão de aplicativos Ethereum usaram uma ferramenta de segurança pouco conhecida da Amberdata para ajudar a evitar erros dispendiosos de contratos inteligentes.

Mais de 1,2 milhão de aplicativos Ethereum usaram uma ferramenta de segurança pouco conhecida para ajudá-los a evitar os erros dispendiosos decorrentes de linhas de código autoexecutáveis ​​conhecidas como contratos inteligentes.

Lançada pela startup de Tecnologia Ethereum Amberdata em outubro, a ferramenta gratuita está disponível para qualquer pessoa do público em geral interpretar a segurança de aplicativos ativos no blockchain Ethereum . Contratos inteligentes com bugs que foram explorados levaram a enormes perdas, até mesmo na ordem decentenas de milhões.

A História Continua abaixo
Não perca outra história.Inscreva-se na Newsletter Crypto Long & Short hoje. Ver Todas as Newsletters

O serviço automatizado verifica vulnerabilidades comuns encontradas no código do contrato inteligente e gera uma classificação de grau (por exemplo, A, B ou C) para a segurança de um aplicativo descentralizado (aplicativo).

O recurso é uma das muitas ferramentas que incentivam as melhores práticas e maior transparência entre desenvolvedores de dapp e usuários finais no ecossistema Ethereum .

Além disso, é um recurso que já existe no espaço mais amplo da web há algum tempo. O navegador focado em privacidade DuckDuckGo lançou recentemente uma extensão do navegador Chrome usada para classificar sites (não dapps) com uma nota de letra, dando aos usuários uma visão fácil de quão bem ou mal os administradores de serviço protegem a Política de Privacidade do usuário.

“Nossa visão é elevar o padrão de confiança online”, escreve DuckDuckGo em umpostagem de bloga partir de janeiro de 2017.

Da mesma forma, a visão por trás da ferramenta de classificação de segurança da Amberdata, conforme destacado pelo CEO da Amberdata, Shawn Douglass, em um comunicado à imprensa, é fornecer "maior acesso e visibilidade aprimorada aos contratos inteligentes".

Ele acrescentou:

"Esperamos que, ao fornecer essas ferramentas à comunidade, possamos reduzir as dependências externas e permitir que a comunidade se desenvolva com mais rapidez e segurança."

As classificações

Mas como exatamente esses aplicativos no Ethereum são avaliados na Amberdata?

Apontando para 13 tipos de vulnerabilidades escaneadas automaticamente pelo programa, o CTO da Amberdata, Joanes Espanol, comparou cada uma delas a “luzes de motor no painel [de um carro]”.

"Significa apenas que preciso verificar o que está acontecendo com o carro. Qualquer um desses pode resultar em erro de segurança", explicou Espanol ao CoinDesk.

E quanto mais erros de segurança forem detectados pelo scan de segurança da Amberdata, menor será a nota de letras do alfabeto que um dapp receberá. Essas classificações variam de A+ até F.

Mas elas T dependem estritamente do número de erros de segurança. Cada uma das 13 vulnerabilidades tem graus variados de gravidade, explica Espanol, que impactarão a nota final de um dapp. Duas vulnerabilidades comuns de baixa gravidade marcadas por Espanol incluem “chamada de delegado para um endereço fornecido pelo usuário” e “chamada de mensagem para contrato externo”.

Este último pode representar um risco potencial de segurança se um dapp, em vez de ser independente em um contrato inteligente, chamar contratos adicionais que possuem código com bugs.

Da mesma forma, uma chamada de delegado é outra operação normalmente usada para dividir o código do contrato inteligente em vários subcontratos, para que quaisquer atualizações necessárias no software possam ser feitas aos poucos, sem encerrar o aplicativo inteiro.

“Essa é a parte boa dessas chamadas de delegados. Mas a parte ruim é que agora, como proprietário do contrato, eu poderia começar a fazer coisas ruins. Então, eu poderia começar a substituir contratos que alteram o comportamento do [aplicativo] original”, explicou Espanol.

Assim, em ambos os casos, Espanol descreveu a auditoria de segurança como envio de “avisos”, em vez de apontar erros de código imediatos.

De fato, um desses dapps que atualmente alavanca a chamada de mensagem e anteriormente implantou uma atualização de contrato inteligente usando o retorno de chamada de delegado em janeiro é o TrueUSD. Criado pela startup de blockchain TrustToken, o stablecoin lastreado em USD no Ethereum está atualmente classificado com um Nota C.

Embora isso T pareça bom, olhando para as vulnerabilidades sinalizadas para o TrueUSD, o engenheiro de segurança da TrustToken, William Morriss, disse ao CoinDesk em uma entrevista anterior que todas as preocupações identificadas não eram, na verdade, "críticas".

“As vulnerabilidades que estão sendo relatadas não são formas pelas quais podemos ser atacados… Estamos cientes delas e quando as pessoas nos trazem vulnerabilidades, nós as tratamos muito seriamente”, disse Morriss.

Elaborando especificamente sobre a questão das chamadas de mensagens, Morriss acrescentou que, para o TrueUSD, todos os contratos externos são de propriedade e operados pelas próprias empresas, em oposição a terceiros com padrões de segurança potencialmente mais baixos.

Como obter um A+

Erros de gravidade "alta" afetarão mais a classificação de segurança do aplicativo porque indicam um maior potencial de erro de código e exploração.

Um dos mais comuns, “estouro de inteiro”, indica que operações realizadas dentro de um contrato inteligente podem gerar valores que excedem as limitações do código, levando a um comportamento estranho e imprevisível que, no pior dos casos, pode levar à perda de fundos.

O outro lado é o “underflow de inteiro”, outra vulnerabilidade de severidade “alta”, pela qual o exato inverso pode acontecer e um valor abaixo do intervalo definido causa, da mesma forma, uma saída errônea.

Há também alguns recursos no Solidity que os desenvolvedores de dapp devem evitar, de acordo com o sistema de classificação da Amberdata, incluindo “suicide()” e “tx.origin”. Este último é descrito por Espanol como “código obsoleto” que pode ser removido completamente da linguagem Solidity em uma data futura, enquanto o primeiro apresenta risco de ser sequestrado por terceiros para congelar fundos de usuários - que eles nunca poderão recuperar.

Como T possui nenhuma dessas quatro vulnerabilidades, o infamemente O popular aplicativo Ethereum CryptoKitties atualmente tem um Um+classificação de segurança no Amberdata. O engenheiro de software da CryptoKitties, Fabiano Soriani, atribui isso a “implementar o máximo de testes que pudermos”.

Acrescentando que “recursos passivos” como documentação escrita e tutoriais em vídeo sobre desenvolvimento de dapp não são suficientes para construir aplicativos seguros no Ethereum, Soriani disse ao CoinDesk:

“Quando alguém faz uma auditoria, eles apontam coisas Para Você. É um recurso complementar muito bom [para recursos passivos] porque desenvolvedores vindos de um background mais tradicional T estão familiarizados com blockchain.”

'É um novo conjunto de problemas'

De fato, quando se trata de construir dapps, a importância de um código hermético e impenetrável não pode ser subestimada. O raciocínio CORE para isso é duplo.

Primeiro, diferentemente dos aplicativos tradicionais, os dapps geralmente são programas de computador de código aberto e, como Morriss explica, "um nível maior de cautela" é necessário ao executar código "público".

"Se houver algum bug em um aplicativo tradicional, você pode conseguir escapar dele por vários anos... mas se houver um bug em seu contrato inteligente, as pessoas vão encontrá-lo rapidamente e tirar vantagem disso, seja para sua destruição ou para o benefício delas", disse Morriss.

Em segundo lugar, os dapps no Ethereum são executados exclusivamente em contratos inteligentes. Especialmente codificados na linguagem de programação Solidity e executados no centro nervoso do blockchain, chamado de Máquina Virtual Ethereum (EVM), um ponto forte dos dapps é que eles T podem ser alterados.

A desvantagem disso é óbvia. Os programadores não conseguem corrigir facilmente erros ou bugs no software uma vez implantado no blockchain.

Chamando de "erro grave" pular uma auditoria ou verificação de segurança de terceiros por esses motivos, Morriss disse ao CoinDesk que era importante que os desenvolvedores não se tornassem vítimas de sua própria "arrogância" e garantissem que "os testes estivessem cobrindo todas as ramificações do seu código".

“Com o Ethereum, há um novo conjunto de problemas dos quais as pessoas T estão cientes ao codificar no Solidity”, enfatizou Espanol ao CoinDesk.

Imagem de programaçãovia Shutterstock

Christine Kim

Christine é uma analista de pesquisa da CoinDesk. Ela se concentra em produzir insights baseados em dados sobre a indústria de Criptomoeda e blockchain. Antes de sua função como analista de pesquisa, Christine era uma repórter de tecnologia da CoinDesk , cobrindo principalmente desenvolvimentos na blockchain Ethereum . Ativos em Criptomoeda : Nenhum.

Christine Kim