JarkaStealer no repositório PyPI

Pacotes maliciosos para integração de IA contendo o malware infostealer foram encontrados no repositório Python Package Index.

Nossos especialistas da Global Research and Analysis Team (GReAT, em tradução livre Equipe Global de Pesquisa e Análise) descobriram dois pacotes maliciosos no Python Package Index (PyPI) – um popular repositório de software de terceiros para a linguagem Python. De acordo com as descrições dos pacotes, eram bibliotecas que permitiam trabalhar com LLMs (large language models ou grandes modelos de linguagem) populares. No entanto, na verdade, eles imitaram a funcionalidade declarada usando a versão demo do ChatGPT, e seu objetivo principal era instalar o malware JarkaStealer.

Os pacotes ficaram disponíveis para download por mais de um ano. A julgar pelas estatísticas do repositório, durante esse período foram baixados mais de 1.700 vezes por usuários de mais de 30 países.

Os pacotes maliciosos e para que eram usados

Os pacotes maliciosos foram carregados no repositório por um autor único. Eles se diferenciavam apenas no nome e na descrição. O primeiro se chamava “gptplus” e supostamente permitia acesso à API GPT-4 Turbo da OpenAI; o segundo era intitulado como “claudeai-eng”, conforme descrição, também prometia acesso à API Claude AI da Anthropic PBC.

As descrições de ambos os pacotes incluíam exemplos de uso que explicavam como criar chats e enviar mensagens para modelos linguísticos. Mas, na realidade, o código desses pacotes continha um mecanismo de interação com o proxy demo ChatGPT para enganar a vítima, emulando um suposto funcionamento. Enquanto isso, o arquivo __init__.py – que também estava nos pacotes – decodificava os dados contidos neles, operando o download do arquivo JavaUpdater.jar do repositório GitHub. Se o Java não fosse encontrado na máquina da vítima, conseguia operar a instalação do Java Runtime Environment (JRE) do Dropbox. O próprio arquivo jar continha o malware JarkaStealer, que foi usado para comprometer o ambiente de desenvolvimento e para exfiltração não detectada de dados roubados.

O que é o malware JarkaStealer e por que é perigoso?

JarkaStealer é um malware, presumivelmente desenvolvido por autores russos, que tem como utilização principal coletar dados confidenciais e enviá-los aos cibercriminosos. Entre as coisas que ele pode fazer estão:

  • Roubar dados de vários navegadores
  • Capturar imagens de telas
  • Coletar informações de sistema;
  • Roubar tokens de sessões de vários aplicativos (incluindo Telegram, Discord, Steam e até do Minecraft);
  • Interromper processos do navegador para recuperar dados armazenados.

Na sequência, as informações coletadas são arquivadas e enviadas ao servidor do invasor, para posteriormente, serem excluídas da máquina da vítima.

Os autores do malware operam sua distribuição pelo Telegram, usando o modelo malware como serviço (MaaS). No entanto, também encontramos o código-fonte do JarkaStealer no GitHub, indicando que esta parte da ação não tenha a participação dos criadores originais do malware.

Como se manter protegido

Informamos prontamente os administradores do PyPI sobre essas adições maliciosas nos pacotes gptplus e claudeai-eng. Neste momento, eles já foram removidos do repositório. No entanto, não há garantia de que este truque (ou semelhante) não será usado em alguma outra plataforma. Seguimos no monitoramento de atividades relacionadas ao malware JarkaStealer e procurando outras ameaças em repositórios de software de código aberto.

Para aquelas pessoas que fizeram o download e a utilização de um dos pacotes comprometidos pelo malware, a principal recomendação é excluí-lo imediatamente. O JarkaStealer não possui funcionalidade de persistência, por isso sua ativação é associada à operação do pacote. No entanto, todas as senhas e os tokens de sessão usados ​​nos dispositivos da vítima podem ter sido roubados. Por isso, recomenda-se alterá-los ou reemiti-los imediatamente.

Também é oportuno indicar que os desenvolvedores prestem atenção especial quando trabalharem com pacotes de código aberto e os inspecionem minuciosamente antes de integrá-los em seus projetos. Isto inclui uma análise detalhada das dependências e da respectiva cadeia de suprimento de produtos de software – especialmente quando se trata de um tema tão em alta como a integração de tecnologias de IA.

Neste caso, a data de criação do perfil do autor no PyPI poderia ter sido um sinal de alerta. Ao observar atentamente a captura de tela acima, é possível identificar que os dois pacotes foram publicados no mesmo dia, enquanto a conta que os publicou foi registrada apenas alguns dias antes.

Para minimizar os riscos de trabalhar com pacotes de software de código aberto de terceiros e evitar um ataque à cadeia de suprimentos, recomendamos incluir nos processos de DevSecOps o Kaspersky Open Source Software Threats Data Feed, que foi projetado especificamente para monitorar componentes de código aberto usados, a fim de detectar ameaças ocultas em pacotes.

Dicas