Investigadores de Kaspersky alertaron sobre un paquete malicioso en npm denominado https-proxy-utils, camuflado como utilidades de proxy legítimas. Tras su instalación, el paquete descargaba y ejecutaba AdaptixC2, un framework de post‑explotación de código abierto. Aunque el paquete ya fue retirado del registro, el incidente vuelve a evidenciar la exposición de la cadena de suministro de software open source a ataques cada vez más sofisticados.
Typosquatting en npm: suplantación de http-proxy-agent/https-proxy-agent
El nombre https-proxy-utils imitaba deliberadamente a los populares http-proxy-agent y https-proxy-agent, que acumulan decenas de millones de descargas semanales. Esta táctica, conocida como typosquatting y contextual squatting, explota la inercia de los desarrolladores a la hora de añadir dependencias conocidas. El paquete incluía un script postinstall que descargaba y ejecutaba AdaptixC2, otorgando al atacante acceso remoto, control de procesos y archivos, y mecanismos de persistencia para fases posteriores.
AdaptixC2: un C2 de código abierto con usos duales
AdaptixC2 es un framework extensible de post‑explotación lanzado en 2024, con servidor en Go, cliente en C++/Qt y soporte para Linux, Windows y macOS. Igual que Cobalt Strike o Havoc, se concibe para pruebas de intrusión y ejercicios de red teaming, pero su naturaleza abierta facilita su abuso por actores maliciosos. Investigaciones públicas lo han vinculado a incidentes observados en marzo de 2025, lo que refuerza el riesgo de su incorporación a campañas reales.
Cadena de ataque: comportamiento por sistema operativo
Windows: DLL sideloading usando un binario confiable
En Windows, la carga maliciosa se implantaba como DLL en C:\Windows\Tasks y se activaba mediante DLL sideloading. El instalador copiaba msdtc.exe a esa ruta y lo ejecutaba para forzar la carga de la DLL manipulada, aprovechando un binario confiable para dificultar la detección basada en firmas.
macOS: persistencia con LaunchAgents y binarios por arquitectura
En macOS, el agente se depositaba en ~/Library/LaunchAgents junto con un archivo plist para el arranque automático. Antes, el script identificaba la arquitectura (x64 o ARM) y descargaba el binario correspondiente. El uso de LaunchAgents garantiza la ejecución persistente al iniciar sesión el usuario.
Linux: uso de directorios temporales ocultos y permisos de ejecución
En Linux, el binario se ubicaba en /tmp/.fonts-unix y se marcaba como ejecutable, seleccionando igualmente el artefacto según arquitectura. La combinación de rutas temporales y directorios ocultos es un patrón frecuente para encubrir etapas de corta duración.
Riesgo de supply chain en open source: tendencias y precedentes
El caso de https-proxy-utils confirma el creciente abuso de registros públicos como vector inicial. Existen precedentes notorios: event-stream (2018), UAParser.js (2021) y la campaña IconBurst (2022). Informes de observatorios del ecosistema como Sonatype y análisis de laboratorios de seguridad han documentado un incremento sostenido de paquetes maliciosos y un salto cualitativo en tácticas, con postinstall agresivos, DLL sideloading y mecanismos de persistencia difíciles de rastrear sin análisis conductual y correlación asistida por IA. Recomendaciones de CISA, OpenSSF y el modelo SLSA apuntan a reforzar controles desde el ciclo de vida de desarrollo hasta la operación.
Medidas de mitigación: controles para Dev, Sec y Operaciones
– Gestionar dependencias con rigor: lockfiles, fijación de versiones y allow‑list para paquetes críticos.
– Adoptar firma de artefactos y verificación de integridad (npm integrity, Sigstore/SLSA).
– Endurecer CI/CD: deshabilitar postinstall por defecto, exigir aprobación explícita y aislar instalaciones en sandbox.
– Monitorizar llamadas de red anómalas desde agentes de build y estaciones de desarrollo.
– Desplegar EDR/XDR con detecciones de DLL sideloading, LaunchAgents no autorizados y ejecutables inusuales en rutas temporales.
– Auditar con regularidad el autoinicio y los permisos en directorios sensibles del sistema.
– Formar a desarrolladores para identificar typosquatting, verificar propietarios y revisar el historial de publicaciones antes de incorporar una dependencia.
La retirada de https-proxy-utils no elimina el riesgo de imitadores. Reforzar la verificación de dependencias, habilitar firmas e integridad, y aplicar monitorización conductual continua acota la superficie de ataque y corta la cadena antes de que se despliegue un C2. Revise sus políticas sobre postinstall y persistencia en endpoints de desarrollo y priorice controles preventivos en CI/CD; son medidas de bajo coste con alto impacto para la resiliencia de la cadena de suministro.