Paquete malicioso en npm ‘https-proxy-utils’ desplegaba AdaptixC2: claves técnicas y cómo protegerse

CyberSecureFox 🦊

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.

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.