Malware CanisterWorm

Un sofisticado ataque a la cadena de suministro, inicialmente dirigido al popular escáner Trivy, se ha convertido en una intrusión de mayor envergadura que afecta a numerosos paquetes de npm. Se sospecha que los responsables de esta campaña desplegaron un gusano autopropagante, hasta ahora desconocido, conocido como CanisterWorm, lo que ha incrementado significativamente la magnitud y el impacto de la intrusión.

El malware debe su nombre al uso de un contenedor de Protocolo de Computación de Internet (ICP), contratos inteligentes a prueba de manipulaciones alojados en una cadena de bloques descentralizada, como parte de su infraestructura de comando. Este es el primer caso documentado públicamente del uso de contenedores ICP como arma para recuperar puntos finales de comando y control (C2), lo que introduce una táctica novedosa y resistente que complica los esfuerzos de mitigación tradicionales.

Paquetes comprometidos y vector de acceso inicial

El ataque ha afectado a múltiples paquetes de npm en diferentes ámbitos, lo que demuestra un amplio radio de impacto dentro de la cadena de suministro de software:

  • 28 paquetes bajo el ámbito de @EmilGroup
  • 16 paquetes bajo el ámbito de @opengov
  • Paquetes adicionales que incluyen @teale.io/eslint-config, @airtm/uuid-base32 y @pypestream/floating-ui-dom

Esta campaña se produce poco después de una filtración de credenciales que permitió a los atacantes publicar versiones maliciosas de herramientas relacionadas con Trivy, concretamente trivy, trivy-action y setup-trivy, que contenían funcionalidades integradas para el robo de credenciales. Se cree que la operación está vinculada a un grupo ciberdelincuente especializado en la nube, identificado como TeamPCP.

Flujo de trabajo de infección e infraestructura de comando descentralizada

La cadena de infección comienza durante el proceso de instalación del paquete npm, donde un script posterior a la instalación ejecuta un cargador. Este cargador despliega una puerta trasera basada en Python diseñada para comunicarse con el contenedor ICP. El contenedor actúa como un servidor de destino, devolviendo una URL que dirige al sistema infectado para descargar y ejecutar la carga útil de la siguiente etapa.

La naturaleza descentralizada de la infraestructura ICP ofrece una ventaja significativa a los atacantes. Dado que el contenedor puede actualizar dinámicamente la URL de la carga útil, los ciberdelincuentes pueden distribuir nuevos binarios maliciosos a todos los sistemas infectados sin modificar el malware desplegado. Esta arquitectura también dificulta considerablemente las labores de eliminación.

Mecanismos de persistencia y técnicas de sigilo

La persistencia se logra mediante la creación de un servicio de usuario systemd configurado para reiniciar automáticamente el proceso malicioso. Las características clave incluyen:

  • Reinicio automático impuesto mediante la directiva Restart=always
  • Un retraso de 5 segundos antes de volver a ejecutar la puerta trasera si se ha terminado.
  • Disfrazar el servicio como un software legítimo de monitorización de PostgreSQL bajo el nombre 'pgmon'.

Este enfoque garantiza el funcionamiento continuo a la vez que minimiza la probabilidad de detección al integrarse con los servicios legítimos del sistema.

Entrega adaptativa de la carga útil y comportamiento del interruptor de apagado

La puerta trasera se comunica periódicamente con el contenedor ICP cada 50 minutos, utilizando un agente de usuario de navegador falsificado para evitar levantar sospechas. La URL devuelta determina la siguiente acción:

  • Si la URL apunta a una carga útil válida, el malware la descarga y la ejecuta.
  • Si la URL contiene 'youtube.com', el malware entra en un estado latente.

Este mecanismo funciona como un interruptor de desactivación remota. Al alternar la URL del contenedor entre un enlace inofensivo de YouTube y una carga útil maliciosa, el atacante puede activar o desactivar el malware en todos los sistemas infectados. Cabe destacar que las cargas útiles ejecutadas previamente continúan en segundo plano, ya que el malware no finaliza los procesos anteriores.

También se ha observado un mecanismo de desactivación similar basado en YouTube en un binario de Trivy infectado con un troyano (versión 0.69.4), que se comunica con la misma infraestructura ICP a través de un programa de descarga de Python independiente.

Capacidades de los gusanos y propagación automatizada

Inicialmente, la propagación se basaba en un script ejecutado manualmente llamado deploy.js, que aprovechaba tokens de autenticación de npm robados para inyectar código malicioso en paquetes accesibles. Este script no se activaba durante la instalación, sino que funcionaba como una herramienta independiente para ampliar el alcance del ataque.

Las variantes posteriores de CanisterWorm han evolucionado significativamente. En versiones más recientes, como las que se encuentran en @teale.io/eslint-config (versiones 1.8.11 y 1.8.12), el gusano incorpora la autopropagación directamente en el proceso de instalación del paquete. El mecanismo actualizado incluye:

  • Extracción de tokens de autenticación de npm del entorno infectado.
  • Ejecución inmediata de la rutina de propagación como un proceso en segundo plano independiente.
  • Publicación automatizada de paquetes comprometidos mediante credenciales obtenidas ilegalmente.

Este cambio transforma el ataque, pasando de ser una campaña operada manualmente a un sistema de propagación totalmente autónomo.

Escalada hacia una amenaza autosostenible para la cadena de suministro

La introducción de la recolección automatizada de tokens y su autopropagación representa una escalada crítica. Cualquier estación de trabajo de desarrollador o canalización de CI/CD que instale un paquete comprometido y contenga credenciales npm accesibles se convierte en un nodo de propagación activo. Esto crea un efecto en cascada en el que los paquetes infectados provocan más infecciones en las dependencias posteriores.

En esta etapa, la amenaza trasciende el simple compromiso de cuentas aisladas y se convierte en un ecosistema autosostenible de distribución de malware. Cada nuevo entorno infectado contribuye a la propagación, lo que permite un crecimiento exponencial y dificulta considerablemente su contención.

Para agravar la preocupación, los artefactos de prueba, como una carga útil de marcador de posición ('hello123'), indican que los atacantes están refinando y validando activamente la cadena de ataque antes de desplegar binarios maliciosos completamente operativos.

Tendencias

Mas Visto

Cargando...