Como resolver o problema de segurança da infraestrutura blockchain ao criar um dApp

Ad

Consenso CoinDesk

A corrida para WEB3 já começou. Capitalistas de risco, startups de criptomoedas, engenheiros e visionários estão desenvolvendo WEB3 (ou Web 3.0) alimentado por blockchain. Surgiu uma nova fronteira, mais democrática, descentralizada, independente e ideal para recuperação de dados.

Mas será que tudo é tão perfeito quanto à descentralização e segurança das infraestruturas? Não, e inúmeros casos de ataques man-in-the-middle são prova disso.

Mas para resolver o problema de segurança, vamos lembrar o que é WEB3. O conceito central do WEB3 é resolver os problemas de segurança causados ​​pela centralização e fornecer às pessoas autoridade sobre seus dados e identificação. Então, em que nível de tecnologia esses infelizes incidentes de violações de segurança estão ocorrendo em sua infraestrutura de blockchain? Vamos descobrir.

Para focar nos aspectos internos da WEB3, tecnologias como EVM, Solidity e JavaScript ainda desempenham um papel enorme. No entanto, usamos provedores de Node e provedores de API WEB3 ao discutir os recursos de back-end.

Provedores de nós são empresas que permitem que você use seus serviços em vez de executar seus nós. Isso é muito conveniente porque, em vez de configurar seu nó e enfrentar todo o estresse e as despesas que o acompanham, você pode enviar suas solicitações de transação dApp pela Internet para o provedor do nó. Se você estiver interessado no desenvolvimento de contratos inteligentes, poderá usar um ou dois provedores de nós (para redundância).

Há muitos Provedores de API WEB3; Contudo, em muitos casos, essas empresas trabalham com nós nos bastidores. Com essas ferramentas aplicadas, você pode obter quaisquer dados pré-compilados e pré-computados na cadeia.

Além disso, é simples estabelecer comunicação confiável e interação entre diferentes aplicativos por meio dessas APIs WEB3. Além disso, as APIs de qualidade mantêm a codificação consistente e estável. Nós, portanto, confiamos mais em APIs WEB3 confiáveis ​​ao criar aplicativos.

💡 Diferença entre provedores de Node e provedores de API WEB3: O provedor WEB3 permite que seu aplicativo se comunique com um nó blockchain enviando solicitações JSON-RPC a um servidor. Os provedores de serviços de nó executam clientes de nó distribuído nos bastidores e permitem que eles gravem e leiam de um blockchain usando uma chave de API.

Qual é a ameaça de segurança para os desenvolvedores dApps?

Os nós ainda são tecnologias relativamente primitivas, mas ainda são valiosas. Por exemplo, um nó WEB3 não pode informar o que os usuários depositaram em suas contas. Além de simplesmente fornecer informações brutas de blockchain, os nós não podem processar vários contratos inteligentes. Além disso, os nós têm capacidades limitadas e podem processar apenas uma cadeia. Felizmente, existem APIs disponíveis para ajudá-lo a contornar essa limitação.

As APIs definem e padronizam as interações dos aplicativos, permitindo que você use dados brutos de blockchain. É por isso que as APIs WEB3 são úteis para o desenvolvimento de dApp. APIs WEB3 são um componente chave no desenvolvimento de dApps; além de oferecer uma interface simples, permitem que um software interaja com outros aplicativos. Como APIs confiáveis ​​permitem codificação consistente em um ambiente estável, os desenvolvedores dApp não precisam reinventar a roda.

Além disso, usando essas APIs de provedor WEB3, você pode vincular facilmente a nós. Portanto, você não precisa se preocupar em se conectar aos nós ao usar essas APIs. Ao interagir com esses provedores, você também pode receber todos os tipos de dados valiosos pré-calculados e pré-compilados na cadeia.

Mas esses serviços não fecham totalmente as solicitações dos desenvolvedores nos planos de segurança e, na maioria dos casos, você deve pagar antecipadamente pelo uso.

O fato é que há cada vez mais casos de dApps sendo hackeados usando o ataque man-in-the-middle que mencionamos acima.

É quando um invasor, usando vulnerabilidades em servidores DNS (por exemplo), trocou de servidor para atender ao tráfego jsonrpc-endpoints.

Uma vítima é conhecida por perderam 16.5 WBTC (~$ 350,840). E cerca de 23 projetos de criptomoeda já encontraram um ataque de DNS semelhante.

Uma solução muito simples permite que você se proteja desses ataques man-in-the-middle. E vamos voltar a isso.

Além disso, se você tem uma equipe de desenvolvimento, pode seguir seu próprio caminho e tentar construir sua solução, mas precisa de uma equipe superqualificada de pessoas com ideias semelhantes para fazê-la funcionar.

A dificuldade desse processo é que você pode superestimar significativamente sua força. Uma tarefa que parece fácil levanta muitas questões, que são resolvidas por muitos anos de experiência no trabalho. Portanto, se você tem muito tempo e recursos, deve aceitar esse caminho.

Violação dos 3 principais princípios da blockchain na WEB3

Então, vamos respirar agora e olhar para os atuais desafios de segurança no mundo WEB3 a partir de uma perspectiva de infraestrutura.

Os principais princípios da blockchain são

  • descentralização
  • transparência
  • falta de confiança

Mas isso funciona na prática? Dê uma olhada no arquitetura dApp mais popular.

Arquitetura dApp mais popular
Arquitetura dApp mais popular

Podemos ver que os usuários no front-end estão enviando solicitações para provedores JSON-RPC (pode ser Infura, Alchemy, Quicknode, etc.).

Portanto, as solicitações são roteadas para um ambiente compartilhado onde não temos controle sobre a transformação de dados no gateway da API, mecanismo de cache, nós de blockchain ou qualquer outra coisa.

E é aqui que surge o primeiro problema porque uma ambiente compartilhado significa que muitos usuários, bots e hackers, em particular, trabalham no mesmo ambiente. Esta é uma verdadeira caixa preta para o desenvolvedor que atrai muita atenção dos invasores.

Bem, esta abordagem contradiz todos os 3 princípios da WEB3 porque:

  1. Centraliza o acesso ao Blockchain, passando tudo por um ambiente compartilhado;
  2. Não é transparente - não podemos verificar as respostas de tal API;
  3. Portanto, não pode ser chamado de verdadeira desconfiança, pois os problemas de segurança de tal infraestrutura são baseados simplesmente na confiança. Veja você mesmo no diagrama a seguir.
problemas de arquitetura dApp
problemas de arquitetura dApp

A segunda questão é que a versão da infraestrutura descrita permite ataques man-in-the-middle, que os criminosos usam periodicamente.

Os seguintes serviços podem ser atacados:

    • Registradores de domínio ou DNS
    • Provedores JSON-RPC
    • Quaisquer serviços agregados de terceiros

Um cluster auto-hospedado de nós blockchain é a única solução

Mas há uma solução? Sim — ambiente local configurado.

Primeiro, ele usa um cluster auto-hospedado de nós blockchain. Todos os nós são inicializados a partir da gênese oficial e sincronizados usando p2p. Isso garante a consistência dos dados.

Os nós devem ser atualizados periodicamente com instantâneos reduzidos para serem executados da maneira mais eficiente possível. A solução ideal é criar automaticamente novos nós a partir do instantâneo reduzido ao aplicar zoom. Se você inicializar o nó do zero, essa abordagem permite obter um novo nó em 30 minutos, em vez de vários dias.

Outro ponto crítico é a atualização automática do software blockchain após seu lançamento – isso também pode ser feito. O principal é criar um instantâneo com a nova versão (pois às vezes pode exigir algumas operações de dados, o que pode levar tempo) e, em seguida, os novos nós devem iniciar automaticamente com o novo instantâneo e o software atualizado.

Abaixo está um diagrama de infraestrutura que resolve a maioria dos problemas descritos.

solução de infraestrutura dApp
solução de infraestrutura dApp

Também é importante monitorar o estado de sincronização e excluir os nós que estão por trás do fluxo upstream. Isso pode ser feito, por exemplo, com a ajuda de exames de saúde.

Além do fato de que o acesso pode ser limitado pelo endereço IP, vale ressaltar que o bom e velho token JWT pode proteger contra registradores de domínio ou ataques de DNS. O token JWT é facilmente integrado ao web3js e outras bibliotecas e deve ser implementado no lado do gateway da API em nosso cluster blockchain.

Dessa forma, tornamos o endpoint blockchain seguro e descentralizado.

Resumindo

Web3 ainda está em seus estágios iniciais. Mas a corrida pela descentralização já começou. E você poderá ver que os aplicativos mais seguros provavelmente são aqueles que usam as abordagens mais inovadoras e de código aberto.

E, portanto, você não deve ignorar os princípios básicos do WEB3 porque seu dApp recém-criado não fornecerá segurança aos outros participantes. A única opção atualmente disponível é um cluster autônomo de nós de blockchain distribuídos geograficamente.

Autor:

Daniel Yavorovycho

Cofundador e CTO na RPC Fast e disnix

Token do LimeWire

Fonte: https://cryptoslate.com/how-to-solve-the-blockchain-infrastructure-security-problem-while-creating-a-dapp/