No que é um ato de sabotagem deliberada, o desenvolvedor por trás do popular pacote NPM “node-ipc” enviou uma nova versão adulterada para condenar a invasão russa da Ucrânia, levantando preocupações sobre a segurança no código aberto e na cadeia de fornecimento de software.
Afetando as versões 10.1.1 e 10.1.2 da biblioteca, as alterações introduzidas por seu mantenedor RIAEvangelist provocaram comportamentos indesejáveis, direcionando usuários com endereços IP localizados na Rússia ou bielorrússia, e limpando o conteúdo de arquivos arbitrários e substituindo-os por um emoji de coração.
Node-ipc é um módulo de nó proeminente usado para comunicação interprocesso local e remoto (IPC) com suporte para Linux, macOS e Windows. Tem mais de 1,1 milhão de downloads semanais.
“Um abuso muito claro e um incidente crítico de segurança da cadeia de suprimentos ocorrerão para qualquer sistema no qual este pacote NPM será chamado, se isso corresponder a uma geolocalização da Rússia ou da Bielorrússia”, disse liran Tal, pesquisador do Synk, em uma análise.
O problema foi atribuído ao identificador CVE-2022-23812 e é avaliado em 9,8 de 10 no sistema de pontuação de vulnerabilidades CVSS. As alterações de código maliciosos foram publicadas em 7 de março (versão 10.1.1), com uma segunda atualização ocorrendo 10 horas depois do mesmo dia (versão 10.1.1).
Curiosamente, embora as modificações destrutivas tenham sido removidas da biblioteca com a versão 10.1., uma grande atualização foi empurrada após menos de quatro horas (versão 11.0.0), que importou outra dependência chamada “peacenotwar“, também lançada pelo RIAEvangelista como uma forma de “protesto não violento contra a agressão russa”.
“Sempre que a funcionalidade do módulo de nó-ipc é chamada, ele imprime ao STDOUT uma mensagem retirada do módulo peacenotwar, bem como coloca um arquivo no diretório desktop do usuário com conteúdo relacionado à atual situação em tempo de guerra da Rússia e da Ucrânia”, explicou Tal.
A partir de 15 de março de 2022, a versão mais recente do node-ipc – 11.1.0 – aumenta a versão do pacote “peacenotwar” de 9.1.3 para 9.1.5 e empacota a biblioteca NPM “cores”, ao mesmo tempo em que remove os consoles de mensagens STDOUT.
Vale a pena notar que as “cores”, juntamente com outro pacote chamado “faker”, foram intencionalmente sabotadas no início de janeiro deste ano pelo seu desenvolvedor Marak Squires, introduzindo loops infinitos ao código fonte, efetivamente quebrando outros aplicativos que dependiam das bibliotecas.
De acordo com a Bleeping Computer, que primeiro relatou a corrupção, as mudanças foram consideradas retaliatórias, com o desenvolvedor observando que “Respeitosamente, não vou mais apoiar a Fortune 500s (e outras empresas de menor porte) com meu trabalho gratuito”.
Em todo caso, a ideia de usar módulos populares como “protestware” para implantar cargas destrutivas e encenar um compromisso da cadeia de suprimentos corre o risco de minar a confiança no software de código aberto.
“Este incidente de segurança envolve atos destrutivos de corromper arquivos em disco por um mantenedor e suas tentativas de esconder e reafirmar essa sabotagem deliberada de diferentes formas”, disse Tal. “Embora este seja um ataque com motivações orientadas a protestos, ele destaca um problema maior enfrentado pela cadeia de fornecimento de software: as dependências transitivas em seu código podem ter um enorme impacto na sua segurança.”
FONTE: THE HACKER NEWS