Os engenheiros de Bitcoin identificam e corrigem a vulnerabilidade em cadeias de bloqueio Decred, Btcd

Os engenheiros de software Bitcoin identificaram um bug que anteriormente havia ameaçado a cadeia de bloqueio Bitcoin que poderia tornar os Decred e Btcd vulneráveis a atores maliciosos.

Como inicialmente relatado por Decrypt, Braydon Fuller e Javed Khan divulgaram seu relatório intitulado „Bitcoin Inventory Out-of-Memory Denial-of-Service Attack“ (Inventário de Ataque de Negação de Serviço fora da Memória) que delineou as vulnerabilidades nas duas cadeias de bloqueio.

A mesma vulnerabilidade foi identificada na cadeia de bloqueio Bitcoin em 2018 que foi então corrigida pelos desenvolvedores, conforme delineado no início do relatório de Fuller e Khan:

„A vulnerabilidade foi descoberta na sexta-feira, 22 de junho de 2018 por Braydon Fuller da equipe do protocolo Bcoin da Purse. Na época da descoberta, isto representava mais de 50% dos nós Bitcoin anunciados publicamente com tráfego de entrada e provavelmente a maioria dos mineiros e das trocas“.

A vulnerabilidade foi revelada em 9 de julho de 2018 para os mantenedores Bitcoin Core e Litecoin Core e foi ’secretamente‘ corrigida no dia seguinte.

A mesma ameaça foi então retomada por Khan em junho de 2020, observando a vulnerabilidade na cadeia de bloqueio Btcd antes que a pesquisa identificasse que a cadeia de bloqueio Decred estava também em risco em julho de 2020. Este último poderia ter sido particularmente devastador, pois 100% dos nós Decredidos estavam em risco, assim como os nós que servem filtros de bloco para as carteiras Bitcoin Lightning.

Embora a principal ameaça da vulnerabilidade permitisse a um atacante fechar essencialmente as cadeias de bloqueio em questão, o relatório também alega que a vulnerabilidade de negação de serviço poderia ter tido conseqüências financeiras diretas.

Um ataque através deste método poderia resultar na perda de tempo de mineração, ou no consumo excessivo de eletricidade, desligando certos nós, atrasando os blocos ou causando a partição da cadeia de bloqueio. Os contratos também poderiam ser interrompidos, o que poderia afetar „o comércio, as trocas, os swaps atômicos, os escrows e os canais de pagamento HTLC da rede de relâmpagos“.

Como funciona

Esta vulnerabilidade poderia ser explorada por um atacante, que seria um nó na rede em questão enviando uma enorme quantidade de mensagens de invasão de transação com diferentes hashes abaixo do limite máximo de 49.999 itens, omitindo os dados de transação necessários.

Isto poderia ser ainda mais exacerbado pelo uso de múltiplos pares no que efetivamente seria um ataque de negação de serviço (DDoS) dedicado.

„Com uma conexão de 1Gbps (125 MB/s), seria possível enviar cerca de 83 mensagens inv com 49.999 itens por segundo, dando uma taxa máxima de 4.166.584 itens inv por segundo. A memória crescerá o mais rápido possível para enviar dados para o nó, até que ele trave ou trave a máquina em uso de disco swap em vários minutos“.

Nunca explorada
De acordo com o relatório, as vulnerabilidades nessas várias cadeias de bloqueio nunca foram exploradas devido à velocidade em que foram corrigidas.

As últimas versões das correntes de bloqueio Dcrd e Btcd foram lançadas no final de agosto e corrigiram as vulnerabilidades.