Leandro Trindade: Atlas Quantum teve falha grave que permitia a troca da senha de qualquer conta
A comunidade brasileira de criptomoedas ainda é pequena e, dentro de uma comunidade, cada um ajuda com a habilidade que tem. Há algum tempo atrás eu acredito ter encontrado uma forma de ajudar a tornar esse cenário mais seguro.
Isso é feito usando algo poderoso e bastante simples: o livre mercado. Inspirado nele, eu criei uma espécie de ranking em que as exchanges e outras plataformas de criptomoedas possam concorrer pelo topo, de forma completamente livre, gratuita e imparcial. O importante aqui é desincentivar o amadorismo.
Dizer que é seguro todo mundo diz, agora é a hora de provar.
No começo de Julho, eu realizei testes de segurança na plataforma da Atlas Quantum, para rankear ela. Durante esses testes, eu bati em algumas falhas de segurança, sendo uma crítica.
Conforme meus procedimentos, realizei um relatório para eles levantando cada um dos achados e oferecendo dicas adicionais de segurança. A Atlas então se prontificou a corrigi-las.
Abaixo eu faço um relato das questões mais graves por mim levantadas, e que poderiam ter um impacto grave se não corrigidas:
Como ocorreu
Algum tempo antes do vazamento de dados de clientes da Atlas Quantum eu pesquisei e descobri uma potencial falha na plataforma que permitiria um atacante trocar a senha dos clientes.
Para esse ataque acontecer, seria necessário apenas saber o e-mail ou o número de telefone da vítima em questão, ao preencher essa informação no campo de “esqueci minha senha” o back-end enviava um e-mail com um link secreto para prosseguir com o procedimento de reset.
O problema é que o back-end acabava vazando e entregando esse link secreto também para a pessoa que executou a solicitação, como se pode ver pela tela abaixo. Isso significa que o atacante não precisava ter acesso ao e-mail da vítima para prosseguir com o processo de reset.
Para ser justo, na tela seguinte, no entanto, era necessário digitar 6 números enviados ao telefone ou o e-mail da vítima, sem captcha, mecanismo conhecido para evitar robôs, esses números não eram vazados, mas poderiam ser descobertos facilmente por tentativa e erro.
Um computador com uma boa conexão, no pior dos casos, levaria em torno de 3 a 5 dias tentando números até conseguir realizar a troca de senha com sucesso.
Prova de conceito
De forma a provar esse risco eu elaborei dois programas de brute-force como prova de conceito e enviei para a equipe de tecnologia deles. Através do uso da rede TOR esses programas trocavam periodicamente o endereço IP de origem, efetivamente permitindo a penetração de firewalls e ultrapassando medidas preventivas.
O primeiro programa elaborado realiza um ataque simples para adivinhar o código de 6 números, já o segundo reseta esse código diversas vezes para tentar forçá-lo a um valor desejado (retoken).
Ambos os códigos para as provas de conceito estão sendo liberadas agora no meu GitHub, vale ressaltar que esses programas de brute force não funcionam mais e estão sendo publicados agora apenas para fins educativos e de pesquisa.
Falha na implementação do 2FA
Além dessa falha, a Atlas possuía uma implementação errônea do sistema de 2FA, similar ao erro antes encontrado por mim na Foxbit e Bitcâmbio.
Na implementação presente no momento dos testes, não era exigida a digitação desse código no ato de login, no entanto, após ter entrado, o cliente ou atacante já poderia imediatamente proceder para desligar o 2FA.
O ato de desativação (ou troca) do 2FA tem que ser um ato burocrático, exigindo prova da real identidade do cliente, caso contrário a segurança provida por ele acaba sendo inutilizada.
O vazamento de contas e a decisão de aguardar
Essas falhas unidas a lista de contas vazada da Atlas poderiam ser usadas em conjunto para fazer ataques direcionados, vale lembrar que a lista oferecia não só o login dos clientes como o saldo de cada um na plataforma.
O potencial destrutivo de um ataque direcionado seria extremo para os clientes, levando isso em questão, para não dar armas ao inimigo, eu segurei por diversos meses esse disclosure, programando então a release durante a conferência Bitconf Summer Edition de 2018.
Por motivos de força maior não poderei comparecer à conferência mas mantendo meu compromisso com a transparência e a comunidade estou liberando a falha que irá compor a nova lista de plataformas por ordem de segurança.
Um apelo às plataformas
Eu aproveito esse caso para fazer um apelo: é importante que as plataformas de criptos nunca usem telefone para recuperação de senhas, isso porquê é muito fácil “clonar” os números dos clientes para seguir com a troca de senhas.
Isso ficou provado após o vazamento da lista da Atlas em que uma série de ataques coordenados desse tipo foram tentados contra os clientes top 10 mais ricos dela. Um deles, um amigo próximo, só não teve a senha trocada e saldo roubado pois seguiu minhas recomendações logo após o incidente.
Permitir reset de senha por telefone é uma brecha de segurança por si só, eu sei que o Google, Twitter e grandes nomes permitem isso mas eles também estão errados.
- Relatório antigo sobre a falha de 2FA encontrada na Foxbit, contém informações sobre boas práticas na implementação de 2FA e outras medidas de segurança: https://goo.gl/46oWm1
- Código da prova de conceito: https://github.com/Megarushing/atlack
Resumo da falha
Severidade: Crítica
Tempo para correção: Mais de 30 dias, não recebi acompanhamento, respostas ou qualquer informação para poder dar um momento exato.
Nível de atenção ao relatório de falha: Baixo, o contato foi feito diretamente com a diretoria tecnológica da Atlas, no entanto, pelo meu ponto de vista, não acredito ter recebido a atenção devida.
O post Leandro Trindade: Atlas Quantum teve falha grave que permitia a troca da senha de qualquer conta apareceu primeiro em Portal do Bitcoin.