Mastodon Mastodon Mastodon Mastodon

Impacto de la campaña Miasma en repositorios GitHub y paquetes PyPI de Microsoft

Foto del autor

CyberSecureFox Editorial Team

Publicado:

Microsoft confirmó la eliminación temporal de varios repositorios en GitHub durante la investigación de un incidente relacionado con la compromisión de proyectos open source de la compañía. Según se informa, se inyectó en el código un infostealer dirigido a las estaciones de trabajo de desarrolladores y a entornos CI/CD. El incidente forma parte de una amplia campaña de ataque contra la cadena de suministro de software, con nombre en clave Miasma. Los desarrolladores que utilicen los paquetes de PyPI que se enumeran más abajo, así como proyectos open source de Microsoft en GitHub, deben revisar de inmediato sus dependencias y auditar los secretos en los entornos afectados.

Respuesta Microsoft y alcance del incidente

Según un representante de Microsoft, parte de los repositorios se restauraron tras su revisión, mientras que otros pueden seguir inaccesibles hasta que concluya la investigación. La compañía notificó a un número limitado de clientes que podrían haber descargado contenido de los repositorios comprometidos y declaró estar preparada para contactar con los afectados a través de los canales oficiales de soporte si fueran necesarias acciones adicionales.

Entre los proyectos afectados figura, según la información disponible, el paquete durabletask, una biblioteca en Python que fue comprometida para entregar un infostealer orientado a sistemas Linux. Microsoft describió sus acciones como medidas para proteger a los clientes y al ecosistema en su conjunto.

Evolución de los métodos de entrega de la carga útil

Según la investigación de Socket, la campaña evoluciona activamente e incluye varias oleadas: Mini Shai-Hulud, Miasma y Hades. La oleada más reciente afectó a 23 paquetes adicionales en PyPI, y los atacantes están experimentando con distintos mecanismos de entrega de código malicioso.

Las versiones tempranas de los paquetes maliciosos empleaban hooks de auto‑carga ejecutables .pth para arrancar el entorno Bun y ejecutar un JavaScript infostealer ofuscado. En las variantes más recientes se emplean enfoques fundamentalmente distintos:

  • Extensiones nativas .abi3.so troyanizadas — el infostealer se ejecuta al importar el paquete en un proyecto Python
  • Cargador .pth modificado — busca la carga útil _index.js en las rutas de sys.path en lugar de incluirla directamente en la distribución (wheel)

La separación entre el cargador y la carga útil, según los investigadores de Socket, dificulta considerablemente la detección mediante análisis estático, ya que cada componente por separado parece menos sospechoso. Además, el análisis de la carga útil de Miasma reveló la capacidad de activar la ejecución automática de código al abrir un repositorio en un IDE o en herramientas de desarrollo con soporte de IA.

Merece especial atención la técnica de evasión de escáneres de IA detectada en los paquetes de bioinformática: en los comentarios de bloque de JavaScript se ha incrustado una adversarial prompt injection, capaz de confundir a los sistemas automatizados de análisis y a los asistentes de IA de los analistas. Esta técnica ya había sido descrita anteriormente por investigadores de StepSecurity.

Paquetes afectados

La campaña abarca tres categorías de paquetes maliciosos: bibliotecas para bioinformática, paquetes con temática de IA y Model Context Protocol (MCP), así como imitaciones de bibliotecas populares mediante typosquatting. Lista completa de versiones comprometidas, según los investigadores:

  • Bioinformática: dreamgen 1.8.1, embiggen 0.11.97, ensmallen 0.8.101, gpsea 0.9.14, phenopacket-store-toolkit 0.1.7, ppkt2synergy 0.1.1, pyphetools 0.9.120
  • IA y MCP: instructor-mcp 1.15.2/1.15.3, langchain-core-mcp 1.4.2/1.4.3, openai-mcp 2.41.1/2.41.2, ray-mcp-server 0.2.1, tiktoken-mcp 0.13.1/0.13.2
  • Typosquatting y otros: rsquests 2.34.3 (imitación de requests), tlask 3.1.4 y rlask 3.1.7 (imitación de flask), mem8 6.0.1, mflux-streamlit 0.0.3/0.0.4, orchestr8-platform 3.3.2

La elección de los objetivos no es casual. Las bibliotecas de bioinformática se utilizan en flujos de trabajo científicos —aprendizaje basado en grafos, fenotipado de pacientes, trabajo con fenopackets—. Los paquetes relacionados con MCP explotan el creciente interés por la integración de modelos de lenguaje con herramientas externas. Los paquetes de typosquatting se aprovechan de los errores tipográficos al instalar mediante pip install.

Evaluación del impacto

Independientemente del método de entrega, el objetivo final del código malicioso es el mismo: recopilar secretos (tokens, claves API, credenciales) de las estaciones de trabajo de los desarrolladores y de los entornos CI/CD, para exfiltrarlos posteriormente a un repositorio público de GitHub. Esto genera un riesgo en cascada: los secretos comprometidos abren acceso a sistemas de producción, infraestructura en la nube y servicios internos de las organizaciones.

Están especialmente expuestos al riesgo:

  • Organizaciones científicas y de investigación que utilizan bibliotecas de bioinformática en Python
  • Equipos de desarrollo que experimentan con la integración de MCP y modelos de lenguaje
  • Cualquier proyecto que instale dependencias de forma automatizada sin verificación de hashes

Recomendaciones de respuesta

  1. Revise las dependencias: audite los archivos requirements.txt, pyproject.toml y los lockfiles en busca de los paquetes y versiones enumerados. Utilice pip list y pip show <package> para comprobar las versiones instaladas
  2. Rotación de secretos: si cualquiera de los paquetes indicados se instaló en su entorno, cambie de inmediato todos los tokens, claves API y credenciales accesibles desde ese entorno, incluidos los secretos de CI/CD
  3. Compruebe los repositorios de Microsoft: si ha clonado o utilizado proyectos open source de Microsoft desde GitHub en las últimas semanas, espere la notificación oficial de Microsoft o compruebe el estado de los repositorios específicos
  4. Refuerce el control de dependencias: implante la verificación de hashes de los paquetes durante la instalación (pip install --require-hashes), utilice herramientas de Software Composition Analysis (SCA) y limite la instalación automática de paquetes no verificados en CI/CD
  5. Revise la presencia de archivos .pth y .abi3.so: en los entornos virtuales de Python, busque archivos .pth sospechosos y extensiones nativas .abi3.so que pudieran haber sido instaladas por los paquetes maliciosos

Como señaló el investigador de Socket Kirill Boychenko, la rama Hades de la campaña Shai-Hulud y Miasma constituye un ataque a la cadena de suministro en rápida evolución, y no un incidente aislado relacionado con un paquete concreto. La separación entre cargador y carga útil en la variante de langchain-core-mcp demuestra que los atacantes están adaptando deliberadamente sus métodos para eludir los mecanismos de detección existentes. La prioridad debe ser auditar las dependencias y rotar todos los secretos en los entornos donde pudieran haberse instalado los paquetes mencionados.


CyberSecureFox Editorial Team

El equipo editorial de CyberSecureFox cubre noticias de ciberseguridad, vulnerabilidades, campañas de malware, actividad de ransomware, AI security, cloud security y security advisories de proveedores. Los materiales se preparan a partir de official advisories, datos de CVE/NVD, alertas de CISA, publicaciones de proveedores e informes públicos de investigadores. Los artículos se revisan antes de su publicación y se actualizan cuando aparece nueva información.

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.