Ataque a la cadena de suministro: Más de 140 paquetes NPM maliciosos atacan el ecosistema de IA de Mastra

Un ataque de cadena de suministro a gran escala Un reciente ataque a la cadena de suministro ha puesto en riesgo al ecosistema de desarrolladores que utilizan NPM, la plataforma más popular para la gestión de paquetes en JavaScript. Atacantes lograron inyectar código malicioso en múltiples librerías con más de 2.6 mil millones de descargas semanales, tras comprometer la cuenta de un mantenedor mediante un correo de phishing que imitaba al soporte oficial de npmjs.com. El mantenedor afectado, Josh Junon, confirmó el incidente y señaló que el correo fraudulento advertía que su cuenta sería bloqueada si no actualizaba su autenticación multifactor (2FA), forzando así a que ingresara credenciales en un sitio controlado por los atacantes. Paquetes afectados y alcance de la intrusión Entre los paquetes comprometidos se encuentran algunos de los más utilizados en proyectos globales: chalk (299.9M descargas semanales) debug (357.6M) ansi-styles (371.4M) strip-ansi (261.1M) supports-color (287.1M) color-convert (193.5M) Entre otros, sumando más de 18 librerías populares. Estos paquetes fueron modificados para incluir código malicioso en archivos index.js, diseñado para interceptar interacciones web y manipular operaciones relacionadas con criptomonedas como Bitcoin, Ethereum, Solana, Tron y Litecoin. El malware alteraba funciones críticas de JavaScript (fetch, XMLHttpRequest, window.ethereum) con el objetivo de redirigir transacciones a billeteras controladas por los atacantes. Cómo operaba el malware El código malicioso actuaba de forma silenciosa en el navegador, alterando tanto el contenido mostrado como las interacciones con APIs y aplicaciones web3. Esto permitía manipular direcciones de pago y aprobar transacciones fraudulentas sin que el usuario lo notara. Según Aikido Security, la complejidad del ataque radica en que operaba en múltiples capas, combinando técnicas de manipulación visual con la interceptación de tráfico de red. Impacto y limitaciones Aunque la magnitud del ataque es significativa, expertos señalan que el impacto puede haberse reducido debido a factores como: Solo afectó instalaciones nuevas realizadas entre las 9:00 y 11:30 AM ET del día del compromiso. Requería que el archivo package-lock.json fuera generado en ese mismo periodo. Dependencias directas o transitivas debían incluir versiones comprometidas. Aun así, el incidente confirma la creciente tendencia de ataques contra cadenas de suministro en el ecosistema open source, donde una sola cuenta comprometida puede afectar a millones de proyectos. Lecciones para las empresas Este ataque subraya la necesidad de fortalecer controles en la gestión de dependencias y librerías de terceros: Implementar monitoreo continuo de integridad en paquetes críticos. Adoptar políticas estrictas de actualización y validación de librerías externas. Usar repositorios privados o proxies internos para reducir exposición a cambios no controlados. Reforzar la concienciación en phishing, ya que la intrusión comenzó con un engaño de ingeniería social. Conclusión: El caso de NPM recuerda que las organizaciones deben tratar las dependencias externas con el mismo nivel de seguridad que el software interno. Un simple clic en un correo de phishing puede convertirse en un ataque global con repercusiones multimillonarias.

Se ha emitido una alerta crítica de seguridad en la cadena de suministro de software tras el descubrimiento de una campaña coordinada que logró infiltrar más de 140 paquetes maliciosos en el registro NPM (Node Package Manager). Esta operación de envenenamiento está diseñada específicamente para atacar a ingenieros y desarrolladores que utilizan Mastra, un emergente y popular framework de TypeScript para la construcción de agentes de Inteligencia Artificial. El objetivo principal de los atacantes es comprometer las estaciones de trabajo de los desarrolladores y los entornos de Integración Continua (CI/CD) para exfiltrar secretos corporativos, llaves de API de modelos de IA y credenciales de infraestructura en la nube.


Veredicto Analítico
  • Estado: Confirmado (Los paquetes han sido reportados y están siendo retirados del registro público de NPM, pero el riesgo persiste en cachés locales e instalaciones previas).
  • Confianza: Alta (Respaldado por análisis de firmas de seguridad de la cadena de suministro especializadas en el ecosistema de Node.js).
  • Riesgo para SOC TDIR: Alto. Un compromiso en la fase de desarrollo (Shift-Left) es devastador. Los desarrolladores suelen tener acceso a repositorios de código fuente, claves de despliegue de producción y bases de datos. Si un paquete malicioso se cuela en el entorno de desarrollo, el atacante obtiene acceso privilegiado antes de que el código siquiera llegue a los controles de seguridad perimetrales.
  • Urgencia operativa: Inmediata para los equipos de Ingeniería de Software, Arquitectura Cloud y DevSecOps. Requiere la auditoría urgente de los árboles de dependencias.
  • Base del veredicto: Abuso de las rutinas de ejecución automática durante la instalación de paquetes (preinstall / postinstall) para lograr Ejecución Remota de Código (RCE) local.

Hallazgos Clave
  • Componente Afectado: Entornos de desarrollo local (estaciones de trabajo de ingenieros), servidores de compilación (Jenkins, GitHub Actions, GitLab CI) y el registro de dependencias NPM.
  • Naturaleza del Fallo: Ataque a la cadena de suministro mediante Typosquatting (suplantación de nombres) y Confusión de Dependencias (Dependency Confusion).
  • Mecanismo de Engaño: Los atacantes publicaron decenas de paquetes con nombres visualmente casi idénticos a los conectores, plugins e integraciones legítimas de Mastra AI (por ejemplo, variaciones como mastra-core-utils, mastra-ai-agents, mastra-telemetry). Aprovechan errores tipográficos comunes de los desarrolladores al escribir en la terminal o falsifican documentación en foros para inducir a la descarga.
  • Impacto Directo: Exfiltración silenciosa e inmediata de variables de entorno (archivos .env), claves SSH (~/.ssh), tokens de acceso a la nube (AWS, GCP, Azure) y las costosas llaves de facturación de APIs de IA (OpenAI, Anthropic).

Análisis Técnico
  • Vector de Ataque y Acceso Inicial: El ciclo de infección comienza cuando un desarrollador, por error o engaño, ejecuta el comando de instalación (ej. npm install mastra-plugin-auth). El administrador de paquetes descarga el código fuente alojado por el atacante.
  • Mecanismo de Ejecución y Exfiltración: El archivo package.json del paquete malicioso contiene directivas de ciclo de vida, usualmente postinstall. Tan pronto como los archivos tocan el disco duro, NPM ejecuta automáticamente un script de Node.js o Bash ofuscado en segundo plano, sin requerir ninguna interacción adicional del usuario.
  • Este script escanea recursivamente el directorio de trabajo actual y los directorios de configuración global del usuario. Empaqueta los secretos encontrados y los transmite hacia un servidor de Comando y Control (C2) controlado por el atacante, a menudo utilizando peticiones HTTP POST hacia dominios temporales o abusando de webhooks (como Discord/Telegram) para evadir los bloqueos de red corporativos.

TTPs (MITRE ATT&CK):
  • Acceso Inicial: Compromiso de la cadena de suministro a través de dependencias de software (Supply Chain Compromise: Compromise Software Dependencies and Development Tools).
  • Ejecución: Uso de intérpretes de comandos nativos para la ejecución de rutinas (Command and Scripting Interpreter: Node.js / Bash).
  • Colección y Exfiltración: Recopilación de información del sistema local y exfiltración de credenciales en texto plano (Data from Local System / Exfiltration Over Web Service).

Recomendaciones Operativas

Para DevSecOps y Liderazgo de Ingeniería (Acción Inmediata)

  • Auditoría de Bloqueo de Dependencias: Revisar exhaustivamente los archivos package-lock.json, yarn.lock o pnpm-lock.yaml en todos los repositorios activos. Buscar discrepancias de nombres, autores sospechosos o dependencias transitivas no reconocidas asociadas al ecosistema de Mastra.
  • Bloqueo de Ejecución de Scripts (Mitigación): Como política de seguridad por defecto para los entornos de CI/CD y estaciones locales, instruir a los desarrolladores a utilizar el flag –ignore-scripts durante la instalación (npm install –ignore-scripts). Esto previene la ejecución automática de código malicioso de pre/postinstall, permitiendo auditar el código descargado antes de compilar.
  • Uso de SCA: Implementar herramientas de Análisis de Composición de Software (SCA) en las tuberías de integración para bloquear automáticamente la descarga de paquetes NPM que hayan sido creados en los últimos 30 días o que tengan puntajes de reputación extremadamente bajos.

Para el SOC (Monitoreo y Detección)

  • Vigilancia de Tráfico en Endpoints de Desarrollo: Monitorear y alertar sobre tráfico de red saliente desde las máquinas de los desarrolladores o nodos de CI/CD hacia dominios no categorizados, IPs de alojamiento temporal (VPS) o endpoints de APIs públicas (como Discord o Pastebin), los cuales son utilizados frecuentemente como receptores temporales de los datos exfiltrados.
  • Detección de Accesos Inusuales a Archivos: Configurar el EDR de los desarrolladores para emitir alertas si los procesos secundarios de npm.exe o node.exe intentan acceder masivamente a directorios críticos como ~/.aws/credentials, ~/.kube/config o leer iterativamente archivos .env fuera de su propio árbol de proyecto.

Para CTI (Inteligencia de Amenazas)

  • Seguimiento del Enfoque en “Shadow AI”: Los atacantes están mapeando qué marcos de IA de código abierto (como Mastra, LangChain o AutoGen) están ganando tracción. El equipo de CTI debe anticipar que las campañas de suplantación de identidad en GitHub y NPM se centrarán de forma desproporcionada en estas herramientas durante 2026, ya que el robo de tokens de modelos fundacionales representa un alto valor de reventa en el mercado clandestino.

Related Post