Digital Fraud, Data Leakage

Ataque ao CPqD e riscos digitais das Blockchains Permissionadas

Por Jônadas Techio em
COMPARTILHAR

Há poucos dias, propagou-se a notícia de que o grupo hacker LV teria invadido uma blockchain ligada ao Banco Central do Brasil.

Supostamente, o alvo do vazamento de dados teria sido uma solução de identidade descentralizada baseada em blockchain criada pelo CPqD e escolhida pelo Banco Central para desenvolver o Real Digital.

Screenshot do anúncio de vazamento - fonte: LV Blog

Screenshot do anúncio de vazamento - fonte: LV Blog

Contrariando a notícia, uma nota publicada no dia 02 de Maio na página do CPqD afirma que nenhum dado pessoal teria sido vazado e que nenhuma solução de cliente (o que, supõe-se, aplica-se ao Banco Central) teria sido comprometida.

Ainda de acordo com com a nota: “as soluções de identidade digital descentralizada baseadas em blockchain desenvolvidas (pelo CPqD) (...) colocam o controle dos dados pessoais nas mãos dos próprios usuários, justamente para evitar situações de vazamento ou o acesso a informações sensíveis por pessoas não autorizadas”.

Independentemente dos detalhes desse ataque em particular, o interesse criado pela notícia do vazamento de dados fornece uma boa oportunidade para se explorar os tipos de riscos e vulnerabilidades inerentes às blockchains permissionadas, que estão na base de soluções como a da identidade descentralizada que será em breve utilizada pelo Banco Central.

Para compreender esses riscos, precisamos primeiramente definir alguns conceitos e marcar algumas distinções importantes entre tipos de blockchains.

Blockchains não permissionadas e permissionadas

Em sua acepção mais geral, “blockchain” refere-se a um conjunto de blocos de informação concatenados em uma série ou cadeia (por isso o nome “blockchain”, i.e., cadeia de blocos). Há diferentes formas de se categorizar blockchains, mas uma primeira divisão importante se dá entre as blockchains não permissionadas (permissionless) e as permissionadas:

  • Blockchains não permissionadas aceitam que qualquer usuário se junte de forma pseudônima como um “nó” da rede, sem restringir os direitos de cada nó.
  • Blockchains permissionadas, por outro lado, restringem o acesso a determinados usuários e também podem restringir os direitos de cada nó dentro de uma rede. Além disso, as identidades dos usuários de uma blockchain permissionada são conhecidas pelos outros usuários dessa blockchain.

As blockchains não permissionadas tendem a ser mais seguras do que as permissionadas, uma vez que há uma grande quantidade de nós validando transações, o que dificulta que maus atores conspirem na rede.

Mas o custo da segurança são os longos tempos de processamento de transações. Por outro lado, blockchains permissionadas tendem a ser mais eficientes, mas a centralização torna o sistema mais propenso a vulnerabilidades.

Como regra, quanto menos nós houver em uma blockchain, mais fácil será para maus atores conspirarem. Portanto, os administradores de blockchain permissionadas devem garantir que os nós que adicionam e verificam blocos sejam altamente confiáveis.

Blockchains públicas

As blockchains públicas são os casos paradigmáticos de blockchains não permissionadas.

Sendo descentralizadas, blockchains públicas aceitam que qualquer pessoa (física ou jurídica) se torne um nó da rede com direitos iguais de acesso, criação e validação de blocos de dados. Esses blocos constituem um livro-razão (ledger) distribuído entre todos os pares da rede, e que pode ser acessado por qualquer pessoa com acesso à internet.

Exemplos conhecidos de blockchains públicas são as redes Bitcoin e Ethereum.

Para que um registro seja adicionado a um bloco numa blockchain pública ele deve ser validado por meio de um procedimento criptográfico que garante a integridade dos dados. E para que um novo bloco seja adicionado à cadeia, o protocolo das blockchains públicas exige ainda uma comprovação adicional, chamada mecanismo de consenso.

O mecanismo de consenso mais conhecido é a prova de trabalho (“proof of work”), na qual nós chamados mineradores competem para resolver um enigma matemático que exige grande poder de computação em troca de uma recompensa.

Uma vez que o bloco tenha sido minerado essa informação é transmitida e verificada por todos os demais nós da rede, e somente depois desse processo o bloco é adicionado à cadeia, mudando o estado da blockchain.

blockchain

Fonte: Euromoney Learning

Dado esse intrincado mecanismo para criação e inclusão de blocos, torna-se extremamente difícil alterar as informações contidas no livro-razão de uma blockchain pública. É por isso que ela tende a ser mais segura, sobretudo se tiver uma grande quantidade de nós operando.

Blockchains privadas

Blockchains privadas, por outro lado, são blockchains permissionadas controladas por uma única organização que restringe a participação na rede.

O mecanismo de acesso a uma blockchain privada pode variar de acordo com a implementação, mas usualmente há uma autoridade central responsável por emitir licenças de participação e determinar quem pode se tornar um nó da rede. Essa autoridade pode ou não garantir direitos iguais aos nós participantes, mas de todo modo somente as entidades autorizadas terão acesso aos registros contidos no livro-razão.

Como blockchains privadas usualmente possuem um número restrito de participantes, e como o processo de construção de consenso é mais centralizado, é possível processar um número maior de transações em menos tempo, se comparado a uma blockchain pública

Contudo, dado que os registros não podem ser independentemente verificados, a integridade dos mesmos dependerá somente da credibilidade dos participantes - o que significa que é necessário que eles confiem uns nos outros.

Além disso, diferentemente do que ocorre com registros em blockchains públicas (que são para todos efeitos práticos imutáveis), o operador de uma blockchain privada tem o direito de anular, editar, ou apagar entradas no livro-razão a qualquer momento.

Um exemplo de blockchain privada é a rede usada pela Walmart (baseada no Hyperledger Fabric) para rastrear a proveniência de seus produtos.

Blockchains de consórcio

Também chamadas de federadas, essas são blockchains permissionadas governados por um grupo de organizações, em vez de uma única entidade, como no caso da blockchain privada.

Por desfrutarem de mais descentralização do que as blockchains privadas, as blockchains de consórcio podem alcançar níveis mais altos de segurança.

Blockchains de consórcio são particularmente apropriadas para ambientes corporativos, nos quais um conjunto de empresas precise compartilhar informações, mas sem que haja necessariamente uma confiança irrestrita entre os participantes.

Bancos e instituições financeiras estão entre os principais usuários de blockchains de consórcio, tendo em vista que são mais rápidas e escaláveis e oferecem mais privacidade para as transações do que as blockchains públicas.

Uma solução de blockchain de consórcio bastante popular no setor de serviços financeiros é a Corda, desenvolvida pela empresa de software empresarial R3.

O FinID - Sistema de Identidade Digital Descentralizada - selecionado pelo LIFT do Banco Central é uma solução criada pelo CPqD em parceria com a R3. Essa solução utilizará credenciais eletrônicas emitidas por diferentes agentes participantes em uma blockchain permissionada integrada à plataforma Corda, permitindo que clientes tenham controle sobre seus dados e facilitando o acesso à contratação de serviços financeiros.

Blockchains híbridas

Blockchains híbridas são controladas por uma única organização, mas com uma camada adicional de supervisão possibilitada por uma blockchain pública, que é necessária para realizar determinadas validações de transações.

blockchain2

Tipos de blockchains - fonte: Foley & Lardner LLP

Um exemplo de blockchain híbrida é a IBM Food Trust, desenvolvida para melhorar a eficiência em toda a cadeia de suprimentos de alimentos.

RISCOS DA BLOCKCHAIN

Conheça o funcionamento detalhado e os riscos inerentes a blockchains públicas no e-book Riscos Digitais no Blockchain e na Web3 lançado pela Axur

BAIXAR E-BOOK

Riscos das blockchains permissionadas

Com menos participantes e mais centralização, aumentam os riscos de que um cibercriminoso possa tomar controle de uma blockchain, manipulando seus registros ou corrompendo o sistema. Isso torna as blockchains permissionadas alvos mais vulneráveis a ataques que se aproveitam do fato de que nós administradores podem ser pontos únicos de falha.

Esse tipo de falha pode ocorrer tanto devido à existência de problemas de configuração causados inadvertidamente pelos administradores, quanto pela manipulação intencional dessas configurações com fins de ganhos pessoais, seja por parte de usuários autorizados do sistema, seja por parte de invasores que obtenham as credenciais necessárias.

Além disso, blockchains permissionadas usualmente dependem de sistemas externos que também podem ser comprometidos - em particular os sistemas de banco de dados usados para armazenamento do estado da blockchain.

Seguindo a classificação proposta por Pavithran e Angeles (2021), podemos dividir os ataques a blockchains permissionadas em quatro tipos: ataques físicos, ataques à camada blockchain, ataques de rede e ataques de malware.

Ataques físicos

Os ataques físicos são aqueles que atingem o hardware, o software, a rede e os dados por meio de ações e eventos físicos.

Por exemplo, se um invasor mal-intencionado obtiver acesso à rede, ele poderá injetar um dispositivo falso capaz de fazer transações e inundar a rede, ou participar do processo de consenso. Invasores também podem entrar na rede falsificando a identidade de dispositivos legítimos, como endereços MAC ou IP, ou ainda obtendo as chaves privadas de usuários autorizados.

Ataques à camada da blockchain

Mesmo que os nós participantes do consenso sejam pré-determinados nas blockchains permissionadas, dado que várias entidades estão envolvidas no processo, existe a chance de algumas delas se tornarem maliciosas. Um mecanismo de consenso mal projetado ou com vulnerabilidades pode permitir que transações falsas sejam aceitas e armazenadas no blockchain. Exemplos desses ataques são os seguintes:

  • Ataques eclipse: invasores isolam nós em uma rede blockchain, impedindo-os de se comunicarem com os demais pares. Isso também possibilita que nós adversários se juntem e ataquem a rede.
  • Ataque de descarte de blocos: um nó malicioso descarta o bloco gerado pelo nó minerador vencedor e propaga um bloco falso para o blockchain.
  • Ataque de retenção de blocos: o nó minerador vencedor é impedido de publicar um bloco, fazendo com que as transações contidas nele sejam descartadas. Outra forma desse ataque ocorre quando dois pools de mineração tentam intencionalmente bifurcar o blockchain para criar uma partição de rede.
 

Ataques à rede

Os ataques à rede acontecem por meio de acessos não autorizados a ativos digitais em uma rede de dispositivos interconectados.

  • Ataque DDoS: um ataque de negação de serviço distribuído em nós que participam do processo de consenso pode interromper esse processo e atrasar o funcionamento do sistema. A inundação de Mempool é uma forma de ataque DDoS, em que o invasor inunda o pool de memória com transações não confirmadas.
  • Vazamento de privacidade da transação: como o comportamento do usuário em blockchains é rastreável, deve-se tomar medidas para garantir a privacidade das transações. No entanto, um possível vazamento de informações confidenciais, como chaves criptográficas, ainda pode ocorrer.
  • Sequestro de Border Gateway Protocol (BGP): o BGP é usado para compartilhar informações de roteamento dentro de uma rede, especificando como os pacotes IP são encaminhados para seus destinos. Um invasor pode interceptar a rede blockchain manipulando o BGP, modificando o roteamento de dados em seu favor.
  • Ataques DNS: quando um nó se junta à rede, o sistema DNS será usado para descobrir os pares ativos. Se um invasor mal-intencionado for identificado e for capaz de envenenar o cache DNS, uma rede falsa pode ser criada.
 

Ataques de malware

Malware é um software malicioso projetado para acessar ou danificar secretamente um sistema de informação sem consentimento prévio.

Alguns dos ataques de malware possíveis no blockchain envolveriam a injeção de código malicioso nos blocos de transações, ou a exploração de vulnerabilidades em contratos inteligentes, permitindo que o invasor tenha acesso à rede ou crie transações falsas.

Além desses ataques, usuários de blockchains permissionadas também podem ser vítimas de malwares do tipo credential stealers (ladrões de informações) e clippers (que permitem que invasores substituam o texto que o usuário copiou), os quais hoje podem coletar chaves privadas de carteiras (wallets) com acesso à rede. Caso uma dessas chaves esteja vinculada a uma conta de administrador ou com outros privilégios, a rede fica comprometida.

Conclusão

Blockchains permissionadas oferecem soluções flexíveis e eficientes sobretudo em ambientes corporativos, nos quais não há necessariamente confiança total entre os participantes da rede, exigindo maior controle de acesso e participação. Mas como ocorre com qualquer aplicação, a segurança do sistema depende de uma série de condições relativas ao ambiente mais amplo de implementação da tecnologia.

Em comparação com blockchains públicas consolidadas, a maior centralização e o número limitado de nós de blockchains permissionadas torna-as alvos mais vulneráveis a ataques que explorem pontos únicos de falha.

Nesse sentido, medidas de segurança envolvendo o acesso de usuários e as interfaces da blockchain devem ser redobradas, tendo em vista impedir que usuários mal-intencionados ou invasores possam injetar código malicioso, executar transações ou interferir com os mecanismos de consenso.

Referências

  • A. Davenport, S. Shetty and X. Liang, "Attack Surface Analysis of Permissioned Blockchain Platforms for Smart Cities," 2018 IEEE International Smart Cities Conference (ISC2), 2018, pp. 1-6, doi: 10.1109/ISC2.2018.8656983.
  • B. Putz and G. Pernul, "Detecting Blockchain Security Threats," 2020 IEEE International Conference on Blockchain (Blockchain), 2020, pp. 313-320, doi: 10.1109/Blockchain50366.2020.00046.
  • D. Pavithran, E. Angeles, C. Shibu and M. Shaikh, "Attacks on Permissioned Blockchain for IoT," 2021 4th International Conference on Signal Processing and Information Security (ICSPIS), 2021, pp. 25-28, doi: 10.1109/ICSPIS53734.2021.9652429.
  • LIFT Challenge Real Digital seleciona 9 projetos
  • Types of Blockchain: Public, Private, or Something in Between | Blogs | Manufacturing Industry Advisor
event-image

ESPECIALISTA CONVIDADO

Eduardo Schultze, Coordenador do CSIRT da Axur, formado em Segurança da Informação pela UNISINOS – Universidade do Vale do Rio dos Sinos. Trabalha desde 2010 com fraudes envolvendo o mercado brasileiro, principalmente Phishing e Malware

AUTOR

Jônadas Techio

Blockchain Solutions Architect & Web3 Evangelist at Axur