La comunidad de desarrolladores ha recibido una seria advertencia tras el descubrimiento de diez paquetes maliciosos en NPM que han sido descargados casi 10.000 veces. Esta campaña de malware, detectada por el equipo de investigación de amenazas de Socket, representa una de las ofensivas más sofisticadas contra la cadena de suministro de software en 2025.

¿Qué ha ocurrido?

Socket, una firma especializada en seguridad de código abierto, ha identificado una serie de paquetes NPM que contienen infostealers diseñados para robar credenciales y datos sensibles de sistemas operativos Windows, macOS y Linux. Estos paquetes fueron publicados el 4 de julio y permanecieron activos durante más de cuatro meses, acumulando miles de descargas antes de ser reportados.

Técnicas avanzadas de evasión

Lo que distingue esta campaña de otras anteriores es el uso de cuatro capas de ofuscación para ocultar el código malicioso:

  1. Self-Decoding Eval Wrapper: El payload se reconstruye y ejecuta a sí mismo, dificultando su análisis superficial.
  2. Cifrado XOR con clave dinámica: La clave se genera mediante el hash de la función decodificadora, lo que impide la automatización de la desofuscación.
  3. Codificación URL: El string del payload está codificado en URI, lo que bloquea herramientas de análisis estático.
  4. Máquinas de estado con aritmética hexadecimal y octal: Se oculta el flujo del programa para confundir a los analistas.

Estas técnicas, raramente vistas en conjunto, demuestran un nivel de sofisticación alarmante en ataques a la cadena de suministro de NPM.

Sophos sufre su segunda fuga de datos en 2020

¿Cómo actúa el malware?

Una vez instalado, el paquete malicioso presenta una falsa pantalla CAPTCHA para simular legitimidad. Detecta el sistema operativo del usuario y lanza el payload en una nueva ventana de terminal, que se cierra rápidamente para evitar sospechas. El malware descarga un archivo de 24MB empaquetado con PyInstaller que extrae credenciales de:

  • Windows: Credential Manager
  • macOS: Keychain
  • Linux: SecretService keyrings

Además, envía la geolocalización y huella del sistema a un servidor de comando y control (C2), desde donde se descargan binarios específicos para cada plataforma.

Paquetes comprometidos

Los atacantes utilizaron typosquatting para registrar nombres similares a bibliotecas legítimas. Algunos ejemplos incluyen:

  • typescriptjs (imitando TypeScript)
  • deezcord.js y dezcord.js (imitando discord.js)
  • etherdjs, ethesjs, ethetsjs (imitando ethers.js)
  • nodemonjs (imitando nodemon)
  • react-router-dom.js (imitando react-router-dom)
  • zustand.js (imitando zustand)

Este método busca engañar a desarrolladores que escriben mal el nombre del paquete o lo copian desde fuentes no oficiales.

Recomendaciones para desarrolladores

Socket recomienda tomar medidas inmediatas si se ha instalado alguno de estos paquetes:

  • Auditar dependencias: Verificar si alguno de los paquetes maliciosos está presente.
  • Resetear credenciales: Cambiar contraseñas, revocar tokens OAuth, JWT y API keys.
  • Activar MFA: Habilitar autenticación multifactor en todos los servicios.
  • Rotar claves SSH: Revisar claves autorizadas en todos los sistemas.
  • Auditar logs: Buscar actividad sospechosa en servicios conectados.
  • Revisar historial del navegador: Identificar posibles robos de contraseñas guardadas.
  • Monitorear accesos no autorizados: Especialmente en repositorios, servicios en la nube e infraestructura interna.

Estas acciones son críticas para contener el impacto y evitar movimientos laterales hacia entornos de producción.

¿Por qué es tan grave? Y cómo protegerte

Este ataque pone de manifiesto la fragilidad de los ecosistemas de código abierto, donde la confianza en mantenedores y la falta de auditoría automatizada pueden abrir puertas a amenazas masivas. La combinación de técnicas avanzadas, persistencia prolongada y distribución transversal a múltiples sistemas operativos convierte esta campaña en una de las más peligrosas del año.

Para prevenir futuros incidentes, los expertos recomiendan:

  • Bloquear por defecto: No permitir la instalación de paquetes sin revisión previa.
  • Entornos aislados: Ejecutar builds en entornos sandbox.
  • Revisión de permisos: Evaluar los permisos solicitados por cada paquete.
  • Uso de herramientas de análisis: Implementar escáneres como Socket, Snyk o npm audit.
  • Educación continua: Capacitar a los equipos sobre buenas prácticas de seguridad en desarrollo.

Este tipo de ataques no solo afecta a desarrolladores individuales, sino que puede comprometer aplicaciones empresariales, plataformas SaaS y servicios críticos. La naturaleza transversal del ecosistema JavaScript hace que cualquier brecha en NPM tenga repercusiones globales.

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Newest
Oldest Most Voted
Inline Feedbacks
View all comments

Relacionados

Tendencias

Más leídos

Se habla de..

0
Would love your thoughts, please comment.x
()
x