As últimas semanas foram intermináveis para os desenvolvedores da MetaMask.
Ao reagir à notícia de que US$ 4,5 milhões de fundos foram roubados de carteiras de software no Solana, a equipe por trás do MetaMask — sem dúvidas, a carteira de software mais popular do Ethereum e de outras redes compatíveis — vasculhou o código-base de sua carteira para garantir que seus usuários não fossem afetados por um hack parecido.
Esse tipo de “treinamento de incêndio” também aconteceu em outro lugar. Após relatos de que a Near Wallet podia conter uma vulnerabilidade similar à das carteiras hackeadas no Solana, a conta do protocolo alertou, via Twitter, que era “bastante recomendável” que usuários alterassem suas configurações de segurança.
A busca por vulnerabilidades após ter havido uma invasão é uma das formas com que desenvolvedores lidam com a segurança. Num mundo ideal, essas falhas são encontradas antes de serem exploradas.
Anteriormente, a MetaMask afirmou que está trabalhando para reorganizar suas equipes e responder melhor às falhas de segurança, mas existem sinais de que estão tendo problemas para dar conta.
MetaMask não responde mensagens
Em um exemplo recente, o CEO da Aurox, Giorgi Khazaradze, afirmou que não obteve resposta da equipe da MetaMask quando tentou avisá-los sobre uma vulnerabilidade em junho.
Ele contou ao Decrypt que sua equipe estava analisando o código-base da MetaMask — que está disponível e pode ser acessado em seu repositório do GitHub —, pois estão desenvolvendo sua própria carteira como uma extensão de navegador.
A carteira já foi anunciada, mas ainda não foi lançada, e irá competir com a MetaMask. Basicamente, significa que Khazaradze quer se beneficiar ao questionar o que é, sem dúvidas, a maior adversária de seu novo produto.
Afinal, ConsenSys, a empresa que desenvolve a MetaMask acabou de finalizar uma rodada “series D” (quantia destinada a empresas que desejam atingir novos objetivos) de US$ 450 milhões e está avaliada em US$ 7 bilhões — um financiamento que acontece graças, em grande parte, à taxa em que a MetaMask está atraindo novos usuários.
Em março, a carteira tinha mais de 30 milhões de usuários ativos mensais — um aumento de 42% em relação aos 21 milhões registrados em novembro de 2021.
Khazaradze afirmou que sua equipe percebeu que seria possível usar um elemento HTML chamado “inline frame” ou “iframe” para acrescentar uma aplicação descentralizada (ou dapp, na abreviatura em inglês) oculta a uma página web.
Isso significa que um invasor poderia hipoteticamente criar uma página que se parece com uma aplicação legítima, mas se conectar a outra sem que o usuário da MetaMask veja.
Em vez de converter ethers por moedas para apoiar um novo projeto ou comprar um token não fungível (ou NFT), o usuário pode estar enviando suas criptomoedas direto para a carteira cripto de um ladrão.
Esse tipo de vulnerabilidade pode se beneficiar com o fato de que a MetaMask automaticamente faz com que usuários se conectem a uma dapp se detectá-la em uma página web.
É um comportamento padrão para a versão para navegador da MetaMask. Fora do contexto de vulnerabilidades e invasores, é um recurso que reduz a quantidade de cliques necessários entre um usuário e sua capacidade em interagir com dapps.
É similar, mas não é o mesmo que uma vulnerabilidade de “clickjacking” pelo qual a MetaMask pagou uma recompensa de US$ 120 mil em junho. Com “clickjacking”, um invasor esconde a MetaMask em uma página web e engana o usuário ao revelar dados privados ou transferir fundos.
“Essa é uma vulnerabilidade diferente. Isso era na própria MetaMask. Basicamente, você poderia fazer o iframe da MetaMask e [enganar] pessoas [via] clickjack”, explicou Khazaradze.
“Já a [solução] que encontramos é o iframe de dapps. A carteira se conecta automaticamente a essas dapps, o que pode permitir que um invasor te engane a realizar transações específicas.”
Khazaradze disse que tentou contatar a MetaMask sobre a vulnerabilidade no dia 28 de junho. Primeiro, ele tentou entrar em contato via chat de suporte da empresa e disse que foi orientado a criar uma publicação no GitHub, mas ele não se sentiu confortável em fazer isso.
Ele disse que enviou um e-mail diretamente ao suporte da MetaMask, mas não obteve uma resposta útil: “Estamos recebendo um número extremamente alto de perguntas. Em uma tentativa de melhorar o nosso desempenho em responder às solicitações, e-mails diretos ao suporte não estão mais disponíveis”.
Naquele momento, Khazaradze desistiu de tentar avisar à equipe sobre a vulnerabilidade e contatou o Decrypt.
Resposta da MetaMask
Herman Junge, membro da equipe de segurança da MetaMask, contou ao Decrypt que a equipe de suporte não gostaria que uma vulnerabilidade de iframe fosse listada no GitHub.
“Na MetaMask, levamos relatos de iframe muito a sério e damos a devida atenção em nosso programa de caça a falhas [“bug bounty”] na HackerOne. Se um pesquisador de segurança enviar seu relatório usando outra ocorrência, o convidamos à HackerOne”, disse ele via e-mail.
“Não temos registros de mensagem onde encorajamos pesquisadores a publicarem um relato de iframe no GitHub.”
Em uma conversa via e-mail com a equipe de relações públicas da MetaMask, o Decrypt descreveu a vulnerabilidade que o time da Aurox afirma ter encontrado. Em seu comunicado enviado por e-mail, Junge não reconheceu a suposta vulnerabilidade ou disse que a MetaMask iria investigar o problema.
Porém, ele disse que publicar um problema ativo de segurança antes de a equipe do aplicativo ter a chance de consertá-lo pode “colocar pessoas inocentes em risco desnecessário”.
Mas, até agora, os termos usados em suas mensagens de suporte não mencionam nada sobre a HackerOne, onde a MetaMask lançou um programa de caça a falhas em junho.
Etiqueta entre as empresas
Na comunidade de segurança, é uma gentileza profissional notificar, de forma privada, uma empresa sobre uma vulnerabilidade pelo mesmo motivo que é uma gentileza evitar gritar quando o zíper de alguém está aberto. A discrição dá aos desenvolvedores uma chance de corrigir a falha antes de outras pessoas perceberem.
Leia Também
Informar vulnerabilidades discretamente mantém a informação longe de quem iria se aproveitar delas antes de os desenvolvedores terem a chance de implementar uma correção.
Mas quando o processo de comunicação é confuso ou o remetente parece não responder, vulnerabilidades vêm a público antes de serem corrigidas — geralmente em uma tentativa de forçar a equipe a agir.
Janine Romer, pesquisadora de privacidade e jornalista investigativa, disse ter visto muitos exemplos de pessoas que tentaram entrar em contato de forma discreta e depois foram ao Twitter para informar vulnerabilidades.
“Coisas similares acontecem com carteiras Bitcoin onde, às vezes, a única forma de chamar a atenção é apenas tuitar para as pessoas — o que é ruim. Essa não deveria ser a forma como se deve lidar com as coisas”, contou ela ao Decrypt.
“Também deveria ser possível informar coisas de forma privada e não ter de criar um espetáculo público. Mas isso incentiva pessoas a fazerem um espetáculo público, pois ninguém está respondendo discretamente.”
Em janeiro, Alex Lupascu, cofundador do Omnia Protocol, tuitou que ele e sua equipe encontraram uma “grave vulnerabilidade de privacidade” na MetaMask e publicou um artigo descrevendo como um invasor poderia se aproveitar da falha.
Harry Denley, pesquisador de segurança que trabalha com a MetaMask, respondeu ao tuíte, perguntando se a equipe tinha sido notificada ou afirmado se estava trabalhando para solucionar o problema. Lupascu disse que sim, mas que havia informado cinco meses antes e a vulnerabilidade ainda poderia ser explorada.
Depois, o cofundador da MetaMask, Dan Finlay, entrou na conversa.
“É, acredito que esse problema seja bem conhecido há muito tempo, então não acho que um período de manifestação se aplicasse”, tuitou. “Alex está certo em nos criticar por não corrigir [a falha] mais cedo. [Estamos] começando a trabalhar nela agora. Obrigado pelo chute na bunda e desculpa por precisarmos dele.”
Como usar carteiras de software de forma segura
Alguns meses depois, o programa de caça a bugs mencionado acima foi lançado. Não é como se todos os relatos de vulnerabilidade não fossem abordados.
Em junho, a empresa de segurança Web3 Halborn Security informou uma vulnerabilidade que poderia impactar usuários do MetaMask e foi elogiada pela conta da MetaMask no Twitter.
David Schwed, diretor de operações da Halborn, afirmou que obteve resposta da equipe da MetaMask. Abordaram e corrigiram a vulnerabilidade. Mesmo assim, ele disse que usuários devem ter cuidado em manter muitos fundos em uma carteira de software.
“Eu não necessariamente tomaria riscos com a MetaMask. [A carteira] atende um propósito neste momento. Agora, se eu fosse uma organização, eu não armazenaria centenas de milhões de dólares na MetaMask, mas eu provavelmente não os armazenaria em uma carteira específica”, disse ele.
“Eu diversificaria minhas alocações, faria autocustódia e usaria outras práticas de segurança para gerenciar meu risco.”
Para ele, a forma mais segura e responsável de usar carteiras de software é manter chaves privadas em um módulo de segurança de hardware (ou HSM). Duas das carteiras de hardware mais populares, como também são chamadas no setor cripto, incluem Ledger e Trezor.
“No fim das contas, é isso o que está realmente armazenando minhas chaves privadas e é onde a assinatura das transações está realmente acontecendo”, disse Schwed. “E sua carteira [de navegador] é apenas um mecanismo para a transmissão à blockchain e construção da transação.”
Falta de conhecimento
O problema é que nem todo mundo usa carteiras de extensão para navegador dessa forma. Mas houve tentativas de lidar com esse problema, tanto ao dar a desenvolvedores melhores orientações sobre como desenvolver segurança em suas aplicações e ao ensinar usuários como manter seus fundos seguros.
É onde o CryptoCurrency Certification Consortium (ou C4) entra. É a mesma organização que criou as certificações profissionais de Bitcoin e Ethereum. Uma curiosidade: o criador do Ethereum, Vitalik Buterin, ajudou a elaborar o exame “Certified Bitcoin Professional” antes de inventar o Ethereum.
Jessica Levesque, diretora executiva do C4, afirma que ainda existe uma grande lacuna de conhecimento para novos adeptos a cripto.
“O que realmente assusta sobre isso é que as pessoas que estão no setor cripto há um tempo provavelmente pensam: ‘É claro que não deveríamos deixar muito dinheiro na MetaMask ou em qualquer outra carteira quente. Tira de lá”, contou ela ao Decrypt. “Mas, a maioria de nós, quando começou, não sabia disso.”
Por outro lado, existe uma premissa de que projetos de código aberto são mais seguros porque seu código está disponível para revisão por pesquisadores independentes.
Na realidade, na quarta-feira (3), após o hack a carteiras do Solana, um desenvolvedor, cujo usuário é @fubuloubu, chamou muita atenção no Twitter por afirmar que é uma “irresponsabilidade não ter código aberto em cripto”.
Noah Buxton, que lidera as práticas blockchain e de ativos digitais da Armanino e faz parte do Conselho de Padrões de Segurança para Criptomoedas no C4, afirma que a baixa visibilidade de projetos menores ou ofertas de pagamentos a caga a falhas a tokens nativos possa atuar como um desincentivo para que pesquisadores gastem seu tempo buscando por essas vulnerabilidades.
“No código aberto, a atenção dos desenvolvedores é bastante impulsionada ou pela notoriedade ou por uma certa monetização”, disse ele.
“Por que gastar tempo buscando por falhas em uma nova corretora descentralizada quando existe pouca liquidez, o token de governança não vale nada e a equipe quer te pagar com o token de governança como recompensa. Eu preferiria gastar meu tempo no Ethereum ou em outra [rede de] primeira camada.”
*Traduzido por Daniela Pereira do Nascimento com autorização do Decrypt.co.
Quer negociar mais de 200 ativos digitais na maior exchange da América Latina? Conheça o Mercado Bitcoin! Com 3,8 milhões de clientes, a plataforma do MB já movimentou mais de R$ 50 bilhões em trade in. Crie sua conta grátis!