Campaña de Esteganografía en WAV

Compromiso de la Cadena de Suministro de TeamPCP en telnyx (2026)

Compromiso de la Cadena de Suministro de TeamPCP en telnyx (2026) es el nombre que recibe una campaña de malware dirigida a la cadena de suministro de software, en la que el grupo de amenazas TeamPCP comprometió el paquete Python telnyx en el repositorio PyPI. La campaña es significativa por su sofisticada técnica de evasión, que utilizó esteganografía en archivos de audio WAV para ocultar y desplegar una herramienta de robo de credenciales, así como por su estrategia de ataque diferenciada según el sistema operativo (Windows frente a Linux/macOS). Este incidente forma parte de una campaña más amplia del mismo actor, que ha comprometido paquetes de alto perfil como litellm, trivy y kics, con el objetivo de robar secretos de entornos de desarrollo y CI/CD para facilitar operaciones posteriores de extorsión y ransomware.

Nombres Alternativos / Aliases

  • Ataque a la Cadena de Suministro de telnyx (Descripción técnica)
  • Compromiso de PyPI por TeamPCP (Por el actor y repositorio)
  • Campaña de Esteganografía en WAV (Por la técnica de evasión)

Fecha de Detección / Actividad

  • Fecha del Incidente: 27 de marzo de 2026.
  • Publicación de Versiones Maliciosas: 27 de marzo de 2026, entre las 03:51 UTC y las 10:13 UTC.
  • Detección y Cuarentena: 27 de marzo de 2026 (detección por múltiples firmas de seguridad y cuarentena del proyecto en PyPI).
  • Divulgación Pública: 27 de marzo de 2026 (reportes simultáneos de Aikido, Endor Labs, JFrog, Ossprey Security, Socket, entre otros).
  • Estado: Contenido. Las versiones maliciosas han sido eliminadas de PyPI. Se recomienda a los usuarios rotar secretos y hacer downgrade a la versión limpia.

Actor de Amenaza (Atribución)

  • Nombre del Grupo: TeamPCP.
  • Alias del Actor: El grupo es conocido por su campaña previa contra litellm y otras herramientas.
  • Tipo de Actor: Grupo de cibercriminales con motivación financiera, especializado en ataques a la cadena de suministro.
  • Motivación: Robo de credenciales (claves API, tokens de CI/CD, secretos en la nube) para uso propio o para vender el acceso a otros grupos, como LAPSUS$ y el grupo de ransomware Vect.
  • Sofisticación: Alta. El grupo demuestra un conocimiento profundo de los ecosistemas de desarrollo, las prácticas de gestión de secretos y las técnicas de evasión de defensas, utilizando métodos como esteganografía y ataques de movimiento lateral en Kubernetes.

Resumen Ejecutivo

El incidente comenzó cuando TeamPCP obtuvo el token de publicación (PYPI_TOKEN) para el paquete telnyx. Según los investigadores, el vector más probable fue una operación previa de robo de credenciales llevada a cabo por el mismo grupo a través del compromiso del paquete litellm. Con este token, publicaron dos versiones maliciosas del paquete telnyx (4.87.1 y 4.87.2) en PyPI.

El código malicioso, inyectado en el archivo telnyx/_client.py, se activaba al importar el paquete. Una vez ejecutado, el malware establecía comunicación con un servidor de comando y control (C2) para descargar un archivo WAV. La técnica de ataque variaba según el sistema operativo:

  • En Windows: Descargaba hangup.wav, extraía un ejecutable del audio y lo guardaba en la carpeta de inicio como msbuild.exe, asegurando persistencia.
  • En Linux/macOS: Descargaba ringtone.wav, extraía un script recolector de datos y lo ejecutaba en un directorio temporal que se autodestruía tras la exfiltración, dejando pocos rastros.

En todos los casos, el payload final era un recolector de credenciales que robaba datos sensibles (variables de entorno, archivos .env, historiales de shell, tokens de Kubernetes) y los exfiltraba a la dirección IP 83.142.209[.]203:8080. La campaña destaca por su uso de esteganografía en audio para evadir la detección por inspección de red y EDR, y por su estrategia de "ataque y huida" en Linux/macOS frente a la "persistencia" en Windows.

Vectores de Ataque

  • Compromiso de la Cadena de Suministro: El ataque no se basó en un typo-squatting, sino en el compromiso directo de un paquete legítimo y ampliamente utilizado (telnyx). Los atacantes utilizaron credenciales de publicación robadas para subir versiones maliciosas a PyPI.
  • Credenciales Robadas (T1078): El acceso inicial al proyecto telnyx en PyPI se logró mediante el uso de un token de publicación legítimo (PYPI_TOKEN) que TeamPCP habría obtenido en un ataque previo a la cadena de suministro contra el paquete litellm.
  • Esteganografía y Ocultamiento: El uso de archivos .WAV para incrustar y distribuir los payloads maliciosos permitió evadir la detección por parte de herramientas de seguridad que analizan el tráfico de red o los archivos descargados en busca de patrones conocidos.

Técnicas, Tácticas y Procedimientos (TTPs)

Táctica (MITRE ATT&CK) Técnica Descripción / Implementación
Acceso Inicial (TA0001) Valid Accounts (T1078) Uso del token de PyPI (PYPI_TOKEN) legítimo pero robado de los mantenedores de telnyx para publicar las versiones maliciosas.
Ejecución (TA0002) Command and Scripting Interpreter (T1059) El código malicioso en _client.py se ejecuta al importar el paquete. Descarga y ejecuta scripts adicionales desde el C2.
Persistencia (TA0003) Boot or Logon Autostart Execution (T1547) En Windows: El ejecutable extraído (msbuild.exe) se coloca en la carpeta de inicio para ejecutarse en cada inicio de sesión.
Evasión de Defensas (TA0005) Obfuscated Files or Information (T1027) Uso de esteganografía en archivos WAV para ocultar los payloads. El tráfico de red parece transferencia de audio normal.
Evasión de Defensas (TA0005) Indicator Removal on Host (T1070) En Linux/macOS: Toda la operación (descarga, extracción, ejecución) se realiza en un directorio temporal que se autodestruye al finalizar, dejando un mínimo de artefactos forenses.
Descubrimiento (TA0007) Cloud Service Discovery (T1526) El recolector de datos busca tokens de servicio de Kubernetes para mapear y potencialmente moverse lateralmente por el clúster.
Colección (TA0009) Data from Information Repositories (T1213) El harvester recolecta una amplia gama de datos sensibles: variables de entorno, archivos .env, historiales de shell, claves SSH, credenciales de nube y tokens de CI/CD.
Exfiltración (TA0010) Exfiltration Over C2 Channel (T1041) Los datos recolectados se comprimen en un archivo tpcp.tar.gz y se exfiltran mediante una petición HTTP POST al servidor C2 en el puerto 8080.
Movimiento Lateral (TA0008) Lateral Tool Transfer (T1570) En Kubernetes: El malware incluye un componente para moverse lateralmente, abusando de los tokens de cuenta de servicio para desplegar pods privilegiados en todos los nodos y establecer persistencia.

Flujo de Ataque (Kill Chain)

  1. Reconocimiento e Inteligencia: TeamPCP compromete el paquete litellm y despliega un recolector de datos que roba secretos, incluyendo el PYPI_TOKEN de telnyx, de los entornos de los desarrolladores que lo utilizan.
  2. Compromiso Inicial (Entrega): Utilizando el token robado, los atacantes se autentican en PyPI como publicadores legítimos de telnyx.
  3. Despliegue: Publican las versiones maliciosas 4.87.1 y 4.87.2 del paquete telnyx en PyPI.
  4. Ejecución del Payload: Los desarrolladores y sistemas de CI/CD que instalan o actualizan a estas versiones importan el paquete, activando el código malicioso incrustado.
  5. Comunicación con C2: El malware se conecta al servidor C2 (83.142.209[.]203) para descargar el archivo WAV apropiado para su sistema operativo.
  6. Desencriptado y Ejecución del Payload Final: El archivo WAV se decodifica (XOR) para extraer el harvester de credenciales o el ejecutable persistente.
  7. Acciones sobre el Objetivo (Robo de Datos): El harvester recolecta todas las credenciales y secretos disponibles en el sistema comprometido.
  8. Acciones sobre el Objetivo (Exfiltración): Los datos robados se empaquetan y se exfiltran de vuelta al servidor de los atacantes.
  9. Post-Explotación: Las credenciales robadas se utilizan para comprometer más sistemas, vender el acceso a otros grupos (como Vect) para operaciones de ransomware, o para repetir el ciclo comprometiendo otros paquetes.

Infraestructura Utilizada

Tipo Ejemplos / Características Propósito
Repositorio de Paquetes Python Package Index (PyPI) Plataforma desde la cual se distribuyeron las versiones maliciosas de telnyx.
Servidores de C2 83.142.209[.]203 (puerto 8080) Servidor utilizado para alojar los archivos WAV maliciosos (hangup.wav, ringtone.wav) y para recibir los datos exfiltrados (tpcp.tar.gz).
Herramientas del Atacante Esteganografía en WAV, Scripts de recolector de datos, Componentes de movimiento lateral en Kubernetes. Conjunto de técnicas y scripts personalizados para evadir la detección, robar datos y propagarse.

Objetivos y Sectores Atacados

  • Objetivo Principal: Desarrolladores, equipos de DevOps y sistemas de integración continua/despliegue continuo (CI/CD) que utilizan el paquete Python telnyx.
  • Sectores Afectados Indirectamente: Cualquier organización que utilice la biblioteca telnyx para interactuar con los servicios de Telnyx. Esto abarca un amplio espectro de sectores, incluyendo tecnología, telecomunicaciones, y empresas SaaS, cuyos entornos de desarrollo y secretos de infraestructura podrían haber sido comprometidos.
  • Sistemas Afectados: Entornos de desarrollo locales, servidores de CI/CD (como GitHub Actions, GitLab CI), y clústeres de Kubernetes que utilizan el paquete comprometido.

Impacto y Riesgo

  • Nivel de Riesgo: Crítico para cualquier organización que tuviera las versiones comprometidas en sus entornos de desarrollo o CI/CD.
  • Impacto en la Confidencialidad: Exposición masiva de secretos de infraestructura, incluyendo claves de API de nube (AWS, GCP, Azure), tokens de registro de contenedores, credenciales de bases de datos y claves SSH. Esto constituye una violación de la confidencialidad de la infraestructura subyacente.
  • Impacto en la Integridad: La filtración de tokens de CI/CD podría permitir a los atacantes inyectar código malicioso en los procesos de compilación y despliegue de las víctimas, comprometiendo la integridad del software que producen.
  • Impacto Financiero: Riesgo de multas regulatorias por pérdida de datos, costos de remediación (rotación masiva de secretos), y potenciales operaciones de ransomware si el acceso robado es vendido a grupos como Vect.
  • Riesgo para las Víctimas: Pérdida total de control sobre su infraestructura en la nube, lo que puede derivar en toma de cuentas, despliegue de criptomineros, o un ransomware generalizado.

Recomendaciones de Mitigación

Recomendaciones Técnicas (Mitigación)

Para Desarrolladores y Organizaciones:

  1. Auditoría Inmediata: Auditar todos los requirements.txt, poetry.lock y archivos de configuración para buscar las versiones telnyx==4.87.1 o telnyx==4.87.2. Si se encuentran, hacer downgrade inmediato a la versión 4.87.0 o superior limpia.
  2. Asumir el Compromiso (Rotación de Secretos): Asumir que todos los secretos (variables de entorno, claves API, tokens de CI/CD, claves SSH) que estaban presentes en el sistema durante el periodo de exposición están comprometidos. Rotar todos ellos inmediatamente.
  3. Búsqueda de Artefactos:
    • Windows: Buscar un archivo llamado msbuild.exe en la carpeta de inicio del sistema (C:\Users\[Usuario]\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup). Si existe, eliminarlo y analizar el sistema.
    • Linux/macOS: Revisar logs y procesos en busca de ejecuciones anómalas que involucren archivos WAV o conexiones a la IP 83.142.209[.]203.
  4. Bloqueo de Red: Bloquear todo el tráfico hacia y desde la IP de C2 83.142.209[.]203 en todos los firewalls de red y locales.

Recomendaciones Preventivas (Basadas en MITRE ATT&CK)

  • Gestión de Secretos (M1026): Utilizar gestores de secretos (vaults) para almacenar tokens de publicación (como PYPI_TOKEN) y credenciales de CI/CD. Nunca hardcodearlos ni dejarlos en variables de entorno de sistemas compartidos.
  • Revisión de Paquetes de Código Abierto (M1038): Implementar políticas de seguridad que incluyan el escaneo automático de dependencias de código abierto (Software Composition Analysis - SCA) para detectar versiones maliciosas o vulnerables antes de su instalación.
  • Segmentación de Entornos (M1030): Asegurar que los entornos de desarrollo y CI/CD estén estrictamente segmentados de los entornos de producción. Las credenciales robadas en un entorno de desarrollo no deberían permitir el acceso a producción.
  • Monitoreo de Confianza Cero: No confiar en el tráfico de red "normal" como la descarga de archivos WAV. Implementar soluciones de monitoreo que detecten anomalías en las conexiones salientes, independientemente del tipo de archivo transferido.

Herramientas de Detección

  • Software Composition Analysis (SCA): Herramientas como Snyk, JFrog Xray, o Socket pueden detectar y alertar sobre la presencia de versiones maliciosas conocidas en las dependencias del proyecto.
  • Endpoint Detection and Response (EDR): Soluciones EDR pueden detectar la ejecución de procesos anómalos como la creación de msbuild.exe en la carpeta de inicio o la ejecución de scripts de shell con patrones de conexión a C2 conocidos.
  • Network Detection and Response (NDR): Herramientas de monitoreo de red pueden detectar conexiones a la IP 83.142.209[.]203 o patrones de tráfico de exfiltración de datos inusuales.

Indicadores de Compromiso (IOCs)

Artefactos en el Sistema de la Víctima

  • Paquetes: telnyx==4.87.1, telnyx==4.87.2.
  • Archivos (Windows): msbuild.exe en la carpeta de inicio del usuario.
  • Archivos (Linux/macOS): Directorios temporales con nombres aleatorios que contienen scripts llamados update.sh u otros archivos de script de corta duración. Presencia de archivos *.wav (hangup.wav, ringtone.wav) descargados recientemente.
  • Archivo de Exfiltración: tpcp.tar.gz.

Infraestructura de C2 y Extorsión

  • Direcciones IP: 83.142.209[.]203.
  • Puertos: 8080.
  • URLs/Endpoints: hxxp://83.142.209[.]203:8080/hangup.wav, hxxp://83.142.209[.]203:8080/ringtone.wav.

Referencias y Fuentes

  • The Hacker News. (2026, Marzo 27). TeamPCP Pushes Malicious Telnyx Versions to PyPI, Hides Stealer in WAV Files. (Reporte de Ravie Lakshmanan).
  • Socket Security. (2026, Marzo 27). Analysis of the malicious telnyx package versions.
  • Endor Labs. (2026, Marzo 27). TeamPCP's telnyx Attack: A Post-Litellm Supply Chain Hit.
  • Ossprey Security. (2026, Marzo 27). Telnyx Package Compromise: Audio Steganography in PyPI.
  • Aikido Security. (2026, Marzo 27). Malicious versions of telnyx found on PyPI.
  • Snyk. (2026, Marzo 27). Supply Chain Attack Targets telnyx Following litellm Compromise.

Historial de Revisiones

Fecha Versión Autor Cambios Realizados
2026-03-27 1.0 Análisis Colectivo (Sociedad de Seguridad) Creación inicial de la entrada basada en reportes públicos sobre el compromiso del paquete telnyx por TeamPCP.

Etiquetas / Categorías

teampcp telnyx pypi cadena-de-suministro esteganografia wav robo-credenciales ci/cd kubernetes seguridad-en-desarrollo malware t1078 t1027 t1547 t1041 ransomware lapsus$ vect python sca