TeamPCP explota durabletask en campaña de ataque a GitHub y PyPI

Foto del autor

CyberSecureFox Editorial Team

GitHub está investigando un acceso no autorizado a sus repositorios internos; al mismo tiempo, el grupo TeamPCP continúa una amplia campaña de ataques a la cadena de suministro: se ha comprometido el paquete oficial de Python durabletask de Microsoft (versiones 1.4.1, 1.4.2 y 1.4.3), que se descarga unas 417 000 veces al mes. El código malicioso se activa automáticamente al importar el paquete, sin ningún signo visible de compromiso. Cualquier máquina o pipeline de CI/CD en la que se haya instalado la versión infectada debe considerarse completamente comprometida.

Incidente con los repositorios internos de GitHub

Según informó GitHub, por el momento no hay indicios de impacto sobre los datos de clientes almacenados fuera de los repositorios internos de la plataforma, lo que incluye cuentas empresariales, organizaciones y repositorios de usuarios. La compañía declaró que está monitorizando su infraestructura en busca de actividad sospechosa adicional y prometió notificar a los clientes a través de sus canales establecidos de respuesta a incidentes en caso de detectarse consecuencias.

Cabe señalar que los detalles sobre la supuesta puesta a la venta del código fuente de GitHub se basan en capturas de pantalla publicadas por Dark Web Informer y no han sido verificados de forma independiente. Según dichas capturas, el grupo TeamPCP afirmó que no persigue fines de extorsión: los datos se venderán a un único comprador y luego se eliminarán, o bien se publicarán de forma gratuita. La autenticidad de estas afirmaciones y el alcance real de la filtración seguían sin confirmarse en el momento de la publicación.

Compromiso del paquete durabletask: análisis técnico

En paralelo al incidente de GitHub, la campaña de TeamPCP conocida como Mini Shai-Hulud continúa ampliándose. Según los investigadores de Wiz, los atacantes comprometieron una cuenta de GitHub durante un ataque anterior, extrajeron secretos de un repositorio accesible y obtuvieron un token de PyPI para publicar directamente versiones maliciosas del paquete durabletask, el cliente oficial de Python para el framework Durable Task de Microsoft.

La cadena de infección es la siguiente:

  1. El paquete malicioso contiene un dropper que, al importarse, descarga automáticamente la carga útil de segunda fase (rope.pyz) desde un servidor externo check.git-service[.]com.
  2. La carga útil es un infostealer plenamente funcional de 28 KB que solo opera en sistemas Linux.
  3. El stealer recopila credenciales de proveedores cloud, gestores de contraseñas y herramientas de desarrollo, y posteriormente las exfiltra a un dominio controlado por los atacantes.

Capacidades del infostealer

De acuerdo con el análisis de SafeDep, el malware apunta a una amplia gama de secretos:

  • Lectura de secretos de HashiCorp Vault KV
  • Desbloqueo y volcado de los almacenes de contraseñas de 1Password y Bitwarden
  • Acceso a claves SSH, credenciales de Docker y configuraciones de VPN
  • Recopilación del historial de la consola de comandos

Mecanismos de propagación

Tal y como indica Aikido Security, el malware tiene capacidad de autorreplicación en entornos cloud. En AWS se propaga a otras instancias EC2 a través de SSM, usando SendCommand con el documento AWS-RunShellScript para ejecutar la carga útil en hasta cinco instancias por perfil. En entornos Kubernetes la propagación se realiza mediante kubectl exec.

Según StepSecurity, el script de propagación descarga la carga útil desde el servidor C2 principal, utilizando el dominio de reserva t.m-kosche[.]com si el principal no está disponible.

Merece especial atención el mecanismo FIRESCALE, un método de reserva para descubrir la dirección del C2. El malware busca en mensajes públicos de commits en GitHub el patrón FIRESCALE <base64_url>.<base64_signature> y extrae a partir de él la dirección del servidor de mando y control. Esto permite a los atacantes cambiar dinámicamente la infraestructura sin actualizar el propio código malicioso.

Además, los investigadores de Aikido Security descubrieron una lógica destructiva: si se detectan configuraciones de sistema israelíes o iraníes, existe una probabilidad de 1 entre 6 de que el malware reproduzca una grabación de audio y ejecute el comando rm -rf /*, que destruye todos los datos del disco.

Contexto de la campaña de TeamPCP

En opinión de los investigadores de Wiz, la carga maliciosa en durabletask es una evolución del código utilizado en el compromiso del paquete guardrails-ai una semana antes. Dado que el gusano se propaga utilizando tokens robados de entornos infectados, se espera que aumente el número de paquetes afectados. La campaña Mini Shai-Hulud muestra un enfoque sistemático hacia los ataques a la cadena de suministro: el compromiso de una sola cuenta conduce a la toma escalonada de recursos relacionados.

Indicadores de compromiso

  • Dominio C2: check.git-service[.]com
  • Dominio C2 de reserva: t.m-kosche[.]com
  • Versiones del paquete afectadas: durabletask 1.4.1, 1.4.2, 1.4.3
  • Carga útil de segunda fase: rope.pyz

Recomendaciones de respuesta

  1. Compruebe de inmediato si las versiones durabletask 1.4.1–1.4.3 están instaladas en sus entornos y pipelines de CI/CD. Use pip show durabletask o revise los archivos de dependencias.
  2. Considere comprometida cualquier máquina en la que se haya importado la versión infectada. Tal y como señala Endor Labs, el código malicioso se ejecuta automáticamente al importarse, sin signos visibles.
  3. Rote todos los secretos: credenciales cloud, tokens de API, claves SSH, contraseñas de gestores de contraseñas, a los que haya tenido acceso el entorno comprometido.
  4. Revise sus entornos AWS en busca de llamadas no autorizadas a SSM SendCommand y procesos sospechosos en las instancias EC2.
  5. Bloquee los dominios check.git-service[.]com y t.m-kosche[.]com a nivel de DNS y de filtros de red.
  6. Implemente el pinning de versiones (version pinning) y la verificación de hashes de paquetes en sus pipelines de build para evitar la instalación automática de actualizaciones comprometidas.

Dado el carácter autorreplicante de Mini Shai-Hulud y el volumen de descargas de durabletask (417 000 al mes), la prioridad debe ser la comprobación inmediata de todos los entornos en busca de versiones infectadas del paquete, seguida de una rotación completa de secretos. Las organizaciones que utilizan GitHub deben seguir los canales oficiales de notificación de la plataforma para obtener actualizaciones sobre la investigación del incidente relacionado con los repositorios internos.


CyberSecureFox Editorial Team

El equipo editorial de CyberSecureFox cubre noticias de ciberseguridad, vulnerabilidades, campañas de malware, actividad de ransomware, AI security, cloud security y security advisories de proveedores. Los materiales se preparan a partir de official advisories, datos de CVE/NVD, alertas de CISA, publicaciones de proveedores e informes públicos de investigadores. Los artículos se revisan antes de su publicación y se actualizan cuando aparece nueva información.

Deja un comentario

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