Clube de código aberto: Monero se esquiva de outro ataque com a ajuda da comunidade

Esta semana, os desenvolvedores do Monero (XMR) corrigiram um bug que poderia permitir que um invasor "queimasse" os fundos da carteira de uma organização. A violação foi inicialmente revelada por um membro da comunidade, e os desenvolvedores do XMR foram rápidos o suficiente para consertá-lo antes que qualquer dano fosse feito.

Anonimato acima de tudo: Como o Monero funciona

Simplificando, o Monero (XMR) é uma criptomoeda como o Bitcoin (BTC), mas com um foco adicional no anonimato. Foi criado em 2014, quando o usuário do bitcointalk.org thankful_for_today bifurcou a base de código da Bytecoin no nome BitMonero. Para estabelecer a nova moeda, ele usou idéias que foram descritas pela primeira vez em um livro branco de 2013 chamado "Cryptonote", escrito por uma personalidade anônima, Nicolas van Saberhagen. Ironicamente, o BitMonero foi logo bifurcado por desenvolvedores de código aberto, e intitulado "Monero" (que significa "moeda" em esperanto). Ele permaneceu como um projeto de código aberto desde então.

O XMR possui consideravelmente mais propriedades de privacidade que o BTC: Em vez de ser apenas uma moeda descentralizada, o Monero foi projetado para ser totalmente anônimo e virtualmente impossível de ser rastreado. Assim, o XMR é baseado no algoritmo hash CryptoNight (PoW), que permite usar "assinaturas de anel" (que misturam o endereço do remetente com um grupo de outros, tornando mais difícil rastrear transações), "endereços furtivos" (que são gerados para cada transação e tornam impossível descobrir o destino real de uma transação por outra pessoa que não sejam o remetente e o destinatário), e "transações sigilosas" (que escondem o valor transferido).

Em 2016, a XMR experimentou mais crescimento em capitalização de mercado e volume de transações do que qualquer outra criptomoeda (um aumento de quase 2800%, conforme a CoinMarketCap). Muito desse crescimento veio da economia subterrânea. Sendo um altcoin feito sob medida para transações totalmente privadas, o Monero acabou sendo aceito como uma forma de moeda nos mercados obscuros como Alphabay e Oasis. Especificamente, depois de estar integrado na darknet no verão de 2016, seu valor "aumentou imediatamente em torno de seis vezes", segundo a Wired.

"Esse aumento entre pessoas que realmente precisam ser privadas é interessante", disse Riccardo Spagni, um dos desenvolvedores do núcleo da Monero, disse em janeiro de 2017. "Se é bom o suficiente para um traficante de drogas, é bom o suficiente para todos os outros."

A alegada privacidade de Monero continua a ser um tema controverso, pois alguns sugerem que a moeda não é de fato totalmente anônima. Em uma entrevista em agosto à Bloomberg, a agente especial da Agência Antidrogas dos Estados Unidos (DEA), Lilita Infante, observou que, embora as moedas focadas em privacidade sejam menos líquidas e mais anônimas que o BTC, a DEA “ainda tem maneiras de rastrear” altcoins como Monero e Zcash. Infante concluiu:

“O blockchain na verdade nos dá muitas ferramentas para identificar pessoas. Eu realmente quero que eles continuem usando [criptomoedas].”

Curiosamente, enquanto o mais recente relatório de cibercrime da Europol sugere que o BTC continua a ser a cripto mais popular para atividades criminosas, também prevê um aumento na demanda por altcoins focados no anonimato, incluindo o Monero (XMR).

A natureza focada na privacidade do Monero também impede que ele seja listado em algumas casas de câmbio cripto compatíveis. Por exemplo, em junho, a Coincheck, sediada no Japão, retirou o XMR e três outras altcoins focadas no anonimato para seguir os procedimentos de Financiamento Contra o Terrorismo (CFT) e Antilavagemd e DInheiro (AML) emitidos pelo regulador financeiro local.

O bug burning: Ameaça potencial ao ecossistema Monero

Em 18 de setembro, o usuário u/s_c_m_l descreveu um ataque hipotético ao ecossistema XMR no subreddit oficial do Monero:

“Eu posso imaginar um ataque em que 'A' obtenha [uma] grande quantidade de XMR e [envie] para a 'Casa de câmbio B' em muitas transações com o mesmo endereço invisível. "A" então troca aquele XMR por outra moeda e sai, deixando a casa de câmbio paralisada [e] incapaz de usar aquele XMR."

É importante ressaltar que o blockchain Monero "queima" as transações XMR entre endereços invisíveis idênticos, considerando-os ilegítimos. Em vez disso, apenas uma única transação "correta" poderia passar. O XMR queimado, por sua vez, é totalmente inutilizável, pois não pode ser substituído.

Detalhes mais específicos sobre o ataque foram descritos em uma postagem no blog do Monero:

“Um atacante primeiro gera uma chave de transação privada aleatória. Posteriormente, eles modificam o código para usar meramente essa chave de transação privada específica, o que garante que várias transações para o mesmo endereço público (por exemplo, uma carteira ativa da casa de câmbio) sejam enviadas para o mesmo endereço invisível. Posteriormente, eles enviam, digamos, mil transações de 1 XMR para uma casa de câmbio. Como a carteira da casa não avisa sobre essa anormalidade específica (ou seja, fundos que estão sendo recebidos no mesmo endereço sigiloso), a casa irá, como de costume, dar crédito ao invasor com 1000 XMR."

“O atacante então vende seu XMR por BTC e, por fim, retira este BTC. O resultado da(s) ação(ões) do hacker é que a casa é deixada com 999 saídas não impossíveis de gastar/queimadas de 1 XMR.”

Simplificando, o bug basicamente permitia aos hackers queimarem os fundos da carteira de uma organização — como a de uma casa de câmbio — enquanto apenas pagavam as taxas de transação da rede. Embora não conseguissem dinheiro, "provavelmente há meios indiretos para se beneficiar", como sugeriu a equipe da Monero. Por exemplo, os atacantes poderiam manipular o mercado, já que teriam o controle sobre o suprimento de moeda XMR.

Monero lidou com a violação com calma

A teoria do Redditor foi amplamente discutida no subreddit do Monero, e os desenvolvedores entraram em contato com um anúncio público logo depois de corrigir o problema. Em 25 de setembro, a equipe do Monero declarou que um patch privado foi "criado e depois incluído no código" depois de descobrir a possível vulnerabilidade. Depois disso, eles notificaram "o maior número possível de casas de câmbio, serviços e comerciantes", explicando que o patch tinha que ser aplicado no topo da ramificação da versão v0.12.3.0.

Em uma postagem no blog, os desenvolvedores do Monero argumentaram que esse “claramente não era o método preferido” porque algumas partes do ecossistema do Monero ainda eram deixadas de fora, mas havia tempo limitado para eliminar o bug. Depois disso, a falha foi anunciada via correio público, já que é “obrigatório ser inscrito na lista de discussão pública” para qualquer organização que lide com o Monero, argumentaram os desenvolvedores.

Finalmente, a Monero afirma que o bug "não afetou o protocolo e, portanto, o suprimento de moeda não foi afetado", portanto, nenhum invasor foi rápido o suficiente para realmente explorar o bug.

A comunidade XMR se mantém alerta

Esta não foi a primeira preocupação de segurança em relação ao Monero no mês passado. No início de setembro, usuários do Twitter e do Reddit começaram a apontar que a extensão MEGA Chrome estava comprometida. A extensão MEGA Chrome é uma ferramenta que alega melhorar o desempenho do navegador, reduzindo o tempo de carregamento da página, além de fornecer um serviço de armazenamento em nuvem.

O Redditor u/gattacus postou no subreddit oficial do Monero que a versão 3.39.4 da extensão MEGA Chrome parecia evidente:

“Houve uma atualização na extensão e o Chrome solicitou nova permissão (leia os dados em todos os sites). Isso me fez suspeitar e eu verifiquei o código de extensão localmente (que é na maior parte javascript de qualquer maneira). P MEGA também tem o código fonte da extensão no github […] Não houve commit recentemente. Para mim, parece que a conta da sua loja virtual do Google foi invadida ou que alguém da MEGA fez isso. Mas isso é pura especulação."

O aplicativo foi removido da loja on-line do Chrome após cerca de quatro horas. Mais tarde, a equipe do MEGA esclareceu que a versão 3.39.4 era uma atualização maliciosa realizada por hackers desconhecidos com o objetivo de comprometer as informações privadas dos usuários. Em breve, ficou claro que o ataque não se centrou especificamente em Monero, pois o código malicioso foi ativado em sites como Amazon, Google, Microsoft, GitHub e MyEtherWallet, além dos serviços de carteira da Monero XMR. Desta vez, a falha não estava no final do Monero.

O "bug burning", por sua vez, foi possível devido a uma falha no código do XMR, mas os desenvolvedores reagiram rapidamente ao sinal de alerta gerado pela comunidade da altcoin.