Como hackear uma carteira física de criptomoedas

4 fev 2019

As carteiras de hardware são consideradas o tipo mais seguro para guardar criptomoeda. No entanto, nada é 100% seguro e elas também podem ser comprometidas. Disso, os pesquisadores de segurança Thomas Roth, Dmitry Nedospasov e Josh Datko entendem e demonstraram inúmeras maneiras de fazê-lo no 35º Chaos Communication Congress,. Mas antes de mergulhar a fundo no tema, vamos falar um pouco sobre o que realmente é uma carteira de hardware e como ela funciona.

Pesquisadores de segurança descobriram inúmeras maneiras de comprometer as carteiras de hardware de criptomoedas de Ledger e Trezor

Pesquisadores de segurança descobriram inúmeras maneiras de comprometer as carteiras de hardware de criptomoedas de Ledger e Trezor

O que é uma carteira de criptomoedas?

Para começar, vamos falar um pouco sobre o que é uma carteira de criptomoedas em geral. Para simplificar, uma carteira é uma conta de criptomoeda. A “conta” consiste em um par de chaves criptográficas, uma pública e outra privada. Essas duas credenciais são semelhantes ao login e senha: a chave pública é usada como um endereço da carteira, e a privada é usada para acessar moedas – isto é, para assinar transações de saída.

Uma dúvida que pode aparecer é pensar como múltiplos pares de chave pública-privada são gerados em sistemas de criptomoedas, para diferentes carteiras pertencentes à mesma pessoa? Pode ser inconveniente armazenar vários pares de chaves gerados de forma totalmente independente. Então, o que os sistemas de criptomoedas fazem é gerar apenas um grande número, chamado de semente criptográfica, e derivar múltiplos pares de chave pública-privada, a partir da semente de várias carteiras, de maneira previsível.

Esse grande número – chamado semente criptográfica – é o que um usuário de um sistema de criptomoeda realmente armazena.

Ao contrário dos sistemas financeiros tradicionais, as criptomoedas geralmente não têm autoridade centralizada, não possuem mecanismo de registro, seguro de estorno e tampouco opção de recuperação de conta. Qualquer pessoa que possua a semente criptográfica e, portanto, as chaves derivadas dela, possui as carteiras de criptomoeda correspondentes. E se a semente é roubada ou perdida, o mesmo acontece com as moedas nas carteiras.

A propósito, formalmente uma carteira é um par de chaves pública-privada. No entanto, na maioria das vezes significa que os meios de armazenar essas chaves também são conhecidos como carteiras. Se você colocar dessa maneira, uma carteira de hardware é um dispositivo que armazena carteiras de criptomoeda. Fácil, certo?

Por que alguém precisaria de uma carteira de criptomoedas de hardware?

Como você pode supor, manter essa valiosa semente o mais segura possível é uma boa ideia. E, existem muitas maneiras de armazená-la, cada uma possui prós e contras. O método mais conveniente é o de armazenamento da semente no seu computador, smartphone ou, ainda mais prático, online. No entanto, a busca de malwares por carteiras de criptomoedas não é algo incomum. Quanto aos serviços de carteira online, eles podem ser hackeados ou até mesmo falir devido ao desaparecimento de grandes quantidades de moedas.

Os serviços de carteiras de criptomoedas estão sujeitos a outros problemas que comprometem sua utilização, como phishing, falsificação de informações de pagamento e perda de carteiras devido a falhas de hardware e, assim por diante — logo, em algum momento, as pessoas decidiram organizar essa bagunça fazendo carteiras de criptomoedas de hardware, dispositivos projetados para armazenar sementes criptográficas de forma confiável e segura.

Como funcionam as carteiras de criptomoedas de hardware?

A principal ideia por trás de uma carteira de criptomoedas de hardware é armazenar a semente criptográfica de uma maneira que ela nunca saia do dispositivo. Todo o processo de criptografia é desenvolvido dentro da carteira e não no computador em que está conectado. Portanto, mesmo que seu dispositivo seja invadido, os hackers não poderão roubar suas chaves.

Além disso, o acesso está protegido, com um código, por exemplo, e o usuário pode verificar a transação no dispositivo  para confirmar ou negar a operação.

Quanto ao exterior do dispositivo, normalmente, uma carteira de criptomoedas de hardware consiste em um pequeno adaptador conectado via USB com uma tela e alguns botões que possibilitam inserir as senhas e confirmar as transações.

Porém, o funcionamento interno de tais dispositivos pode variar. Os dois principais fabricantes de carteiras de hardware – Trezor e Ledger – utilizam diferentes abordagens de design.

Abordagem de Ledger: a semente criptográfica é armazenada no chip Secure Element

Os dispositivos Ledger (Ledger Nano S e Ledger Blue) possuem dois chips principais.

Um é o Secure Element, microcontrolador projetado para armazenar dados criptográficos altamente sensíveis. Mais especificamente, esses chips são usados ​​em cartões SIM, em cartões bancários com chip e em smartphones compatíveis com Samsung Pay e Apple Pay.

O segundo chip é um microcontrolador de uso geral que lida com tarefas periféricas: manter a conexão USB, controlar a exibição da telas e dos botões, e assim por diante. Na verdade, esse microcontrolador age como um intermediário entre o Secure Element e todo o resto, inclusive o usuário. Por exemplo, toda vez que o usuário precisa confirmar uma transação, eles estão na verdade passando por este microcontrolador de uso geral e não pelo chip Secure Element.

Mesmo que o armazenamento de sementes criptográficas seja feito em um chip protegido, não significa que o dispositivo de Ledger seja totalmente impenetrável. Por um lado, embora seja muito difícil invadir diretamente um Secure Element e roubar uma semente criptográfica, é relativamente fácil comprometer um microcontrolador de uso geral e, enganar uma carteira de hardware a fim de confirmar as transações de um estranho.

Os pesquisadores inspecionaram o firmware do Ledger Nano S e descobriram que ele pode ser reativado com uma versão comprometida, caso um determinado valor for gravado em um determinado endereço de memória. Este endereço de memória é introduzido na lista de proibições. No entanto, o microcontrolador usado no dispositivo oferece suporte ao remapeamento de memória, que altera o endereço tornando-o acessível. Para fins de demonstração, os pesquisadores exploraram esse recurso e carregaram o firmware modificado no Nano S. Com intuito de demonstração, neste firmware modificado adicionaram o jogo Snake. Mas poderiam ter inserido, por exemplo, um módulo malicioso que altera os endereços de carteira em todas as transações de saída.

Uma abordagem alternativa para comprometer uma carteira de hardware é utilizar um implante de hardware. Josh Datko conseguiu inserir em um Ledger Nano S, um implante barato de RF-triggered que pressiona o botão de confirmação ao receber um comando de radiofrequência malicioso. O mesmo método, provavelmente, funciona com qualquer tipo de carteira de hardware; o pesquisador escolheu o Ledger Nano S porque é um dos menores e, portanto, o mais desafiador para esse tipo de ataque físico.

Outro dispositivo do mesmo fabricante, o Ledger Blue, mostrou-se vulnerável a ataques de canal lateral. O Ledger Blue é uma carteira de hardware com uma tela ampla e uma bateria grande. Ele tem uma falha no projeto de placa de circuito, que dispersa sinais de radiofrequência bastante distintos enquanto o usuário está digitando uma senha. Pensando nisso, os pesquisadores registraram os sinais e treinaram um algoritmo de aprendizado de máquina para reconhecê-los com até 90% de precisão.

Os dispositivos da Trezor funcionam de maneira um pouco diferente. Eles não usam um Secure Element, então tudo no dispositivo é controlado por um único chip, um microcontrolador de uso geral baseado na arquitetura ARM. Esse chip é responsável pelo armazenamento e processamento de dados criptográficos e também pelo gerenciamento da conexão USB, da tela, dos botões e assim por diante.

Na teoria, essa abordagem de design poderia facilitar o hackeamento do firmware do dispositivo e, assim, dar acesso à semente criptográfica armazenada na memória flash do microcontrolador. Entretanto, como os pesquisadores disseram, Trezor fez um ótimo trabalho. Com o firmware protegido, os pesquisadores tiveram que hackear o hardware por meio do qual obtiveram sucesso.

Ao utilizar uma técnica de hacking chamada voltage glitching (aplicação de baixa tensão a um microcontrolador, que causa efeitos na performance do chip), eles trocaram o status do chip do Trezor One de “sem acesso” para “acesso parcial”, o que lhes permitiu ler a RAM do chip, mas não o armazenamento flash. Depois disso, descobriram que, quando o processo de atualização do firmware é iniciado, o chip coloca a semente criptográfica na RAM para retê-la, enquanto o flash está sendo sobrescrito. Dessa maneira, foi possível conseguir obter todo o conteúdo da memória. Encontrar a semente criptográfica foi fácil; pois estava armazenada numa RAM não criptografada, na forma de uma expressões mnemônicas (palavras reais em vez de números aleatórios) de fácil detecção.

Conclusão

Eu tenho que mencionar aqui que a maioria das formas de invasão descritas por Thomas Roth, Dmitry Nedospasov e Josh Datko são bastante sofisticadas – e requerem acesso físico ao dispositivo. Portanto, não se apresse em jogar seu Ledger ou Trezor em uma lixeira. Contanto que ninguém tenha acesso a eles, seus bitcoins devem estar bem (embora um pouco depreciados).

No entanto, é um bom ter em mente a existência de ataques na cadeia de suprimentos. As carteiras de hardware são relativamente fáceis de adulterar e podem ser comprometidas mesmo antes da compra. Naturalmente, que o mesmo vale para laptops ou smartphones normais. No entanto, os invasores não podem ter certeza se um laptop em particular será usado para armazenamento de criptomoeda. Carteiras de hardware, neste contexto, ainda são garantidas.

Os fabricantes de carteiras de hardware estão tentando resolver o problema, por exemplo, usando adesivos de segurança em pacotes de dispositivos e criando páginas em seus sites que permitem que os clientes realizem verificações de segurança online de suas carteiras. Porém, essas medidas além de confusas, podem não ser úteis o suficiente.

De qualquer forma, ao contrário de outras carteiras de hardware, os dispositivos da Ledger e da Trezor são projetados com total segurança. Apenas não se convença de que são 100% seguros.

Dê alguns passos adicionais para proteger suas criptomoedas:

  • Compre carteiras de criptomoedas de hardware apenas de fornecedores confiáveis.
  • Ao efetuar a compra, verifique cuidadosamente se há sinais de adulteração.
  • Para ter mais certeza, abra o dispositivo e certifique-se de que nenhum elemento extra esteja conectado à placa de circuito.
  • Guarde a sua criptocarteira em local seguro e não permita que pessoas que você não confia façam uso dela.
  • Proteja o computador que você usa com criptografia de um software de segurança confiável. Para executar uma boa parte das invasões descritas acima, é necessário que o malware seja instalado no computador ao qual a carteira de hardware está conectada.

Dicas extras para  Trezor:

  • O Trezor é uma plataforma de código aberto, tanto de software quanto de hardware. Então, se você é habilidoso o suficiente com eletrônica, pode construir sua própria carteira de hardware, utilizando componentes prontos para uso. Dessa forma, você terá 100% de certeza de que ninguém mexeu no hardware da sua carteira.
  • Os dispositivos Trezor fornecem proteção extra por meio de uma frase secreta, capaz de proteger contra cibercriminosos que tentem roubar as sementes (a ideia desse modo é que a semente armazenada é incompleta sem a frase secreta). Considere a utilização desse método.

Aqui está a palestra original. Dê uma olhada – é divertido e útil para usuários de carteiras de hardware.