Back to Blog

Nossa Breve Análise da Vulnerabilidade da Ferramenta de Profanidade

Code Auditing
September 21, 2022
5 min read

A Wintermute foi explorada com uma perda de mais de 160M. A causa raiz é que a chave privada do projeto Wintermute foi comprometida devido a uma vulnerabilidade na ferramenta Profanity, que foi utilizada pela Wintermute para gerar a chave privada e a conta Ethereum.

Neste blog, descreveremos a causa raiz da vulnerabilidade no Profanity e como ela pode ser explorada.

O Endereço Ethereum

O endereço Ethereum é gerado a partir do hash Keccak-256 da chave pública e é representado como números hexadecimais. A chave pública é gerada a partir da chave privada usando multiplicação de curva elíptica, que é irreversível. Podemos obter uma chave pública a partir de uma chave privada. No entanto, não podemos obter a chave privada a partir de uma chave pública sem força bruta. Note que o comprimento da chave privada é de 256 bits. Dada uma chave pública, você precisa de no máximo 2^256 cálculos para encontrar a chave privada correspondente.

Em resumo, a relação entre a chave privada/pública e o endereço Ethereum é mostrada na figura a seguir.

A Causa Raiz da Vulnerabilidade

O objetivo do Profanity é encontrar um endereço Ethereum especial, por exemplo, onde os cinco primeiros números do endereço sejam zero. Para isso, o Profanity utiliza o seguinte método.

A implementação detalhada pode ser ligeiramente diferente.

Note que o comprimento da private_key é de 256 bits (2^256 valores diferentes). No entanto, há uma vulnerabilidade na geração da chave privada. Especificamente, a semente (no passo 1) tem apenas 32 bits, e o processo desde a semente no passo 1 até a private_key no passo 2 é determinístico.

Qual é o impacto de segurança aqui?

Como Explorar

Digamos que temos um endereço Ethereum com muitos ativos valiosos. Se pudermos obter sua chave privada, podemos assumir o controle desta conta e transferir todos os ativos. No entanto, como discutido anteriormente, precisaríamos fazer força bruta em todo o espaço 2^256 para encontrar a chave privada, o que é praticamente impossível.

Mas e se o endereço Ethereum foi gerado pela ferramenta Profanity? Podemos usar força bruta para localizar a chave privada com uma dificuldade muito menor. Precisamos apenas especificar a semente de 0 a 2^32-1 e repetir o mesmo processo até localizar a chave privada que pode gerar a mesma chave pública (e o endereço Ethereum). Como precisamos de no máximo 2^32 * loop_threashold cálculos, isso é viável em algumas horas ou dias/semanas com um cluster de GPU poderoso.

No entanto, este ainda é um algoritmo otimizado. Você pode consultar o artigo da Slowmist para mais detalhes.

Conclusão

Tornar um projeto DeFi seguro não é uma tarefa fácil. Além da auditoria de código, acreditamos que a comunidade deve adotar uma abordagem proativa para monitorar o status do projeto e bloquear o ataque antes mesmo que ele ocorra.

Sobre a BlockSec

A BlockSec é uma empresa pioneira em segurança blockchain estabelecida em 2021 por um grupo de especialistas em segurança de renome mundial. A empresa está comprometida em aprimorar a segurança e a usabilidade para o emergente mundo Web3, a fim de facilitar sua adoção em massa. Para isso, a BlockSec oferece serviços de auditoria de segurança para contratos inteligentes e chains EVM, a plataforma Phalcon para desenvolvimento seguro e bloqueio proativo de ameaças, a plataforma MetaSleuth para rastreamento e investigação de fundos, e a extensão MetaSuites para construtores web3 que navegam com eficiência no mundo cripto.

Até o momento, a empresa atendeu mais de 300 clientes ilustres, como MetaMask, Uniswap Foundation, Compound, Forta e PancakeSwap, e recebeu dezenas de milhões de dólares americanos em duas rodadas de financiamento de investidores de destaque, incluindo Matrix Partners, Vitalbridge Capital e Fenbushi Capital.

Site oficial: https://blocksec.com/

Conta oficial no Twitter: https://twitter.com/BlockSecTeam

Best Security Auditor for Web3

Validate design, code, and business logic before launch. Aligned with the highest industry security standards.

BlockSec Audit