Um hacker ou grupo desconhecido estava publicando pacotes typosquat maliciosos no repositório Python Package Index (PyPI) por quase seis meses. De acordo com as descobertas, o ator de ameaças publicou 27 pacotes maliciosos com o objetivo de fornecer malware capaz de ganhar persistência, roubar dados confidenciais e acessar carteiras de criptomoedas para obter ganhos financeiros.
Pacotes maliciosos PyPI
Pesquisadores de segurança descobriram que os 27 pacotes estavam disfarçados de bibliotecas Python legítimas e populares. Esses pacotes, inclusive, atraíram milhares de downloads, de acordo com o Checkmarx em um novo relatório. A maioria dos downloads originou-se dos EUA, China, França, Hong Kong, Alemanha, Rússia, Irlanda, Singapura, Reino Unido e Japão.
Uma característica definidora deste ataque foi a utilização de esteganografia para ocultar uma carga maliciosa dentro de um arquivo de imagem de aparência inocente, o que aumentou a furtividade do ataque.
Checkmarx
De acordo com as descobertas da empresa, alguns dos pacotes são pyefflorer, pyminor, pyowler, pystallerer, pystob e pywool, o último dos quais foi plantado em 13 de maio de 2023. O agente de ameaça vinha agindo há algum tempo, implantando os pacotes maliciosos para fazer suas vítimas.
Um denominador comum para esses pacotes é o uso do script setup.py para incluir referências a outros pacotes maliciosos (ou seja, pystob e pywool) que implantam um script Visual Basic (VBScript) para baixar e executar um arquivo chamado “Runtime. exe” para obter persistência no host.
Ainda de acordo com as descobertas da empresa de segurança, um arquivo compilado está Incorporado ao binário, que é capaz de coletar informações de navegadores da web, carteiras de criptomoedas e outros aplicativos. Além disso, uma cadeia de ataque alternativa observada pela Checkmarx ocultou o código executável dentro de uma imagem PNG (“uwu.png”), que é posteriormente decodificada e executada para extrair o endereço IP público e o identificador universalmente exclusivo (UUID) do sistema afetado.
Pystob e Pywool, em particular, foram publicados sob o disfarce de ferramentas para gerenciamento de API, apenas para exfiltrar os dados para um webhook do Discord e tentar manter a persistência colocando o arquivo VBS na pasta de inicialização do Windows.
Esta campanha serve como mais um lembrete das ameaças sempre presentes que existem no cenário digital atual, especialmente em áreas onde a colaboração e a troca aberta de código são fundamentais.
Pacotes com ligações pró países em guerra
Um dos pacotes, denominado @snyk/sweater-comb (versão 2.1.1), determina a localização geográfica do host e, se for a Rússia, exibe uma mensagem criticando a “invasão injustificada” da Ucrânia por meio de outro módulo chamado “es5-ext”.
Outro pacote, e2eakarev, tem a descrição “pacote de protesto gratuito da Palestina” no arquivo package.json e realiza verificações semelhantes para ver se o endereço IP é resolvido para Israel e, em caso afirmativo, registra o que é descrito como uma “mensagem de protesto inofensiva” que incentiva os desenvolvedores a aumentar a conscientização sobre a luta palestina.
Não são apenas os agentes de ameaças que se infiltram nos ecossistemas de código aberto. No início desta semana, o GitGuardian revelou a presença de 3.938 segredos exclusivos em 2.922 projetos PyPI, dos quais 768 segredos exclusivos foram considerados válidos.