Desmantelando Glassworm: cómo CrowdStrike acabó con una red de bots dirigida a desarrolladores

El 26 de mayo de 2026, el equipo de CrowdStrike Counter Adversary Operation, en colaboración con Google y la Fundación Shadowserver, llevó a cabo una operación coordinada para desmantelar el botnet Glassworm. Este ataque global tenía como objetivo a los desarrolladores de software a través de la cadena de suministro de código abierto. El objetivo fue cortar simultáneamente los cuatro canales de comando y control (C2) del botnet, impidiendo que los operadores mantuvieran la comunicación con sus máquinas infectadas y su capacidad para distribuir nuevos payloads maliciosos.

El botnet Glassworm marcó un cambio significativo en el panorama de las amenazas. Los atacantes ya no se centran únicamente en productos finales, sino en los desarrolladores que construyen ese software. Compromer una sola estación de trabajo de un desarrollador puede desencadenar una brecha de la cadena de suministro que afecta a miles de organizaciones y usuarios a nivel global.

La estrategia de Glassworm fue multifacética y se centró en explotar la realidad de los desarrolladores:

  • Extensión Maliciosa: Se publicaron extensiones de VSCode troleadas en el mercado OpenVSX, disfrazadas de herramientas populares como rastreadores de tiempo y formateadores de código. Estas extensiones atacaron no solo VSCode, sino también herramientas como Cursor, Positron, Windsurf y VSCodium.
  • Poisoning de Paquetes: Se introdujo código malicioso a través de paquetes de npm y Python mediante hooks de instalación y scripts de configuración, ejecutándose silenciosamente durante las instalaciones de dependencias rutinarias.
  • Explotación de Credenciales: Se contaminaron más de 300 repositorios de GitHub utilizando credenciales de desarrolladores robadas a través de infecciones anteriores de Glassworm, forzando la subida de código malicioso a ramas por defecto.

Esta operación afectó sistemas operativos Windows, macOS y Linux, y el malware tenía capacidades que iban desde el robo de información y la cosecha de credenciales hasta un Remote Access Tool (RAT) completo llamado GlasswormRAT.

Detalles técnicos: La arquitectura de resiliencia del C2

Los operadores de Glassworm diseñaron su infraestructura para ser altamente resiliente, utilizando una arquitectura de C2 que resistía los esfuerzos tradicionales de desmantelamiento. Esta resiliencia se basaba en cuatro canales distintos:

  1. Blockchain Solana: Las direcciones de los servidores C2 están codificadas en los campos de memo de las transacciones de la cadena de bloques, creando un punto de «desecho» inmutable y públicamente accesible que es imposible de desactivar por medios convencionales.
  2. BitTorrent DHT: El GlasswormRAT consulta la red peer-to-peer de BitTorrent para obtener datos de configuración almacenados contra claves públicas codificadas, aprovechando una red descentralizada global sin puntos únicos de fallo.
  3. Servicio de Calendario Público: Glassworm utiliza los títulos de eventos de Google Calendar como ubicaciones de «desecho» para rutas de C2 codificadas en Base64.
  4. Conexiones de Servidor Directas: La infraestructura C2 tradicional alojada en proveedores VPS comerciales servía como el mecanismo final para la entrega de payloads.

La combinación de blockchain, red peer-to-peer y servicios web legítimos como capas de resolución fue diseñada para ser resistente a la interrupción. Para lograr el éxito de la desrupción, fue crucial que los cuatro canales fueran interrumpidos simultáneamente. Esto aseguró que las máquinas infectadas ya no pudieran recibir nuevas instrucciones o cargas útiles del adversario.

Impacto: ¿Quién está en riesgo?

El alcance de la campaña de Glassworm subraya una verdad fundamental sobre la seguridad de la cadena de suministro de software: la detección reactiva es casi imposible. Los paquetes maliciosos se instalan a través de actualizaciones de dependencias en segundos, y la detección ocurre generalmente cuando el daño ya ha ocurrido.

Existen docenas de ecosistemas de paquetes (npm, PyPI, OpenVSX, repositorios de GitHub), cada uno con millones de paquetes y controles de seguridad incorporados limitados. Los atacantes pueden publicar código malicioso y alcanzar miles de víctimas en minutos.

El riesgo se extiende a:

  • Desarrolladores: Quienes manejan credenciales y código fuente.
  • Organizaciones: Aquellas que utilizan software afectado por estas dependencias.
  • Usuarios Finales: Aquellos que consumen aplicaciones o herramientas que incorporan el código comprometido.

Mitigaciones y recomendaciones

Para contrarrestar este tipo de amenazas, las organizaciones deben adoptar una postura más agresiva que vaya más allá de la detección posterior al ataque. Se necesita desmantelar activamente la infraestructura que los adversarios como Glassworm dependen.

Pasos clave para la defensa:

  • Higiene de Dependencias: Implementar escáneres automatizados para identificar paquetes maliciosos o versiones vulnerables en repositorios (npm, PyPI).
  • Validación de Código: Integrar análisis estático de código (SAST) y análisis de seguridad de dependencias (SCA) en los pipelines de CI/CD.
  • Monitoreo de Actividad: Revisar los registros de red y los logs de endpoint en busca de conexiones a direcciones IP o dominios sospechosos.
  • Parches Inmediatos: Asegurar que todas las herramientas y bibliotecas utilizadas por los desarrolladores estén actualizadas con los parches más recientes.

Indicadores de Compromiso (IoCs)

Los indicadores se publican defanged para evitar clics accidentales.

Direcciones IP (C2)

  • 164.92.88[.]210

Reglas YARA para detección
Se pueden utilizar las siguientes reglas para confirmar infecciones en hosts identificados:

rule CrowdStrike_GlasswormRat_01 : glassworm glasswormrat 
{
    meta:
        copyright = "(c) 2026 CrowdStrike Inc."
        description = "Characteristic strings in Glassworm's RAT script"
        last_modified = "2026-03-23"
        malware_family = "GlasswormRAT"
    strings:
        $download = "DownloadManager" ascii
        $socks = "start_socks" ascii
        $nodejs = "https://nodejs.org/download/release" ascii
        $dht = "bootstrap" ascii
    condition:
        all of them
}
rule CrowdStrike_GlasswormDownloader_01 : glassworm 
{
    meta:
        copyright = "(c) 2026 CrowdStrike Inc."
        description = "Characteristic strings in the obfuscated python installer Glassworm variant"
        last_modified = "2026-03-13"
        malware_family = "Glassworm"
    strings:
        $zlib = "__import__('zlib')" ascii
        $decomp = "decompress(" ascii
        $lambda = "lambda" ascii
        $exec = /exec(compile(.{5,20}, '<>', 'exec'))/
    condition:
        all of them and filesize < 10KB
}

Este tipo de ataque de la cadena de suministro busca el máximo alcance con el mínimo esfuerzo y sigilo. La cadena de suministro de software sigue siendo una de las superficies de ataque más importantes en la computación moderna. Los adversarios están transformando las dependencias de una organización en mecanismos de entrega y multiplicadores de fuerza armados. Mientras los entornos de desarrolladores y los pipelines de compilación permanezcan sin protección, toda organización que consuma software hereda el riesgo de todos los que lo producen. Glassworm demuestra que los atacantes conocen este riesgo y están invirtiendo en infraestructura resiliente para mantener el acceso persistente a los ecosistemas de desarrolladores. La comunidad de seguridad debe responder con determinación, combinando inteligencia de amenazas con operaciones de disrupción coordinadas como esta.

Fuente original [EN]

Cibersecurity.io