Hack Wintermute replicado em laptop simples em menos de 48 horas, explorando a falha Profanity

O Amber Group, um provedor de tecnologia blockchain, replicou o hack Wintermute em menos de 48 horas usando um laptop básico. Um relatório do Amber Group afirmou,

“Usamos um Macbook M1 com 16 GB de RAM para pré-computar um conjunto de dados em menos de 10 horas ... Concluímos a implementação e conseguimos quebrar a chave privada de 0x0000000fe6a514a32abdcdfcc076c85243de899b em menos de 48 horas.”

A cortar foi atribuído a endereços personalizados criados com a ferramenta Profanity, permitindo que os usuários gerem endereços ethereum específicos com caracteres específicos. No caso de Wintermute, o endereço continha sete zeros à esquerda. Os endereços personalizados permitem que as contas tenham caracteres semelhantes, facilitando a identificação dos endereços públicos no blockchain.

Outro impacto de um endereço Ethereum com vários zeros à esquerda é uma redução nas taxas de gás devido ao espaço reduzido necessário para armazenar as informações no blockchain. No entanto, remover um elemento de aleatoriedade do processo criptográfico usado na geração do endereço tem o custo de reduzir a segurança.

A análise inicial sugeriu que seriam necessárias 1,000 GPUs em apenas 50 dias para gerar todas as chaves privadas possíveis para endereços que começam com sete zeros à esquerda. No entanto, o Amber Group agora afirma que pode ser alcançado usando apenas um único laptop em menos de 48 horas.

A criptografia explicada

Profanidade é uma ferramenta de geração de endereços para o ecossistema Ethereum. A base de código pode ser facilmente baixada do GitHub e está disponível desde 2017. No entanto, a versão atual da base de código inclui um aviso contra o uso da ferramenta. O criador da ferramenta, Johguse, adicionou a seguinte mensagem ao arquivo readme.md em 15 de setembro de 2022.

“Aconselho fortemente contra o uso desta ferramenta em seu estado atual. Este repositório em breve será atualizado com informações adicionais sobre esse problema crítico.”

Além disso, os binários principais foram removidos para impedir que os usuários pudessem compilar a base de código “para evitar o uso inseguro dessa ferramenta”.

O Profanity usa “GPU power local com OpenCL através de um algoritmo simples” para gerar chaves privadas e públicas Ethereum até encontrar um endereço que corresponda às regras definidas pelo usuário. Por exemplo, se um usuário deseja criar um endereço Ethereum que termine em 'AAA', ele continuará funcionando até gerar um endereço com esses caracteres como sufixo.

Quando é gerado um endereço que não atende às condições detalhadas no conjunto de regras, o Profanity “adiciona 1 à chave privada e deriva um novo endereço Ethereum até encontrar aquele que corresponde às regras”.

Os endereços Ethereum geralmente são gerados localmente usando criptografia de curva elíptica. Ao gerar um endereço Ethereum, não há computação para verificar se a chave privada foi usada no passado para outro endereço. No entanto, isso se deve ao grande número de possíveis endereços Ethereum.

Este vídeo explica a verdadeira magnitude de Criptografia de 256 bits usado na criptografia do Ethereum. Uma comparação simples também pode ser feita em que há grosseiramente 2^76 grãos de areia no mundo, mas 2^160 possíveis endereços Ethereum.

No entanto, quando quaisquer caracteres dos endereços Ethereum são pré-determinados, o cálculo para gerar a chave privada torna-se significativamente mais simples e o número de endereços possíveis é reduzido drasticamente.

A Exploração

Amber Grouped explicou que a falha do método Profanity vem do uso de uma semente de 32 bits para gerar endereços.

“Para gerar uma chave privada aleatória, o Profanity primeiro usa o dispositivo aleatório para gerar uma semente. Mas, infelizmente, a semente é de 32 bits, que não pode ser usada diretamente como chave privada.”

A semente de 32 bits é alimentada por meio de um gerador de números pseudo-aleatórios (PRNG) que usa uma função determinística. Este método PRNG resulta em uma maneira direta de determinar todas as sementes de chave pública viáveis ​​usadas no Profanity.

“Como existem apenas 2^32 pares de chaves iniciais possíveis (d_0,0, Q_0,0) e a iteração em cada rodada é reversível, é possível quebrar a chave privada de qualquer chave pública gerada pelo Profanity.”

O método usado pelo Amber Group foi adquirir a chave pública do endereço, pré-computar as possíveis chaves públicas Profanity, computar as chaves públicas usando OpenCL, comparar as chaves públicas computadas e então reconstruir a chave privada assim que uma correspondência for encontrada.

Devido à simplicidade do método, o Amber Group recomenda que “seus fundos não estão seguros se seu endereço foi gerado por Profanity”.

Amber Group disse CryptoSlate que, em relação à necessidade de um algoritmo criptográfico melhor, “a resposta é obviamente sim… a indústria pode ver o quão vulnerável é esse tipo de design”.

Fonte: https://cryptoslate.com/wintermute-hack-replicated-on-simple-laptop-in-under-48-hours-by-exploiting-profanity-flaw/