blank

blank

Os pacotes de software de código aberto recém-descobertos na plataforma npm contêm scripts que transmitem mensagens de paz relacionadas aos conflitos em curso na Ucrânia e na Faixa de Gaza quando são implantados, de acordo com uma pesquisa conduzida pela ReversingLabs.

Os pacotes são apenas os exemplos mais recentes do chamado “protestware”, um problema recorrente no ecossistema de software de código aberto no qual os desenvolvedores de aplicativos ocultam mensagens políticas dentro do código-fonte aberto, muitas vezes projetando-o para ser exibido ao usuário depois que um aplicativo é instalado ou quando é executado.

Embora os pacotes mais recentes não sejam maliciosos, eles sublinham um risco persistente no software de código aberto, no qual funcionalidades não intencionais e maliciosas podem ocultar-se sem serem detectadas – mesmo em aplicações amplamente utilizadas.

Pacote de protesto para a Palestina

O pacote npm e2eakarev, versão: 7.1.0, publicado no final de outubro, descreve-se como um “pacote gratuito de protesto contra a Palestina” e foi postado pelo usuário npm ~updater.downloader. Tem um total de 8 downloads. A pesquisadora do ReversingLabs, Lucija Valentić, descobriu que a instalação do pacote inicia um script pós-instalação, index.js, que verifica se o pacote está sendo lançado em Israel. Se for, uma mensagem em inglês pedindo paz será exibida no terminal.

“O mundo testemunhou muito sofrimento na Palestina e é hora de tomarmos uma posição”, diz parte da mensagem. Apela a quem lê a mensagem a aumentar a sensibilização para a “luta palestina”, a fazer doações para ajuda humanitária e a apoiar o movimento “Boicote, Desinvestimento, Sanção” (BDS), que procura encorajar indivíduos e empresas a desinvestirem em Israel.

A mensagem está assinada “O manifestante anônimo”. E isso… é tudo. Não foi observado que o pacote realizasse quaisquer outras ações – maliciosas ou não, disse Valentić.

Protestware: Sorrateiro!

Outro pacote npm que foi descoberto recentemente que contém protestware é @snyk/sweater-comb, versão 2.1.1, que foi publicado pela primeira vez em agosto de 2023 pela empresa Snyk. Sweater-comb é descrito como uma “ferramenta que fornece proteção com automação” de APIs Snyk, aplicando regras de CI óptico personalizadas às especificações OpenAPI de Snyk. A versão 2.1.1 inclui o módulo es5-ext, extensões ECMAScript 5, um módulo comum com mais de 7,3 milhões de downloads semanais. Esta é a última versão do pacote Snyk que inclui o módulo es5-ext , com funcionalidade protestware. Desde então, todas as versões do pacote optaram por não usá-lo como dependência.

O que esse protestware faz? Após a instalação, es5-ext inicia um script pós-instalação, _postinstall.js, que tenta determinar a localização geográfica do host. Se a máquina host estiver localizada na Rússia, ela mostrará uma mensagem, em russo, que critica a invasão da vizinha Ucrânia pela Rússia, e em russo quando o pacote for instalado na Rússia.

“O mundo inteiro condenou a invasão injustificada e decidiu impor sanções sem precedentes contra a Rússia”, lê-se. “A cada novo dia eles serão sentidos cada vez mais fortes entre os civis.” Os falantes de russo que leem a mensagem são incentivados a baixar o navegador Tor e visitar uma página da web sobre como contornar a censura no país.

Acontece que es5-ext é um pacote com uma longa história. A empresa Checkmarx informou sobre isso em março de 2022, observando que o recurso protestware foi adicionado ao pacote es5-ext no início de março daquele ano, logo após a Rússia invadir a Ucrânia. O mesmo relatório também destacou outro módulo, styled-components, que também foi atualizado para incluir um script pós-instalação que oferecia mensagens de protesto pró-Ucrânia.

Os pesquisadores do ReversingLabs descobriram posteriormente o es5-ext usado em outros aplicativos populares, incluindo o executável de instalação do Signal Messenger para Windows. Com cerca de 10 milhões de downloads semanais, o alcance do pacote es5-ext é amplo. Nos fóruns de desenvolvedores, a questão dos recursos de protestware surge frequentemente, à medida que os desenvolvedores que utilizam o módulo es5-ext enfrentam programas antivírus que sinalizam seus produtos como infectados por um vírus.

Desde julho de 2023, o ReversingLabs detectou 179 pacotes npm usando o pacote es5-ext (uma contagem que inclui todas as versões de cada pacote npm). Esse não é um número enorme. No entanto, essa lista inclui muitos pacotes legítimos, como pente para suéter, Signal e versão 6.4.0 da estrutura fechada com distribuições e bases de usuários substanciais.

blank
Figura 1: Relatório do ReversingLabs para o executável de instalação do Signal Messenger no Windows mostrando a presença de protestware

Isso é preocupante, porque mesmo que o script pós-instalação que exibe a mensagem pró-Ucrânia não seja malicioso, ele é desnecessário.

“O problema é que este pacote está fazendo mais do que anuncia. Ele não apenas estende o es5 com métodos e correções extras, mas também implementa uma mensagem de “Chamado pela paz”. Acho que é uma prática inaceitável que retarda o processo de instalação [sic]”, comentou um desenvolvedor com o apelido Rush no GitHub.

E isso é um problema. A capacidade de códigos incompletos e desnecessários, como o mais recente protestware em es5-ext, de penetrar em aplicações e plataformas legítimas e amplamente utilizadas, como Signal, the close framework e sweater-comb, sugere que os riscos cibernéticos que se escondem nas cadeias de fornecimento de software são reais.

Malicioso? Talvez.

Ambos os exemplos de protestware citados acima eram apenas isso: software usado para transmitir uma mensagem de protesto. O ReversingLabs não observou funcionalidades maliciosas projetadas para interromper os sistemas que executam o protestware, roubar informações confidenciais ou realizar movimentos laterais em ambos os casos.

No entanto, nem todo protestware é benigno. Imediatamente após a invasão da Ucrânia pela Rússia em fevereiro de 2022, por exemplo, uma atualização do módulo de código aberto vue-cli foi atualizada para incluir funcionalidades que identificavam sistemas em execução na Rússia e depois eliminavam arquivos e informações confidenciais.

À medida que conflitos violentos surgem em todo o mundo, esperem mais casos de protestos que defendam a causa tanto de vítimas inocentes como de partes em conflito. Em alguns casos, esse protestware pode vir na forma de atualizações de módulos benignos e até mesmo bem estabelecidos. Uma certa porcentagem ultrapassará os limites entre mensagens de exibição benignas e realmente infligirá danos aos sistemas visados.

Aprofunde-se na Segurança do Pacote

A lição para as organizações é que os dias em que se passava pelo cemitério quando se tratava de ameaças à cadeia de fornecimento de software acabaram. Os desenvolvedores inclinados a tirar conclusões precipitadas sobre a segurança ou integridade de qualquer software com base em seu desempenho passado, idade ou popularidade estão se preparando para ficar desapontados, disse Tomislav Peričin, cofundador e arquiteto-chefe de software da ReversingLabs.

“Temos visto um aumento no número de ataques à cadeia de fornecimento de software, vulnerabilidades impactantes e outros incidentes. Os riscos que os desenvolvedores e consumidores de software enfrentam nunca foram tão altos, e isso inclui mensagens políticas. Fazer com que o software execute atos aleatórios de ativismo político pouco contribui para a causa específica. Mas diminui a já instável confiança do setor privado no software.”
— Tomislav Peričin

Se você tiver sorte, essa decepção pode vir na forma de um script pós-instalação lançando um apelo inesperado pela paz. Na pior das hipóteses, o protesto pode assumir a forma de um sistema apagado, de dados roubados ou de um worm que se espalha rapidamente.

A presença de mensagens de protesto político em código-fonte aberto é apenas mais um indicador da necessidade de as organizações de desenvolvimento se aprofundarem na função e na integridade do código-fonte aberto, bem como no código proprietário e de terceiros em que dependem. Scripts pós-instalação como os encontrados em e2eakarev e es5-ext podem não causar danos, mas geralmente são uma indicação da disposição dos desenvolvedores de pacotes em usar seu código como plataforma para suas próprias palavras, ações e ideias. Quando isso acontece sem a divulgação adequada aos usuários do módulo (como foi o caso do es5-ext ), é motivo de preocupação e escrutínio adicional para qualquer organização de desenvolvimento.

O ReversingLabs está constantemente em busca de comportamentos suspeitos de pacotes. Nossa plataforma Software Supply Chain Security usa indicadores de comportamento que podem rastrear se os pacotes possuem scripts pós-instalação , o que nos permite detectar pacotes de protesto como e2eakarev e es5-ext e determinar se eles são benignos, maliciosos ou algo intermediário. Esse tipo de escrutínio das dependências de software é cada vez mais importante, à medida que tanto os actores maliciosos como os políticos recorrem às cadeias de fornecimento de software para fazerem sentir a sua presença.

Próximos Passos

Como indica a descoberta desses exemplos mais recentes de protestware, as equipes de desenvolvimento e segurança de aplicativos precisam da capacidade de examinar mais profundamente os pacotes de software e distinguir funções maliciosas das legítimas.

Isso pode ser um desafio com ferramentas de teste de segurança de aplicativos legados e exige habilidades e conhecimentos especializados que faltam em muitas organizações. Ferramentas modernas como ReversingLabs Software Supply Chain Security podem preencher as lacunas e ajudar as equipes de desenvolvimento e segurança de aplicativos a proteger sua cadeia de suprimentos contra comprometimentos.

Indicadores de Compromisso (IoC)

Os seguintes IoCs foram coletados como parte da investigação dos pesquisadores do ReversingLabs sobre os pacotes de protesto e2eakarev e sweater-comb/es5-ex.

nome do pacote versão SHA1
e2eakarev 7.1.0 a509f299c5a76ac0c91f9bfdd333cc367ce17dfa
sweater-comb 2.1.1 b76ec90d7e1ae59b108b62ee8f8979a98b99da28


Descubra mais sobre DCiber

Assine para receber os posts mais recentes por e-mail.