La cadena de suministro de software continúa posicionándose como uno de los principales focos de riesgo para organizaciones y equipos de desarrollo. Una reciente investigación reveló que un paquete publicado en npm bajo el nombre sensivity ocultaba capacidades de control remoto, persistencia y monitoreo de actividad del usuario, utilizando además una estrategia basada en múltiples versiones para mantenerse activo dentro del ecosistema.
El caso fue expuesto por investigadores de Xygeni, quienes identificaron que el paquete acumuló cerca de 70 versiones publicadas en pocos días, manteniendo una misma estructura operativa mientras realizaba pequeños cambios que dificultaban su bloqueo mediante listas tradicionales o filtros basados únicamente en versiones específicas.
Un comportamiento que iba mucho más allá de una utilidad legítima
A simple vista, el paquete se presentaba como un supuesto panel de control aparentemente inofensivo. Sin embargo, tras ejecutarse en sistemas Windows iniciaba una serie de acciones destinadas a establecer persistencia, ocultar su actividad y mantener el control sobre el sistema comprometido.
Entre los principales comportamientos observados destacan:
- Creación de mecanismos de inicio automático mediante claves de registro de Windows.
- Suplantación de procesos legítimos utilizando nombres conocidos del sistema como «Runtime Broker».
- Ejecución de scripts PowerShell con políticas de seguridad deshabilitadas.
- Levantamiento de un panel de control local accesible desde el navegador.
- Monitoreo de actividad del usuario dentro del navegador.
Además, los investigadores detectaron el uso de archivos ofuscados y módulos nativos compilados, una combinación que dificulta el análisis mediante herramientas tradicionales y que puede ocultar funcionalidades adicionales.
Indicadores de compromiso
| Tipo | Indicador | Notas |
| PREMIUM | npm:sensivity (≈70 versions, 2.5.0–2.5.69) | Single-package publisher; no repository; unlicensed. |
| Archivo | launcher.js | Readable orchestrator; main and bin target. |
| Archivo | server.obf.js (≈171 KB) | obfuscator.io RC4 string-array payload, loaded via eval(fs.readFileSync(…)). |
| Archivo | sens.node (≈6.87 MB) | PE32+ x86-64 Node N-API addon; SHA-256 66b674884042fca2f056d06854325ea0e8bc902d4e3cdaeafd5fe08c7d0aab40. |
| Archivo | OneDrive.Standalone.Updater.vbs | Hidden relauncher (node launcher.js). |
| Network | https://izopi.com/check.php | License/auth endpoint recovered from the obfuscated server; embedded RSA public key verifies responses. |
| Capacidad | OpenProcess, VirtualAllocEx, WriteProcessMemory, ReadProcessMemory, CreateRemoteThread | Remote-process injection and memory read/write capability. |
| Capacidad | Enable Aimbot, Box ESP, Triggerbot, Vehicle ESP, Dear ImGui 1.91.3 WIP | DirectX 11 / ImGui game overlay implementing aimbot, ESP, and triggerbot features. |
| Registro | HKCU\Software\Microsoft\Windows\CurrentVersion\Run → OneDriveUpdate | Autostart value pointing at wscript.exe and the VBScript launcher. |
| Proceso | process.title = ‘Runtime Broker’ | Masquerades as the legitimate Windows Runtime Broker process. |
| Salud Conductual | powershell -NoProfile -ExecutionPolicy Bypass -File <generated>.ps1 | Execution-policy bypass used for generated PowerShell scripts. |
| Salud Conductual | UIAutomation ValuePattern read of browser address bar | Reads the URL of the foreground browser window. |
| Salud Conductual | Target video ID wJWta2lO0Lw; 3-second YouTube poll | Pinned engagement-monitoring signal. |
| Network | http://localhost:3000, fallback http://192.168.1.16:3000 | QR-pairing control panel exposed locally and on the LAN. |
| Medio Ambiente | SENSIVITY_SUPERVISOR, SENSIVITY_WORKER | Detached watchdog process coordination flags. |
La táctica de las múltiples versiones
Uno de los elementos más llamativos del caso fue la estrategia utilizada para permanecer activo dentro del ecosistema npm.
En lugar de publicar una única actualización, el responsable liberó decenas de versiones consecutivas en un corto período de tiempo, incluso reutilizando números de versiones anteriores. Este método permite mantener el paquete disponible incluso cuando determinadas versiones son identificadas y eliminadas o bloqueadas por herramientas de seguridad.
Para los equipos de ciberseguridad esto representa un desafío importante, ya que depender únicamente de bloqueos por versión puede resultar insuficiente frente a amenazas que evolucionan constantemente.
El problema va más allá del malware tradicional
Casos como este demuestran que el riesgo ya no se limita a la descarga manual de archivos maliciosos. Hoy una dependencia aparentemente legítima puede transformarse en un punto de entrada para comprometer estaciones de trabajo, entornos de desarrollo e incluso procesos críticos dentro de una organización.
La creciente adopción de librerías open source y componentes de terceros ha ampliado significativamente la superficie de ataque. Los especialistas coinciden en que ya no basta con detectar vulnerabilidades conocidas: también es necesario identificar comportamientos sospechosos dentro de las dependencias que forman parte del ciclo de desarrollo.

Recomendaciones para las organizaciones
Ante amenazas de este tipo, los expertos recomiendan:
- Bloquear paquetes identificados como riesgosos desde repositorios internos o proxys corporativos.
- Monitorear procesos que intenten imitar componentes legítimos del sistema.
- Revisar dependencias que incorporen código ofuscado o comportamientos anómalos.
- Implementar controles de seguridad sobre la cadena de suministro de software.
- Auditar componentes externos antes de incorporarlos a entornos productivos.
Este tipo de incidentes demuestra que la seguridad ya no depende únicamente de proteger la infraestructura, sino también de mantener visibilidad sobre cada componente que forma parte del ecosistema tecnológico de una organización. En CronUp Ciberseguridad apoyamos a las empresas con servicios especializados de ciberseguridad, monitoreo y detección proactiva, permitiendo reducir riesgos asociados a amenazas emergentes y fortalecer la resiliencia frente a ataques que evolucionan constantemente.
Referencias

© 2026 CronUp Ciberseguridad. Todos los derechos reservados. Este contenido está protegido por la Ley Nº 17.336. Se permite su uso informativo citando la fuente y enlazando el artículo original. Su reproducción o uso sin atribución constituye infracción.




