O pacote que imitou o SymPy e mino criptomoedas em memória desde PyPI

Publicada 4 min de lectura 147 leituras

Um pacote malicioso chegou à Python Package Index (PyPI) fingindo ser uma versão de desenvolvimento de uma biblioteca conhecida para cálculo simbólico, e seu modus operandi merece atenção: não se limita a instalar código suspeito, mas atua como um carregador capaz de trazer e executar binários em memória para colocar em minar criptomoedas em sistemas Linux.

A peça suplantadora apareceu sob o nome sympy- dev e aplicou mesmo a descrição do projeto legítimo para confundir quem instalar o que parecia ser uma variante SymPy. De acordo com os dados públicos do PyPI, o pacote acumulou mais de mil downloads desde a sua publicação em meados de janeiro de 2026, um número que não equivale necessariamente ao número de máquinas comprometidas, mas que indica que alguns desenvolvedores puderam instalar por erro. O registo da página do pacote no PyPI pode ser consultado aqui: https://pypi.org/project/sympy-dev/.

O pacote que imitou o SymPy e mino criptomoedas em memória desde PyPI
Imagem gerada com IA.

A pesquisa técnica difundida pela equipe de Socket detalha como o código malicioso modifica funções concretas da biblioteca para agir como lançadores. Estas funções são ativadas apenas quando são invocadas algumas rotinas polinômicas, uma estratégia deliberada para atrasar a detecção: o comportamento prejudicial fica oculto até que o fluxo legítimo da biblioteca alcança esses pontos.

Quando as rotinas comprometidas são executadas, o pacote conta com um servidor remoto e obtém primeiro uma configuração em formato JSON e depois um ou dois binários ELF projetados para Linux do endereço IP observado pelos pesquisadores. Em vez de escrever esses binários em disco, o atacante os carga diretamente em memória e os executa usando técnicas próprias do kernel, como memfd_create combinado com descritores em/proc/self/fd, o que reduz as pegadas sobre o sistema de arquivos e complica a análise forense. A referência à utilização de memfd_create pode ser consultada na documentação do sistema: man 2 memfd_create.

O objetivo observado até agora foi o lançamento de um mineiro de criptomoedas compatível com XMRig. Os arquivos de configuração baixados indicam um esquema de mineração por CPU, com os backends de GPU desativados, e conectam servidores Stratum criptografados no porto 3333 que pertencem à infraestrutura do atacante. XMRig é um projeto de mineração conhecido e seu código fonte está disponível publicamente: https://github.com/xmrig/xmrig. Embora o uso da campanha tenha sido a mineração, o vetor é muito mais perigoso: os módulos Python atuam como um loader de propósito geral capaz de baixar e executar qualquer segundo estádio sob os privilégios do processo Python comprometido.

Este tipo de operação não é totalmente inédita: outros atores recorreram a executar binários diretamente em memória para evitar deixar artefatos em disco, uma tática documentada em campanhas prévias de cryptojacking. Executar o código em memória obriga a combinar a detecção baseada em assinaturas com monitorização do comportamento do processo e do tráfego de rede, uma vez que a análise estática sobre arquivos em disco pode ficar curta.

A presença deste pacote no PyPI levanta várias reflexões sobre a segurança no ecossistema de pacotes: a facilidade de publicar pacotes com nomes que imitam projetos populares, a confiança implícita de instalar dependências sem verificar, e a dificuldade de proteger ambientes de desenvolvimento frente a artefatos projetados para passar por legítimos. Ferramentas de análise de pacotes e serviços de reputação ajudam, mas a primeira linha de defesa ainda está nas práticas da equipe: verificar nomes, revisar hashes, fixar versões nos requisitos e preferir dependências oficiais e assinadas quando possível.

O pacote que imitou o SymPy e mino criptomoedas em memória desde PyPI
Imagem gerada com IA.

Se você administra ambientes em Python ou servidores Linux, você precisa auditar instalações recentes e monitorar processos com uso incomum de CPU, conexões Stratum salientes ou execuções que invoquem memfd_create. Mudar senhas se houver suspeita de intrusão e reinstalar de fontes confiáveis são medidas prudentes. Além disso, a comunidade e os mantenedores de repositórios públicos continuam a desenvolver melhorias nas políticas e controles para reduzir o risco de suplantação de pacotes, mas a prevenção no nível do desenvolvedor permanece crucial.

Para aprofundar o caso e a análise técnica, o relatório do Socket oferece um exame pormenorizado do comportamento e dos indicadores de compromisso: Análise de Socket. O pacote em PyPI ainda pode ser consultado em sua entrada pública e a biblioteca legítima que foi suplantada está disponível no site oficial do SymPy: https://www.sympy.org.

Em suma, a ameaça de engenharia social (suplantação do projeto), técnicas de evasão (ativação condicionada e execução em memória) e o uso de um implantador genérico que, embora tenha sido observado minado de XMRig, poderia servir para implantar qualquer outro código malicioso sob as permissões do processo Python. A história lembra que no software de terceiros a cautela não é opcional, e que pequenas confianças implícitas podem abrir a porta para compromissos de grande impacto.

Cobertura

Relacionadas

Mas notícias do mesmo assunto.