WEB3DEV

Cover image for Como Proteger seu Nó contra Ataques e Vulnerabilidades Comuns das Blockchains
Fatima Lima
Fatima Lima

Posted on

Como Proteger seu Nó contra Ataques e Vulnerabilidades Comuns das Blockchains

Visão geral

Os nós das blockchains são indiscutivelmente um dos aspectos mais importantes para a segurança de uma rede blockchain. Os nós contêm dados e software fundamentais que governam qualquer rede blockchain, tornando-os um alvo para os invasores e uma fonte para possíveis comprometimentos. Embora as blockchains armazenem dados usando matemática, criptografia e regras de software que podem ser difíceis para os invasores manipularem, a segurança ainda pode falhar se considerações de projeto não forem levadas em conta para proteger os nós e a infraestrutura subjacente em que o software é executado. Este guia abrangerá os fundamentos de segurança dos nós, vetores de ataque comuns e dicas sobre segurança dos nós.

O que são nós e por que são importantes para a segurança?

As blockchains são implementadas através de software executado com recursos de infraestrutura em uma rede descentralizada, que são chamados nós. Os nós são executados sobre recursos de infraestrutura / de computadores que podem ser nativos da nuvem, locais ou uma combinação de ambos. Os nós também podem ser executados localmente em um laptop ou dispositivo similar, desde que tenha capacidade de armazenamento e computação suficiente para executar o software.

Os nós servem como participantes em uma rede blockchain para criar e transmitir transações on-chain. Os mineradores desempenham um papel fundamental na validação das transações e ajudam a cadeia a crescer ainda mais e as decisões para validar e adicionar blocos são tomadas com base no apoio popular, comumente conhecido como consenso. Cada nó armazena sua própria cópia da blockchain que registra e rastreia todas as transações e fornece uma visão atualizada da rede a qualquer momento.

Espera-se que as transações sejam consideradas à prova de adulteração, já que existe uma impressão digital criptográfica única associada a cada bloco e um protocolo de consenso que é usado pelos nós para chegar a um acordo sobre um histórico compartilhado. A impressão digital (ou hash) serve como uma marca confiável de que o bloco é válido e a alteração do bloco exigiria um novo hash. Se um mau ator tentasse alterar um hash existente, a cadeia quebraria e seria uma indicação de que algo não está correto. Isto também teria que ser feito mais rapidamente do que outros nós possam acrescentar novos blocos à cadeia.

Os nós são fundamentais para garantir a retidão da cadeia, manter o consenso e evitar a ocorrência de atividades nefastas.

Vetores de Ataque dos Nós

As blockchains são suscetíveis a algumas das mesmas vulnerabilidades e vetores de ataque que outros softwares sofrem, entretanto, a maneira como esses ataques são realizados pode parecer ligeiramente diferente do que nos softwares tradicionais (aplicativos web etc.). Muitos desses vetores de ataque podem ameaçar até mesmo a natureza básica da tecnologia da blockchain.

Top 10 OWASP (Blockchain)

Muitas das 10 principais vulnerabilidades dos aplicativos Web do OWASP (Open Web Application Security Project®- Projeto de Segurança de Aplicativo Web aberto) também são relevantes para a tecnologia blockchain e a infraestrutura dos nós. As blockchains são implementadas como software executado em máquinas em uma rede peer-to-peer, de modo que configurações errôneas podem levar a problemas de segurança.

Em um caso, usuários de uma carteira Ethereum configuraram sua carteira para ouvir e aceitar comandos via RPC (porta TCP 8545) de redes públicas e por causa disso, cerca de 20 milhões de dólares de ETH foram roubados (leia mais aqui).

Ataques DDoS

Os ataques de Negação de Serviço Distribuído (DDoS) são projetados para desativar os nós da blockchain. Com as redes blockchain, não existe um único ponto de ruptura, o que significa que um nó pode cair e a rede pode permanecer descomprometida. Desabilitar um nó da blockchain ou múltiplos nós através de um ataque DDoS dificultaria a comunicação do nó com seus pares, tornando a rede mais vulnerável a um ataque. A principal ameaça DDoS aos nós da blockchain é a “inundação” da transação. Os invasores podem enviar muitas transações blockchain para a rede como transações de spam, o que significaria que as transações legítimas estão paradas em mempools não sendo processadas. Isto pode causar o colapso do software, falha do nó, congestionamento da rede e prejudicar a precisão do ledger.

Um exemplo recente disto ocorreu em 14/09/2021, quando a rede Solana ficou offline por várias horas. Os bots geraram grandes quantidades de transações que inundaram a rede. Os nós ficaram sem memória e falharam, desacelerando a rede. Isto resultou na execução de um hard fork (uma grande mudança no protocolo da blokchain) onde 80% dos nós ficaram de acordo com o estado da blockchain.

Transações maliciosas

As blockchains são abertas e públicas (a menos que fechadas e autorizadas) e são projetadas para processar dados não confiáveis. Devido à natureza distribuída da rede e ao processamento de dados não confiáveis, os nós podem ser vulneráveis a transações maliciosas. Uma transação pode ser construída para explorar uma vulnerabilidade no software que pode causar o colapso do nó ou conceder a um invasor acesso ao / controle do nó. Se uma transação maliciosa for incluída em um bloco, ela pode se espalhar para todos os nós da rede.

Malware

Assim como qualquer software que roda em um computador, os nós da blockchain podem estar sujeitos a malware. Tipicamente, os malwares visam as seguintes áreas em uma rede blockchain:

Roubo de chave privada

A criptografia de chave pública é usada para assinar transações digitais e há malware conhecido que tem a capacidade de procurar e até mesmo comprometer chaves privadas usadas para assinar transações. Uma vez comprometidas, estas chaves podem ser usadas para assinar transações fraudulentas.

Substituição de endereço

Toda transação precisa ter um destino para o qual enviar fundos. Certos tipos de malware têm a capacidade de monitorar e pesquisar endereços e substituir o endereço de um invasor no destino. Devido à imutabilidade e irreversibilidade da blockchain, isto não pode ser desfeito e provavelmente resultaria em perda de fundos.

Filtragem e alteração de tráfego

Os nós de blockchains exigem comunicação com outros nós para se manterem atualizados e sincronizados. O malware pode filtrar as transações e blocos vistos por um determinado nó, o que permitiria que um invasor pudesse influenciar as operações do nó para trabalhar de forma nefasta.

Malware de mineração

Este tipo de malware usa o poder computacional de um nó insuspeito para minerar a criptomoeda para maus atores.

Vulnerabilidades e Ataques do Nó da Blockchain

Há também vulnerabilidades que são específicas dos nós das blockchains e tipicamente se estendem através de ataques baseados em redes peer to peer, assim como mecanismos de consenso e ataques de mineração..

  • ataques de 51% - Embora estes sejam mais prováveis de acontecer nos estágios iniciais de uma cadeia e quando poucos mineradores estão presentes na rede, ainda é possível para um grupo de atores ruins ganhar o controle de 51% ou mais do poder de mineração. Este nível de controle daria aos maus atores a capacidade de cancelar transações válidas, realizar transações fraudulentas e potencialmente até mesmo reescrever partes da cadeia (de toda a cadeia é possível, mas improvável).
  • Ataques de Sybil - Isto pode acontecer quando um invasor cria vários nós falsos em uma rede a fim de obter controle da rede (ataque de 51%) para adulterar a cadeia.
  • Ataques de roteamento - A infraestrutura de rede é fundamental para o funcionamento das blockchains. Os nós das blockchains compartilham informações através de protocolos de roteamento. Os maus atores podem interceptar dados sobre o grupo de nós da rede, impedindo que a cadeia chegue a um consenso. Estes protocolos podem ter vulnerabilidades e ser explorados para ajudar a alterar o estado da cadeia.

Como Proteger seu Nó

Os nós são como qualquer outro software e estão sujeitos a muitas ameaças tradicionais de segurança cibernética e, portanto, muitas das melhores práticas tradicionais de segurança se aplicam.

  • O software deve ser mantido atualizado com a maior frequência possível.
  • As configurações devem ser revisadas e avaliadas contra vulnerabilidades comuns, tais como CVEs (Exposições e Vulnerabilidades Comuns) conhecidas
  • O antivírus deve ser executado para ajudar a detectar e prevenir malware nos nós da blockchain
  • Utilizar um WAF (Web Application Firewall) ou similar para proteger a infraestrutura da blockchain
  • Utilizar um algoritmo de consenso que ajuda na prevenção contra ataques de Sybil e 51% de ataques (PoW/PoS)
  • Monitorar suas pools de mineração e criar um alerta para qualquer coisa que ultrapasse um limite de ~40% para poder desviar alguns desses mineradores para outras pools
  • Utilizar protocolos de roteamento seguro (certificados) a fim de evitar ataques de roteamento
  • Todos os contratos inteligentes devem ser verificados quanto a bugs e vulnerabilidades antes do uso na produção
  • Identificar e descartar potenciais transações de spam pode impedir que estas sejam incluídas no ledger (livro de registros) e tenham efeitos adversos na rede
  • Realizar testes regulares de penetração e auditorias de segurança de redes e infraestrutura das blockchains
  • Implementar os controles de Gerenciamento de Identidade e Acesso (IAM) e o Gerenciamento de Acesso Privilegiado (PAM) junto com a autenticação de múltiplos fatores, quando aplicável
  • Realizar as melhores práticas de segurança API
  • Usar o padrão TLS (Segurança da Camada de Transporte) para comunicações internas e externas
  • Realizar a autenticação, verificação e autorização do usuário através de tokens seguros
  • Implantar técnicas de criptografia e privacidade end to end
  • Utilizar um servidor transitório para a infraestrutura do nó
  • Utilizar equilibradores de carga de rede para distribuição do tráfego
  • Realizar as melhores práticas SDLC (Ciclo de Vida de Desenvolvimento de Software) de segurança para a infraestrutura e o desenvolvimento de códigos
  • Praticar o armazenamento seguro para chaves privadas e outras chaves confidenciais
  • Mantenha as informações confidenciais relacionadas ao seu código fora dos repositórios públicos e das ferramentas de código aberto. Esteja atento a qualquer forma de documentação e outras informações de repositórios de código que possam revelar dados confidenciais e expor endpoints ao público.

Conclusão

As blockchains são somente seguras quanto a seu código e infraestrutura subjacentes. Embora a tecnologia das blockchains tenha mecanismos de segurança subjacentes, esses mecanismos não devem ser usados apenas para uma segurança ideal. As melhores práticas de segurança cibernética e de nós devem ser aplicadas e os sistemas devem ser revisados e testados regularmente.

Se você precisar de acesso seguro e confiável aos nós da blockchain, consulte-nos em QuickNode.com. Utilizamos as melhores estruturas e softwares da classe para garantir que nosso aplicativo web seja seguro e protegido para você. O QuickNode recebeu a certificação SOC 2 por alcançar e exceder os padrões de segurança, garantindo a melhor infraestrutura de blockchain da categoria.

Inscreva-se em nossa newsletter para mais artigos e guias.Se você tiver algum feedback, sinta-se à vontade para nos contatar via Twitter. Você pode sempre conversar conosco em nosso servidor da comunidade Discord, que conta com alguns dos desenvolvedores mais legais que você já conheceu :)

23 de setembro de 2022

Esse artigo foi traduzido por Fátima Lima.

Top comments (0)