Um garoto de 15 anos descobriu uma falha grave nas carteiras de hardware de criptomoedas, Ledger. Segundo o garoto, um código basicamente simples conseguiu invadir o hardware.
Carteiras de hardware como as vendidas pela Ledger são projetadas para proteger as chaves privadas do usuário contra softwares mal-intencionados que podem tentar coletar essas credenciais do computador do usuário. Os dispositivos permitem transações por meio de uma conexão a uma porta USB no computador do usuário, mas não revelam a chave privada no computador.
No entanto, Saleem Rashid , um garoto de 15 anos do Reino Unido, descobriu uma maneira de adquirir as chaves privadas dos dispositivos Ledger. O método de Rashid exige que um invasor tenha acesso físico ao dispositivo e, normalmente, esses métodos não seriam notáveis porque se enquadram na regra de segurança número 1, ou seja, se um invasor tiver acesso físico ao dispositivo, ele não será mais seu dispositivo.
O problema é que a demanda do consumidor por produtos da Ledger frequentemente superou a capacidade da empresa de produzi-los (já vendeu mais de um milhão de seus modelos mais populares da Nano S até hoje). Isso levou o diretor de tecnologia da empresa a declarar publicamente que o modelo de segurança embutido de Ledger é tão robusto que é seguro comprar seus produtos de uma ampla gama de vendedores terceirizados, incluindo a Amazon e o eBay.
Mas Rashid descobriu que um revendedor dos produtos de Ledger poderia atualizar os dispositivos com códigos maliciosos que ficariam à espera de um potencial comprador. Quando a vítima usar o dispositivo, então seria roubado as criptomoeda do usuário.
O ponto crucial do problema é que os dispositivos da Ledger contêm um chip de processador seguro e um chip de microcontrolador não seguro. O último é usado para uma variedade de finalidades não relacionadas à segurança, desde o manuseio das conexões USB até a exibição do texto no display digital do Ledger, mas os dois chips ainda transmitem informações entre si. Rashid descobriu que um invasor poderia comprometer o processador inseguro (o microcontrolador) em dispositivos Ledger para executar códigos maliciosos sem ser detectado.
Os produtos da Ledger contêm um mecanismo de verificação para garantir que o código que liga os dispositivos não tenha sido modificado, mas o código de prova de conceito de Rashid – divulgado com um anúncio da Ledger sobre uma nova atualização de firmware projetada para corrigir o bug – permite que um invasor force o dispositivo a evitar essas verificações de segurança.
“Você está essencialmente confiando em um chip não seguro para não mudar o que é exibido na tela ou alterar o que os botões estão dizendo”, disse Rashid em entrevista ao KrebsOnSecurity. “Você pode instalar o que quiser nesse chip não seguro, porque o código em execução pode mentir para você.”
Kenneth White , diretor do Open Crypto Audit Project, teve a oportunidade de revisar as descobertas de Rashid antes de sua publicação hoje. White disse que ficou impressionado com a elegância do código de ataque de prova de conceito, que Rashid enviou a Ledger aproximadamente quatro meses atrás. Um vídeo de Rashid demonstrando como o seu ataque funciona está disponível na internet.
Apesar da Ledger ter divulgado uma atualização que supostamente corrige o bug, o garoto informou que essa correção não resolve o problema, pois uma pequena modificação no seu código hacker o faz capaz de invadir a carteira novamente. Ele destaca também que a falha não se dá ao código da carteira, mas sim ao hardware e que apenas uma atualização de sistema não irá resolver o problema.