Cadena de Suministro — Campaña StubMaker de Typosquatting en RubyGems y npm Compromete Credenciales y Wallets de Criptomonedas (N/A)
Fecha de publicación: 18 de agosto de 2026
Categoría: Ciberseguridad / Supply Chain / Malware
Introducción
Investigadores de ciberseguridad de OpenSourceMalware y SafeDep han identificado una compleja y coordinada campaña de suplantación de paquetes (typosquatting) en los repositorios de código abierto RubyGems y npm. La amenaza, rastreada bajo el alias de StubMaker, involucró inicialmente a 16 paquetes maliciosos en RubyGems y posteriormente se expandió a más de 37 paquetes en npm, además de una variante denominada BRIDGEHEAD analizada por CloudSEK. Esta infraestructura maliciosa aprovecha los mecanismos automáticos de construcción e instalación de dependencias para descargar y ejecutar un cargador basado en Rust y un roba-credenciales (infostealer) en entornos Windows.
¿Qué es StubMaker? (Análisis General)
StubMaker no es una vulnerabilidad en el código fuente de los gestores de paquetes, sino un ataque de abuso a la cadena de suministro de software mediante typosquatting y la reutilización maliciosa de nombres de paquetes huérfanos (package name reuse). Los actores de amenaza publicaron paquetes con nombres fonéticamente similares a dependencias populares (por ejemplo, activesupmport, brumdler, axios-http, lodash-lib), engañando a desarrolladores desprevenidos durante la instalación local o en ductos de integración continua (CI/CD).
Al carecer de un identificador de vulnerabilidad oficial asignado (CVE: N/A), este incidente se clasifica conceptualmente dentro de la categoría CWE-506: Embedded Malicious Code y CWE-1357: Reliance on Unverified Inputs in Software Supply Chain. Dado que no existe una vulnerabilidad estructural en el software de los gestores, sino un abuso de características de diseño (como los scripts de instalación automáticos y la reclamación de nombres de espacios eliminados), el riesgo se evalúa con una estimación de severidad Crítica (CVSS v3.1 estimada: 9.8 / [AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/H:H]), debido a la capacidad de comprometer de forma silenciosa la integridad total del sistema de desarrollo del usuario.
¿Cómo funciona? (Análisis Técnico)
El vector de ataque difiere ligeramente entre ecosistemas pero comparte una arquitectura de despliegue altamente modular y evasiva:
- Fase 1: Entrada y Disparador Automático:
- En RubyGems, el ataque se ejecuta mediante el script
extconf.rb. Este archivo se ejecuta de forma automática durante el proceso de instalación de una gema cuando se compilan extensiones nativas. Los atacantes diseñaron un Makefile falso con objetivos vacíos para simular una compilación limpia, mientras el verdadero payload operaba en el instalador. - En npm, se utilizan hooks de post-instalación (lifecycle hooks) para desencadenar la ejecución del script malicioso de manera silenciosa.
- En RubyGems, el ataque se ejecuta mediante el script
- Fase 2: Recuperación del Cargador (Loader):
- El script instalador descarga un cargador avanzado de 22 MB escrito en lenguaje Rust desde repositorios externos en GitHub (
github[.]com/bebraz1). El enlace de descarga se ofuscaba mediante Base64 en Ruby y mediante cifrado XOR de clave repetida en npm.
- El script instalador descarga un cargador avanzado de 22 MB escrito en lenguaje Rust desde repositorios externos en GitHub (
- Fase 3: Despliegue del Infostealer y Evasión ABE:
- El cargador de Rust despliega un payload basado en Go denominado
wincfg, el cual integra una DLL (abe_payload.dll). Esta biblioteca extrae credenciales de navegadores basados en Chromium (Google Chrome, Microsoft Edge, Brave, Opera, etc.) eludiendo las protecciones de cifrado asociadas a la cuenta del sistema operativo (App-Bound Encryption - ABE). - En las variantes BRIDGEHEAD documentadas por CloudSEK, se implementó además una puerta de enlace para entornos WSL (Windows Subsystem for Linux). Si un desarrollador instala el paquete dentro de una terminal Linux en Windows, el script detecta el entorno y actúa como un “puente” para atacar la máquina Windows subyacente.
- El cargador de Rust despliega un payload basado en Go denominado
- Fase 4: Exfiltración de Datos:
- El malware recopila historiales de navegación, extensiones, tarjetas de pago, semillas de criptomonedas y datos de Telegram Desktop. La información es comprimida en un archivo ZIP protegido con contraseña y exfiltrada a través de un servicio de alojamiento público (
Gofile), enviando el enlace resultante a un servidor de comando y control (C2) mediante una petición HTTP sin cifrar.
- El malware recopila historiales de navegación, extensiones, tarjetas de pago, semillas de criptomonedas y datos de Telegram Desktop. La información es comprimida en un archivo ZIP protegido con contraseña y exfiltrada a través de un servicio de alojamiento público (
Sistemas / Entornos Afectados
El impacto afecta principalmente a desarrolladores y entornos de ejecución que operan bajo el sistema operativo Microsoft Windows (incluyendo entornos WSL).
- Ecosistema RubyGems: 16 paquetes identificados, incluyendo:
ubnuler,ubnlder,ri18nr,reaker,rakier,orakw,joxn,ise18n,ioe18n,ie18u,iai8n,i1l8n,i18om,activesupmport,brumdler,brundlef. - Ecosistema npm: Más de 40 paquetes suplantando dependencias críticas como
axios,chalk,commander,lodash,typescriptyreact.
Mitigación y Detección
Remediación
- Aislamiento Inmediato: Desconectar de la red corporativa cualquier equipo Windows donde se hayan instalado por error los paquetes mencionados.
- Rotación de Credenciales: Cambiar inmediatamente todas las contraseñas de servicios web, claves API, tokens de GitHub y frases semilla de carteras de criptomonedas gestionadas en los equipos comprometidos.
- Limpieza de Dependencias: Auditar los archivos
Gemfile.lockypackage-lock.jsonpara garantizar que no existan referencias a las librerías maliciosas o variantes de typosquatting.
Detección
Los equipos defensivos deben monitorear la ejecución de procesos inusuales vinculados a compilaciones nativas de RubyGems o scripts de post-instalación de npm que realicen llamadas salientes a GitHub o servicios de almacenamiento de archivos de terceros.
# Regla de ejemplo para detección de comportamiento sospechoso en scripts de instalación
title: Detección de Descarga Externa en Postinstall de npm / RubyGems
status: experimental
level: critical
description: Detecta scripts de instalación de paquetes que descargan ejecutables externos desde GitHub.
logsource:
category: process_creation
product: windows
detection:
selection:
ParentImage|endswith:
- '\node.exe'
- '\ruby.exe'
CommandLine|contains:
- 'github.com'
- 'gofile.io'
- 'extconf.rb'
condition: selection
falsepositives:
- Falsos positivos mínimos si los entornos de desarrollo bloquean descargas arbitrarias en instalación.Nota de Inteligencia: La reutilización de nombres de paquetes huérfanos (package name reuse) en RubyGems representa un vector de riesgo persistente donde la eliminación de un paquete malicioso no previene su re-registro inmediato por parte del mismo actor malicioso bajo una nueva identidad no validada.
Recapitulando
La campaña StubMaker demuestra la eficacia de los ataques a la cadena de suministro dirigidos contra desarrolladores en múltiples ecosistemas. Al abusar de los hooks de instalación automática y combinar cargadores en Rust con robustos infostealers en Go, los atacantes logran evadir controles tradicionales y comprometer información crítica de autenticación y activos financieros en cuestión de segundos. La adopción de políticas estrictas de análisis de dependencias y el bloqueo de scripts de instalación no verificados son esenciales para mitigar este vector de amenaza.
Referencias
- The Hacker News. (2026). 16 Typosquatted RubyGems Packages Steal Browser Credentials and Crypto Wallets. Recuperado de https://thehackernews.com/2026/08/16-typosquatted-rubygems-packages-steal.html
- OpenSourceMalware. (2026). StubMaker RubyGems Windows Infostealer. Recuperado de https://opensourcemalware.com/blog/stubmaker-rubygems-windows-infostealer
- SafeDep. (2026). Google Dependency Confusion Bin Harvesting. Recuperado de https://safedep.io/google-dep-confusion-bin-harvesting/
- SafeDep. (2026). Malicious Baileys npm WhatsApp Campaign. Recuperado de https://safedep.io/malicious-baileys-npm-whatsapp-campaign/
- OpenHack. (2026). 37 Package NPM Typosquat Windows Stealer. Recuperado de https://openhack.com/blog/37-package-npm-typosquat-windows-stealer
- CloudSEK. (2026). Bridgehead NPM Typosquatting WSL Windows Crypto Wallet Stealer. Recuperado de https://www.cloudsek.com/blog/bridgehead-npm-typosquatting-wsl-windows-crypto-wallet-stealer