Los investigadores de ciberseguridad han revelado lo que, según dicen, es una campaña activa contra los gusanos de la cadena de suministro «similar a Shai-Hulud» que ha aprovechado un grupo de al menos 19 paquetes npm maliciosos para permitir la recolección de credenciales y el robo de claves de criptomonedas.

La campaña tiene un nombre en clave MODO SANDWORM de la empresa de seguridad de la cadena de suministro Socket. Al igual que en el caso anterior Olas de ataque de Shai-Hulud , el código malicioso integrado en los paquetes incluye la capacidad de extraer información del sistema, acceder a los tokens, los secretos del entorno y las claves de API de los entornos de los desarrolladores y propagarse automáticamente abusando de las identidades robadas de npm y GitHub para ampliar su alcance.

«La muestra conserva el sello distintivo de Shai-Hulud y añade la exfiltración de API de GitHub con respaldo de DNS, persistencia basada en ganchos, respaldo de propagación de SSH, inyección de servidores MCP con inyección rápida integrada dirigida a asistentes de codificación de IA y recolección de claves de API de LLM», dijo .

Los paquetes, publicados en npm por dos alias de editor de npm, official334 y java.org, se enumeran a continuación:

  • código claud @0 .2.1
  • código en la nube @0 .2.1
  • cloud @0 .3.0
  • crypto-locale @1 .0.0
  • cripto-reader-info @1 .0.0
  • detect-cache @1 .0.0
  • valores predeterminados de formato @1 .0.0
  • hardhat @1 .0.0
  • locale-loader-pro @1 .0.0
  • naniod @1 .0.0
  • node-native-bridge @1 .0.0
  • opencraw @2026 .2.17
  • parse-compat @1 .0.0
  • rimarf @1 .0.0
  • scan-store @1 .0.0
  • secp256 @1 .0.0
  • color de soporte @1 .0.1
  • veim @2 .46.2
  • yarsg @18 .0.1
adsense

También se identifican cuatro paquetes durmientes que no incorporan ninguna función maliciosa -

  • éteres
  • cachés iru
  • iruchache
  • uudi

Los paquetes van más allá de la propagación basada en npm al incluir una GitHub Action convertida en arma que recopila secretos de CI/CD y los filtra a través de HTTPS con respaldo de DNS. También incluyen una rutina destructiva que actúa como un interruptor de desconexión automática al borrar el directorio principal en caso de que pierda el acceso a GitHub y npm. La función de limpiaparabrisas está actualmente desactivada de forma predeterminada.

Otro componente importante del malware es un módulo «MCPobject» que se dirige específicamente a los asistentes de codificación de IA mediante la implementación de un protocolo de contexto de modelo malintencionado ( MCP ) e inyectándolo en sus configuraciones de herramientas. El servidor MCP se hace pasar por un proveedor legítimo de herramientas y registra tres aparentemente inofensivas herramientas , cada una de las cuales incorpora una inyección de mensajes para leer el contenido de los archivos ~/.ssh/id_rsa, ~/.ssh/id_ed25519, ~/.aws/credentials, ~/.npmrc y.env y guardarlos en un directorio local para su posterior eliminación.

El módulo está dirigido a Claude Code, Claude Desktop, Cursor, Microsoft Visual Studio Code (VS Code) Continue y Windsurf. También recopila claves de API para nueve proveedores de grandes modelos lingüísticos (LLM): Anthropic, Cohere, Fireworks AI, Google, Grok, Mistral, OpenAI, Replicate y Together.

Además, la carga útil contiene un motor polimórfico que está configurado para llamar a un servidor local Ollama instancia con Codificador DeepSeek modelo para cambiar el nombre de las variables, reescribir el flujo de control, insertar código basura y codificar cadenas para evitar la detección. Si bien el motor está apagado en los paquetes detectados actualmente, la inclusión de la función sugiere que los operadores quieren lanzar más iteraciones del malware en el futuro.

Toda la cadena de ataque se desarrolla en dos etapas: un componente de primera etapa que captura las credenciales y las claves de criptomonedas y, a continuación, carga una etapa secundaria que, posteriormente, realiza una recolección más profunda de las credenciales de los administradores de contraseñas, la propagación similar a un gusano, la inyección de MCP y la exfiltración total. La segunda fase no se activa hasta que hayan transcurrido 48 horas (con una fluctuación por máquina de hasta 48 horas adicionales).

Se recomienda a los usuarios que hayan instalado cualquiera de los paquetes antes mencionados que los eliminen con efecto inmediato, roten los tokens de NPM/GitHub y los secretos de CI y revisen los package.json, lockfiles y .github/workflows/ para detectar cualquier cambio inesperado.

«Varios indicadores y barreras de protección siguen sugiriendo que el actor de la amenaza está iterando sus capacidades (por ejemplo, los botones que desactivan las rutinas destructivas o la reescritura polimórfica en algunas versiones)», afirma Socket. «Sin embargo, el mismo código de gusano que aparece en varios paquetes tipográficos y alias de editores indica que se trata de una distribución intencionada y no de una publicación accidental».

«Los comportamientos destructivos y de propagación siguen siendo reales y de alto riesgo, y los defensores deben tratar estos paquetes como riesgos de compromiso activos y no como artefactos de prueba benignos».

La divulgación se produce como Código Vera y JFrog detalló otros dos paquetes npm maliciosos llamados «buildrunner-dev» y «eslint-verify-plugin», respectivamente, que están diseñados para entregar un troyano de acceso remoto (RAT) dirigido a los sistemas Windows, macOS y Linux. El malware de.NET implementado por buildrunner-dev es PULSAR RAT , una RAT de código abierto que se entrega a través de una imagen PNG alojada en i.ibb [.] co.

El complemento ESLint-Verify, por otro lado, «se hace pasar por una utilidad legítima de ESLint al tiempo que implementa una cadena de infección sofisticada y de varias etapas dirigida a entornos macOS y Linux», dijo JFrog.

En Linux, el paquete implementa un Poseidón agente para el marco Mythic C2. Facilita una amplia gama de funciones posteriores a la explotación, incluidas las operaciones de archivos, la recolección de credenciales y el movimiento lateral. Se ejecuta la secuencia de infección de macOS Apfell , un agente de JavaScript for Automation (JXA) para macOS, para recopilar datos exhaustivos y crear un nuevo usuario de macOS con privilegios de administrador.

enlaces

Algunos de los datos robados por el agente son los siguientes -

  • Información del sistema
  • Credenciales del sistema mediante un cuadro de diálogo de contraseña falsa
  • Marcadores del navegador Google Chrome
  • Contenido del portapapeles
  • Archivos asociados con el llavero de iCloud y las cookies, los datos de inicio de sesión y los marcadores de Chrome
  • Capturas de pantalla
  • Metadatos de archivos

«El paquete eslint-verify-plugin es un ejemplo directo de cómo un paquete npm malicioso puede pasar de ser un simple enlace de instalación a comprometer todo el sistema», afirma JFrog. «Al hacerse pasar por una utilidad legítima, los atacantes lograron ocultar una cadena de infección en varias etapas».

Los hallazgos también siguen a un informe de Checkmarx, que señalaba una extensión falsa de VS Code conocida como «solid281» que se hace pasar por la extensión oficial de Solidity, pero que alberga funciones encubiertas para ejecutar automáticamente un cargador muy ofuscado. inicio de la aplicación y coloque ScreenConnect en Windows y una consola inversa de Python en máquinas macOS y Linux.

«Esto refleja patrones más amplios reportados por otros equipos: los desarrolladores de Solidity parecen ser los objetivos específicos, incluidas las campañas que utilizaban extensiones falsas de Solidity para instalar ScreenConnect y, luego, desplegar cargas útiles de seguimiento», dijo Checkmarx apuntado .

¿Te ha parecido interesante este artículo? Síguenos en Noticias de Google , Twitter y LinkedIn para leer más contenido exclusivo que publicamos.