El paquete que imitó a SymPy y minó criptomonedas en memoria desde PyPI

Publicada 4 min de lectura 146 lecturas

Un paquete malicioso ha llegado a la Python Package Index (PyPI) fingiendo ser una versión de desarrollo de una biblioteca conocida para cálculo simbólico, y su modus operandi merece atención: no se limita a instalar código sospechoso, sino que actúa como un cargador capaz de traer y ejecutar binarios en memoria para poner a minar criptomonedas en sistemas Linux.

La pieza suplantadora apareció bajo el nombre sympy-dev y replicó incluso la descripción del proyecto legítimo para confundir a quien instalara lo que parecía ser una variante de SymPy. Según los datos públicos de PyPI, el paquete acumuló más de mil descargas desde su publicación a mediados de enero de 2026, una cifra que no equivale necesariamente al número de máquinas comprometidas pero que sí indica que algunos desarrolladores pudieron instalarlo por error. El registro de la página del paquete en PyPI puede consultarse aquí: https://pypi.org/project/sympy-dev/.

El paquete que imitó a SymPy y minó criptomonedas en memoria desde PyPI
Imagen generada con IA.

La investigación técnica difundida por el equipo de Socket detalla cómo el código malicioso modifica funciones concretas de la biblioteca para que actúen como lanzadores. Estas funciones se activan únicamente cuando se invocan ciertas rutinas polinómicas, una estrategia deliberada para retrasar la detección: el comportamiento dañino queda oculto hasta que el flujo legítimo de la biblioteca alcanza esos puntos.

Cuando las rutinas comprometidas se ejecutan, el paquete contacta con un servidor remoto y descarga primero una configuración en formato JSON y después uno o dos binarios ELF diseñados para Linux desde la dirección IP observada por los investigadores. En lugar de escribir esos binarios en disco, el atacante los carga directamente en memoria y los ejecuta usando técnicas propias del kernel, como memfd_create combinado con descriptores en /proc/self/fd, lo que reduce las huellas sobre el sistema de archivos y complica el análisis forense. La referencia al uso de memfd_create puede consultarse en la documentación del sistema: man 2 memfd_create.

El objetivo observado hasta ahora fue la puesta en marcha de un minero de criptomonedas compatible con XMRig. Los archivos de configuración descargados indican un esquema para minería por CPU, con los backends de GPU desactivados, y conectan a servidores Stratum cifrados en el puerto 3333 que pertenecen a la infraestructura del atacante. XMRig es un proyecto de minería conocido y su código fuente está disponible públicamente: https://github.com/xmrig/xmrig. Aunque el uso de la campaña fue la minería, el vector es mucho más peligroso: los módulos Python actúan como un loader de propósito general capaz de descargar y ejecutar cualquier segundo estadio bajo los privilegios del proceso Python comprometido.

Este tipo de operación no es totalmente inédita: otros actores han recurrido a ejecutar binarios directamente en memoria para evitar dejar artefactos en disco, una táctica documentada en campañas previas de cryptojacking. Ejecutar código en memoria obliga a combinar la detección basada en firmas con monitorización del comportamiento del proceso y del tráfico de red, ya que el análisis estático sobre archivos en disco puede quedarse corto.

La presencia de este paquete en PyPI plantea varias reflexiones sobre la seguridad en el ecosistema de paquetes: la facilidad para publicar paquetes con nombres que imitan proyectos populares, la confianza implícita de instalar dependencias sin verificarlas, y la dificultad de proteger entornos de desarrollo frente a artefactos diseñados para pasar por legítimos. Herramientas de análisis de paquetes y servicios de reputación ayudan, pero la primera línea de defensa sigue estando en las prácticas del equipo: comprobar nombres, revisar hashes, fijar versiones en los requisitos y preferir dependencias oficiales y firmadas cuando sea posible.

El paquete que imitó a SymPy y minó criptomonedas en memoria desde PyPI
Imagen generada con IA.

Si administras entornos Python o servidores Linux, conviene auditar instalaciones recientes y vigilar procesos con uso inusual de CPU, conexiones Stratum salientes o ejecuciones que invoquen memfd_create. Cambiar contraseñas si hay sospecha de intrusión y reinstalar desde fuentes confiables son medidas prudentes. Además, la comunidad y los mantenedores de repositorios públicos continúan desarrollando mejoras en las políticas y controles para reducir el riesgo de suplantación de paquetes, pero la prevención en el nivel del desarrollador sigue siendo crucial.

Para profundizar en el caso y en el análisis técnico, el informe de Socket ofrece un examen detallado del comportamiento y los indicadores de compromiso: análisis de Socket. El paquete en PyPI todavía puede consultarse en su entrada pública y la biblioteca legítima que fue suplantada está disponible en el sitio oficial de SymPy: https://www.sympy.org.

En resumen, la amenaza mezcló ingeniería social (suplantación del proyecto), técnicas de evasión (activación condicionada y ejecución en memoria) y el uso de un implantador genérico que, aunque se observó minado de XMRig, podría servir para desplegar cualquier otro código malicioso bajo los permisos del proceso Python. La historia recuerda que en el software de terceros la cautela no es opcional, y que pequeñas confianzas implícitas pueden abrir la puerta a compromisos de gran impacto.

Cobertura

Relacionadas

Mas noticias del mismo tema.