Protestware: desenvolvedor sabota projeto com “mensagem de paz” para Ucrânia

Módulo de código aberto node-ipc foi sabotado por seu próprio criador em protesto contra invasão da Ucrânia pela Rússia

Emerson Alecrim
Por
Código Javascript (imagem ilustrativa: Ferenc Almasi/Unsplash)
Código Javascript (imagem ilustrativa: Ferenc Almasi/Unsplash)

E se, do nada, o seu computador exibisse uma “mensagem de paz”? Provavelmente, você desconfiaria de um vírus ou de um hacker. Mas esse não é o caso de desenvolvedores que usam um módulo chamado node-ipc: ele foi sabotado pelo seu próprio criador para exibir mensagens de apoio à Ucrânia.

Não é a primeira vez que um programador utiliza um projeto próprio para se manifestar contra algo. No início do ano, por exemplo, o mantenedor das bibliotecas faker.js e colors.js sabotou ambos os projetos para fazê-los exibir mensagens de protesto.

O fenômeno ganhou até nome: protestware.

Transformando o node-ipc em “protestware

Com média de 1 milhão do downloads por semana, o node-ipc é um módulo de código-fonte aberto popular no NPM, o gerenciador de pacotes do Node.js. O pacote permite a comunicação entre processos e é muito usado em projetos baseados em JavaScript, como o Vue.js e o próprio Node.js.

Eis que algumas versões recentes do node-ipc passaram a apagar dados ou a sobrescrever arquivos nos computadores de desenvolvedores que o usam. No lugar, surgem arquivos de texto contendo as tais “mensagens de paz”.

Trata-se de um comportamento típico de malwares, tanto que o problema foi formalmente registrado com a identificação CVE-2022-23812. Mas, para entendermos o que aconteceu, precisamos voltar para uma data recente: 8 de março de 2022.

Uma investigação da empresa de segurança Snyk aponta que foi nesse dia que o desenvolvedor Brandon Nozaki Miller, também conhecido pelo codinome RIAEvangelist, publicou um pacote NPM chamado peacenotwar (“paz, não guerra”, em tradução livre). Ele descreve o módulo da seguinte forma:

Esse código serve como um exemplo não destrutivo do porquê de ser importante controlar os seus módulos Node. Isso também serve como um protesto não violento contra a agressão da Rússia que ameaça o mundo exatamente agora.

O que esse módulo faz, na prática, é exibir uma “mensagem de paz” no desktop do usuário. Se você acha que isso é coincidência demais, achou certo: RIAEvangelist também é o desenvolvedor que está por trás do node-ipc.

Até 15 de março, o peacenotwar pouco havia sido baixado. Mas, nessa data, o pacote experimentou um pico de downloads. Talvez você já tenha adivinhado o motivo: sim, RIAEvangelist colocou o peacenotwar como uma dependência do node-ipc.

Isso significa que todos os projetos que usam o node-ipc podem fazer a tela do usuário exibir a tal mensagem, afinal, o pacote irá “chamar” o peacenotwar. Mas note que esse módulo apenas imprime um texto, não apaga dados.

De acordo com o BleepingComputer, as instruções destrutivas foram inseridas em versões “selecionadas” do node-ipc. Uma análise revelou que, originalmente, o código malicioso foi escrito para identificar o IP do usuário e apagar dados apenas se o endereço tiver origem na Rússia ou na Bielorrússia.

Solução: use uma versão antiga

Pelo o que se sabe até o momento, as versões 10.1.1 e 10.1.2 do node-ipc são as que trazem a carga destrutiva, mas elas foram removidas do NPM cerca de 24 horas após a sua liberação.

As versões 10.1.3, 11.0.0 e superiores não contêm instruções para apagar arquivos, mas preservam o peacenotwar como uma dependência.

A solução apontada pelos pesquisadores da Snyk para que desenvolvedores possam se desvencilhar desse protestware é priorizar o uso de versões “limpas” do node-ipc, como a 9.2.1 e a 10.1.0.

O episódio também mostra a importância de desenvolvedores especificarem as versões de bibliotecas ou módulos essenciais em seus projetos (se a versão não é especificada, via de regra, a mais recente é baixada).

Mas esse é o tipo de “lição” que a maioria dos programadores gostaria de receber em circunstâncias menos conflitantes. Embora abominem a invasão da Ucrânia pela Rússia, muitos deles entendem que protestwares não são a melhor forma de manifestar contrariedade ao conflito.

No GitHub, um desenvolvedor chegou a esbravejar contra RIAEvangelist (a mensagem foi apagada, mas o BleepingComputer a reproduziu):

Esse comportamento é uma droga. Claro, a guerra é ruim, mas isso não justifica esse comportamento. (…) Você acabou de arruinar com sucesso a comunidade de código aberto. Está feliz agora, @RIAEvangelist?

Aparentemente, foi nessa discussão que o termo “protestware” apareceu. RIAEvangelist chegou a comentar que a expressão é “genial”. Ali, ele também tem se defendido: “apenas me sinto moralmente obrigado a fazer algo e calha de ser uma coisa que eu posso realmente fazer por estar dentro da minha área”.

Receba mais notícias do Tecnoblog na sua caixa de entrada

* ao se inscrever você aceita a nossa política de privacidade
Newsletter
Emerson Alecrim

Emerson Alecrim

Repórter

Emerson Alecrim cobre tecnologia desde 2001 e entrou para o Tecnoblog em 2013, se especializando na cobertura de temas como hardware, sistemas operacionais e negócios. Formado em ciência da computação, seguiu carreira em comunicação, sempre mantendo a tecnologia como base. Em 2022, foi reconhecido no Prêmio ESET de Segurança em Informação. Em 2023, foi reconhecido no Prêmio Especialistas, em eletroeletrônicos. Participa do Tecnocast, já passou pelo TechTudo e mantém o site Infowester.

Relacionados