Publicação de Convidado HodlXEnvie a Sua Publicação
Zero dias sem incidentes no espaço DeFi. Desta vez, a vulnerabilidade foi descoberta em uma ‘biblioteca elíptica’ amplamente utilizada.
O que torna a situação pior – a sua exploração pode levar a que hackers assumam o controlo das chaves privadas dos utilizadores e esvaziem as carteiras.
Tudo através de uma simples mensagem fraudulenta assinada por um utilizador. É este um problema crítico?
A primeira coisa a considerar é o fato de que bibliotecas como a elliptic fornecem aos desenvolvedores componentes de código prontos.
Isso significa que, em vez de escrever o código do zero e verificá-lo à medida que avançam, os desenvolvedores apenas pegam os elementos de que precisam.
Embora seja considerado uma prática mais segura, uma vez que as bibliotecas são continuamente utilizadas e testadas, isso também aumenta os riscos se uma vulnerabilidade passar despercebida.
A biblioteca Elliptic é amplamente utilizada em todo o ecossistema JavaScript. Ela alimenta funções criptográficas em muitos projetos de blockchain conhecidos, aplicações web e sistemas de segurança.
De acordo com as estatísticas do NPM, o pacote que contém o erro é descarregado aproximadamente 12–13 milhões de vezes por semana, com mais de 3.000 projetos a listá-lo diretamente como uma dependência.
Este amplo uso implica que a vulnerabilidade pode afetar um vasto número de aplicações – especialmente carteiras de criptomoedas, nós de blockchain e sistemas de assinatura eletrônica – assim como qualquer serviço que dependa de assinaturas ECDSA através de elípticas, especialmente ao lidar com entradas fornecidas externamente.
Esta vulnerabilidade permite que atacantes remotos comprometam totalmente dados sensíveis sem a devida autorização.
É por isso que a questão recebeu uma classificação de severidade extremamente alta – aproximadamente nove em 10 na escala CVSS.
É importante ressaltar que explorar esta vulnerabilidade requer uma sequência de ações muito específica e a vítima deve assinar dados arbitrários fornecidos pelo atacante.
Isso significa que alguns projetos podem permanecer seguros, por exemplo, se uma aplicação apenas assinar mensagens internas predeterminadas.
Ainda assim, muitos usuários não prestam tanta atenção ao assinar mensagens através de carteiras de criptomoedas quanto prestam ao assinar uma transação.
Sempre que um site Web 3.0 pede aos utilizadores para assinarem os termos de serviço, os utilizadores costumam negligenciar a sua leitura.
Da mesma forma, os utilizadores podem rapidamente assinar uma mensagem para um airdrop sem compreender completamente as implicações.
Detalhes técnicos
O problema vem de não lidar com os erros adequadamente durante a criação de assinaturas do ECDSA (Algoritmo de Assinatura Digital de Curva Elíptica).
ECDSA é comumente usado para confirmar que mensagens, como transações em blockchain, são genuínas.
Para criar uma assinatura, você precisa de uma chave secreta – apenas o proprietário a conhece – e de um número aleatório único chamado ‘nonce.’
Se o mesmo nonce for utilizado mais de uma vez para mensagens diferentes, alguém poderia descobrir a chave secreta usando matemática.
Normalmente, os atacantes não conseguem descobrir a chave privada a partir de uma ou duas assinaturas porque cada uma usa um número aleatório único (nonce).
Mas a biblioteca elíptica tem um defeito – se receber um tipo de entrada ímpar ( como uma string especial em vez do formato esperado ), pode criar duas assinaturas com o mesmo nonce para mensagens diferentes.
Este erro pode revelar a chave privada, o que nunca deve acontecer em um uso adequado de ECDSA.
Para explorar esta vulnerabilidade, um atacante precisa de duas coisas.
Uma mensagem válida e sua assinatura do usuário – por exemplo, de quaisquer interações anteriores
O utilizador deve assinar uma segunda mensagem criada explicitamente para explorar a vulnerabilidade
Com essas duas assinaturas, o atacante pode calcular a chave privada do usuário, obtendo acesso total a fundos e ações associados a ela. Informações detalhadas estão disponíveis no Aviso de Segurança do GitHub.
Cenários de exploração
Os atacantes podem explorar esta vulnerabilidade através de vários métodos, incluindo os seguintes.
Ataques de phishing que direcionam os usuários para sites falsos e solicitam assinaturas de mensagens
DApps maliciosos (aplicações descentralizadas) disfarçados como serviços inofensivos, como a assinatura de termos de uso ou participação em airdrops
Engenharia social convencendo os usuários a assinar mensagens aparentemente inofensivas
Comprometendo as chaves privadas dos servidores que assinam mensagens dos usuários
Um aspecto particularmente preocupante é a atitude geralmente relaxada dos utilizadores em relação à assinatura de mensagens em comparação com as transações.
Os projetos de criptografia frequentemente pedem aos usuários que assinem termos de serviço ou mensagens de participação no airdrop, potencialmente facilitando a exploração.
Então, pense nisso – você assinaria uma mensagem para reivindicar tokens gratuitos? E se essa assinatura pudesse custar todo o seu saldo em criptomoedas?
Recomendações
Os utilizadores devem atualizar rapidamente todas as aplicações e carteiras que utilizam a biblioteca elliptic para assinaturas para a versão segura mais recente.
Tenha cuidado ao assinar mensagens, particularmente de fontes desconhecidas ou suspeitas.
Os desenvolvedores de carteiras e aplicações devem verificar a versão da sua biblioteca elíptica.
Se algum usuário puder ser afetado pela versão vulnerável, os desenvolvedores devem informá-los sobre a necessidade urgente de atualização.
Gleb Zykov é o cofundador e CTO da HashEx Blockchain Security. Ele tem mais de 14 anos de experiência na indústria de TI e mais de oito anos em segurança na internet, além de uma forte formação técnica em tecnologia blockchain (Bitcoin, Ethereum e blockchains baseadas em EVM).
O conteúdo serve apenas de referência e não constitui uma solicitação ou oferta. Não é prestado qualquer aconselhamento em matéria de investimento, fiscal ou jurídica. Consulte a Declaração de exoneração de responsabilidade para obter mais informações sobre os riscos.
Alerta de Segurança HashEx – Uma Única Assinatura Pode Drenar a Sua Carteira - The Daily Hodl
Publicação de Convidado HodlXEnvie a Sua Publicação
Zero dias sem incidentes no espaço DeFi. Desta vez, a vulnerabilidade foi descoberta em uma ‘biblioteca elíptica’ amplamente utilizada.
O que torna a situação pior – a sua exploração pode levar a que hackers assumam o controlo das chaves privadas dos utilizadores e esvaziem as carteiras.
Tudo através de uma simples mensagem fraudulenta assinada por um utilizador. É este um problema crítico?
A primeira coisa a considerar é o fato de que bibliotecas como a elliptic fornecem aos desenvolvedores componentes de código prontos.
Isso significa que, em vez de escrever o código do zero e verificá-lo à medida que avançam, os desenvolvedores apenas pegam os elementos de que precisam.
Embora seja considerado uma prática mais segura, uma vez que as bibliotecas são continuamente utilizadas e testadas, isso também aumenta os riscos se uma vulnerabilidade passar despercebida.
A biblioteca Elliptic é amplamente utilizada em todo o ecossistema JavaScript. Ela alimenta funções criptográficas em muitos projetos de blockchain conhecidos, aplicações web e sistemas de segurança.
De acordo com as estatísticas do NPM, o pacote que contém o erro é descarregado aproximadamente 12–13 milhões de vezes por semana, com mais de 3.000 projetos a listá-lo diretamente como uma dependência.
Este amplo uso implica que a vulnerabilidade pode afetar um vasto número de aplicações – especialmente carteiras de criptomoedas, nós de blockchain e sistemas de assinatura eletrônica – assim como qualquer serviço que dependa de assinaturas ECDSA através de elípticas, especialmente ao lidar com entradas fornecidas externamente.
Esta vulnerabilidade permite que atacantes remotos comprometam totalmente dados sensíveis sem a devida autorização.
É por isso que a questão recebeu uma classificação de severidade extremamente alta – aproximadamente nove em 10 na escala CVSS.
É importante ressaltar que explorar esta vulnerabilidade requer uma sequência de ações muito específica e a vítima deve assinar dados arbitrários fornecidos pelo atacante.
Isso significa que alguns projetos podem permanecer seguros, por exemplo, se uma aplicação apenas assinar mensagens internas predeterminadas.
Ainda assim, muitos usuários não prestam tanta atenção ao assinar mensagens através de carteiras de criptomoedas quanto prestam ao assinar uma transação.
Sempre que um site Web 3.0 pede aos utilizadores para assinarem os termos de serviço, os utilizadores costumam negligenciar a sua leitura.
Da mesma forma, os utilizadores podem rapidamente assinar uma mensagem para um airdrop sem compreender completamente as implicações.
Detalhes técnicos
O problema vem de não lidar com os erros adequadamente durante a criação de assinaturas do ECDSA (Algoritmo de Assinatura Digital de Curva Elíptica).
ECDSA é comumente usado para confirmar que mensagens, como transações em blockchain, são genuínas.
Para criar uma assinatura, você precisa de uma chave secreta – apenas o proprietário a conhece – e de um número aleatório único chamado ‘nonce.’
Se o mesmo nonce for utilizado mais de uma vez para mensagens diferentes, alguém poderia descobrir a chave secreta usando matemática.
Normalmente, os atacantes não conseguem descobrir a chave privada a partir de uma ou duas assinaturas porque cada uma usa um número aleatório único (nonce).
Mas a biblioteca elíptica tem um defeito – se receber um tipo de entrada ímpar ( como uma string especial em vez do formato esperado ), pode criar duas assinaturas com o mesmo nonce para mensagens diferentes.
Este erro pode revelar a chave privada, o que nunca deve acontecer em um uso adequado de ECDSA.
Para explorar esta vulnerabilidade, um atacante precisa de duas coisas.
Com essas duas assinaturas, o atacante pode calcular a chave privada do usuário, obtendo acesso total a fundos e ações associados a ela. Informações detalhadas estão disponíveis no Aviso de Segurança do GitHub.
Cenários de exploração
Os atacantes podem explorar esta vulnerabilidade através de vários métodos, incluindo os seguintes.
Um aspecto particularmente preocupante é a atitude geralmente relaxada dos utilizadores em relação à assinatura de mensagens em comparação com as transações.
Os projetos de criptografia frequentemente pedem aos usuários que assinem termos de serviço ou mensagens de participação no airdrop, potencialmente facilitando a exploração.
Então, pense nisso – você assinaria uma mensagem para reivindicar tokens gratuitos? E se essa assinatura pudesse custar todo o seu saldo em criptomoedas?
Recomendações
Os utilizadores devem atualizar rapidamente todas as aplicações e carteiras que utilizam a biblioteca elliptic para assinaturas para a versão segura mais recente.
Tenha cuidado ao assinar mensagens, particularmente de fontes desconhecidas ou suspeitas.
Os desenvolvedores de carteiras e aplicações devem verificar a versão da sua biblioteca elíptica.
Se algum usuário puder ser afetado pela versão vulnerável, os desenvolvedores devem informá-los sobre a necessidade urgente de atualização.
Gleb Zykov é o cofundador e CTO da HashEx Blockchain Security. Ele tem mais de 14 anos de experiência na indústria de TI e mais de oito anos em segurança na internet, além de uma forte formação técnica em tecnologia blockchain (Bitcoin, Ethereum e blockchains baseadas em EVM).