Diante da onipresença das plataformas e sistemas eletrônicos numa sociedade cada vez mais hiperconectada, a segurança e autenticação das comunicações ganham um caráter crucial no mundo atual. Em razão disto, gestores e tomadores de decisão devem olhar com atenção para a cibersegurança em blockchains. Mas sob a ótica da segurança cibernética, quais estruturas e influências a tecnologia blockchain pode ter?
A proteção da “tríade da CIA” com Blockchain
A CIA, “Confidentiality, Integrity, Availability”, é um modelo que orienta as políticas de segurança da informação de uma organização.
Portanto, uma empresa que pretenda mitigar o risco cibernético precisa construir uma política de segurança focada nestas três propriedades, também conhecidas por tríade CIA: confidencialidade, integridade e autenticidade.
A confidencialidade é a proteção de dados contra acesso não intencional, ilegal ou não autorizado, divulgação ou roubo. Nesse sentido, blockchains podem ser usados para apoiar a confidencialidade por meio da gestão de direitos de acesso ou registos, por exemplo, em identidade auto-soberana.
A integridade, por sua vez, significa a manutenção e garantia da precisão e consistência dos dados ao longo de todo o seu ciclo de vida. Aqui, a tecnologia Blockchain pode apoiar a integridade por meio de propriedades como carimbo de data/hora e reconhecimento de firma da data, por exemplo, na certificação de documentos.
Já a autenticidade diz respeito à preservação da veracidade dos dados, certificando-se de que os dados recebidos no servidor de recolha são originais e foram recebidos exatamente como enviados. Neste ponto, um blockchain pode oferecer suporte à autenticidade fornecendo credenciais digitais e garantindo a escassez digital, por exemplo, em sistemas de identidade, rastreamento e pagamentos.
Setores de cautela na segurança cibernética de blockchains
As áreas de cibersegurança que merecem destaque e especial atenção em blockchains são as enumeradas a seguir.
Contratos inteligentes ou smart contracts são a única preocupação de segurança cibernética realmente relacionada ao blockchain.
Para quem ainda não está familiarizado com o termo, gosto de defini-lo como um código de software auto executável gerenciado por um blockchain. Ou ainda, uma “maneira pública e verificável de incorporar regras de governança e lógica de negócios em linhas de código”.
Esclarecida a terminologia, os contratos inteligentes são um alvo interessante em termos de risco cibernético devido às suas muitas vulnerabilidades: são acessíveis ao público, têm valor e são imutáveis, o que significa que bugs/vulnerabilidades uma vez que o contrato é lançado não podem ser corrigidos.
Código “fora da cadeia”, como bancos de dados e APIs, é outro setor de atenção. Existem problemas usuais de cibersegurança fora da cadeia que as pessoas tendem a ignorar. Isso inclui problemas de segurança em: bancos de dados, sites, gestão de chave, APIs, dentre outros.
Tais problemas comuns compõem de 80 a 90% das aplicações blockchain, e a segurança deles é frequentemente negligenciada.
Como incidentes de segurança comuns podemos citar a autenticação não segura; uso incorreto de criptografia; exposição de armazenamento de chaves criptográficas; vulnerabilidades de software; backdoors, normalmente criados por um funcionário insatisfeito.
Além destes incidentes de segurança comuns, há também vulnerabilidades de infraestrutura, incluindo software do nó (node) ou da rede, como por exemplo, node software, sistemas operacionais com vulnerabilidades; rede; APIs que são abertas e não deveriam ser; permissões não definidas corretamente.
Ainda, os incidentes comuns incluem a vulnerabilidade no software do nó (node); segurança de host de nível de sistema operacional; segurança de rede; ataque de negação de serviço; ataque Eclipse (isole um nó de modo que veja apenas a sua própria cópia do blockchain).
Infraestrutura é outra área de atenção, mas como merece um destaque especial, será vista mais adiante, no próximo tópico deste artigo.
Interação humana é também uma zona de atenção em blockchains, dado que humanos são, geralmente, o ponto de implantação mais complicado numa política de planeamento de mitigação de risco cibernético.
Aqui, as vulnerabilidades da interação humana incluem, por exemplo, desleixo, por exemplo, uso de senhas fáceis de decifrar; comportamento irracional; comportamento não determinístico; valorizar a experiência do usuário acima da segurança, o que reconhecidamente é uma troca muito difícil em blockchain; elo mais fraco da corrente.
Por fim, como ações humanas mais comuns em termos de comprometimento de segurança cibernética, temos a engenharia social, como phishing, que é um grande problema; fuga de informações; ataques internos; atalhos de segurança, entre outros.
Como se dá a segurança cibernética de um blockchain no nível do protocolo?
Os protocolos de blockchain são seguros, mas existem cenários de ataque possíveis. Para entender a segurança do blockchain no nível do protocolo, como bem apontado pelo Workshop Cyber Security ocorrido no EU Blockchain Observatory & Forum em 2019, primeiro é preciso identificar o tipo de blockchain. Se é público ou privado, híbrido, e ainda, se é permissionado ou não permissionado.
Isto porque, os problemas de segurança variam conforme os diferentes tipos de blockchain. Em blockchains públicos, qualquer nó pode se juntar à rede e acessar, ou gravar dados no livro-razão como, por exemplo, no blockchain bitcoin ou no blockchain ethereum público. Já em blockchains privados, as operações de leitura e gravação são restritas a participantes autorizados, como é o caso do Hyperledger Fabric.
Também é necessário diferenciar entre blockchains não permissionados e permissionados. Nas estruturas blockchain não permissionadas, qualquer nó da rede pode ler e gravar transações. Já nos blockchains permissionados, uma ou ambas as ações são restritas aos nós autorizados.
Cibersegurança blockchain e arquiteturas multicamadas
Em engenharia de software, a arquitetura em camadas (mais conhecida como arquitetura multicamadas) é um sistema Cliente-Servidor onde as camadas de apresentação, processamento de aplicativos e gerenciamento de dados são separados.
A arquitetura em camadas pode ser definida como um processo de decomposição de sistemas complexos em camadas para facilitar a compreensão do mesmo, como também, facilitar a manutenção deste sistema, ainda afirma que, esta técnica foi emprestada da arquitetura de computadores, que utilizam camadas de chamada ao sistema operacional, drivers e afins.
Pois bem, na segurança cibernética em blockchains é importante considerar as arquiteturas multicamadas como a camada de aplicação; camada de mecanismo de contrato inteligente; camada de consenso; e, por fim, a camada de rede.
Essas duas últimas, a camada de consenso e a camada de rede, são importantes para a cibersegurança, pois as duas camadas superiores dependem delas.
Ainda, para ter sucesso, um protocolo de consenso distribuído deve garantir segurança (integridade dos dados) e vivacidade (alta disponibilidade da rede) em face de diferentes modelos de rede, diferentes suposições de confiança entre os participantes e à luz da possível existência de nós maliciosos (referidos como nós bizantinos).
Ao olhar para mecanismos ou protocolos de consenso de uma perspectiva de alto nível, podemos distinguir duas famílias principais.
Primeiro, os protocolos de consenso baseados em “loteria”, como Prova de Trabalho (PoW) e a maioria das Provas de Participação (PoS), envolvem uma eleição probabilística dos líderes na rede. Daí, eles são bons para redes públicas porque funcionam com um grande número de nós (nodes), mas são lentos.
Segundo, os protocolos de consenso baseados em votação abrangem os mecanismos de consenso tolerantes a falhas bizantinas clássicas. Usam um processo de votação para eleger um líder e são altamente adequados para redes permitidas com pequeno número de nós.
Ataques possíveis no nível do protocolo blockchain
Apesar do Joint Economic Committee Congress of the United States, reconhecer a blockchain como tecnologia revolucionária, dentre outras qualidades, pela sua segurança na partilha e processamento de dados, a blockchain não está a salvo de uma tentativa de ataque cibernético.
Bem por isso, até para um melhor planeamento de mitigação de risco, é de rigor conhecer os possíveis ataques cibernéticos no nível do protocolo blockchain.
Ataque 51% ou ataque de gasto duplo, que pode ocorrer para tentar modificar a reorganização da cadeia blockchain, ou afetar o hash power, isto é, comprometer o poder computacional de uma rede blockchain, responsável pela garantia de segurança de uma rede blockchain.
Selfish mining, que pode ocorrer quando um mineiro aumenta a sua chance de obter uma recompensa por “pré-minerar” um bloco na rede blockchain.
The long-range attack in proof of stake (PoS) consensus. Neste tipo de ataque, um agente malicioso adquire 1% de todas as criptomoedas ou logo após o bloco de gênese de uma rede PoS. Após, este invasor então inicia a sua própria cadeia e começa a minerá-la. Embora o invasor seja selecionado para produzir um bloco em apenas 1% das vezes, pode facilmente produzir 100 vezes mais blocos e, desse modo, criar um blockchain paralelo ao blockchain original, com uma cadeia mais longa.
A proteção de ativos digitais em blockchains
A maioria dos problemas de segurança cibernética enfrentados pelas implementações de blockchain não estão diretamente relacionados ao blockchain, mas sim a questões tradicionais de segurança cibernética.
Pode incluir vulnerabilidades em código fora da cadeia, como bancos de dados e APIs, vulnerabilidades na infraestrutura subjacente, autenticação não segura, uso incorreto de criptografia ou exposição de armazenamento de chave, entre outros.
Como acontece com qualquer tipo de segurança cibernética, a vulnerabilidade mais séria é o ser humano. Com efeito, os blockchains são vulneráveis a toda uma gama de problemas de segurança relacionados a pessoas, desde ataques de engenharia social, fuga de informações, ataques internos, incluindo backdoors introduzidos por funcionários insatisfeitos à preguiça ou ignorância dos procedimentos de segurança adequados.
Cibersegurança em blockchains sob o prisma das capacidades defensivas e o prisma das capacidades ofensivas
A segurança cibernética de blockchain pode ser enxergada sob duas óticas distintas: a das capacidades defensivas e a das capacidades ofensivas.
Quanto às capacidades defensivas, visualiza-se a cibersegurança sob a ótica dos utilizadores, proprietários de plataforma ou profissionais de segurança, que são considerados aqui amplamente como defensores.
Já no que toca às capacidades ofensivas, visualiza-se a cibersegurança sob a ótica de um adversário ou invasor que normalmente tenta explorar, interromper, modificar ou hackear amplamente soluções baseadas em blockchain.
Capacidades defensivas
Sob o olhar das capacidades defensivas, o Blockchain foi projetado com certos elementos de segurança em mente (como a natureza distribuída do armazenamento de dados), no entanto, existem conceitos adicionais que estão sendo propostos para aumentar ainda mais o potencial de segurança.
Nesse passo, dentre esses conceitos adicionais desenvolvidos para aumentar a segurança em blockchains, pode-se citar: mecanismos de proteção de privacidade para não armazenar detalhes da transação em “texto simples” em blockchains que são usados como parte de contratos inteligentes sem a necessidade de empregar camadas de segurança adicionais, como ofuscação ou criptografia; sistema de alimentação de dados autenticado para contratos inteligentes que precisam obter dados confiáveis de fontes externas localizadas fora do blockchain. Pode incluir dados fornecidos pelo governo, entre outros que podem iniciar ou influenciar contratos e podem usar credenciais seguras para camada adicional de proteção de acesso, dentre outros.
Quanto às novas ferramentas de cibersegurança que aproveitam o próprio design da tecnologia, várias startups têm empregado conceitos básicos de blockchain para alcançar diferentes funcionalidades, como autenticação aprimorada, melhor mecanismo de proteção de dados ou plataformas holísticas de segurança cibernética.
Capacidades ofensivas
Sob a ótica das capacidades ofensivas, quase não há metodologias publicadas ou estudos de caso que descrevem como alguém pode influenciar outros sistemas ou aplicativos influenciando a solução de blockchain. Até agora, os agentes mal-intencionados podem usar Denial of Service (DoS) ou procurar vulnerabilidades gerais para escalar privilégios.
Nessa linha, é possível identificar cinco grupos principais de ameaças e dois vetores de ataques tradicionais. Nos grupos de ameaças, podemos elencar ameaças de gasto duplo; de mineração ou pools; a carteiras; à rede; e, por fim, ameaças a contratos inteligentes.
Já nos vetores de ataques tradicionais, podemos enquadrar a negação de serviço distribuída – DDoS -, conquanto seja mais difícil desencadear um ataque DDoS numa identidade digital descentralizada baseada em blockchain devido à sua natureza distribuída e mecanismo de prevenção integrado; ainda, podemos enquadrar aqui os bugs e as vulnerabilidades.
Apesar de ser uma tecnologia relativamente jovem, com apenas 12 anos, a tecnologia blockchain é atraente em termos de mitigação do risco cibernético, principalmente naquelas estruturas onde há maior descentralização. Bem por isso, o blockchain bitcoin não foi hackeado até agora.
De fato, não é fácil direcionar soluções blockchain como facilitador de um ataque cibernético. Pelo menos, não há registo identificado ou documentado aprofundado neste sentido.
Não significa, contudo, que um ataque cibernético em blockchain não seja possível.
Artigo de Tatiana Revoredo, Autor – MIT Technology Review Brasil