TeamPCP piratea acciones de Checkmarx GitHub utilizando credenciales de CI robadas – CYBERDEFENSA.MX

Otros dos flujos de trabajo de GitHub Actions se han convertido en los últimos en verse comprometidos por malware de robo de credenciales por parte de un actor de amenazas conocido como TeamPCP, la operación cibercriminal nativa de la nube que también está detrás del ataque a la cadena de suministro de Trivy.

Los flujos de trabajo, ambos mantenidos por la empresa de seguridad de la cadena de suministro Checkmarx, se enumeran a continuación:

La empresa de seguridad en la nube Sysdig dijo que observó un ladrón de credenciales idéntico al utilizado en las operaciones de TeamPCP dirigidas al escáner de vulnerabilidad Trivy de Aqua Security y sus acciones GitHub asociadas, aproximadamente cuatro días después de la violación del 19 de marzo de 2026. El compromiso de la cadena de suministro de Try se rastrea bajo el identificador CVE. CVE-2026-33634 (Puntuación CVSS: 9,4).

«Esto sugiere que las credenciales robadas del compromiso Trivy se utilizaron para envenenar acciones adicionales en los repositorios afectados», Sysdig dicho.

El ladrón, conocido como «ladrón de nubes de TeamPCP», está diseñado para robar credenciales y secretos relacionados con claves SSH, Git, Amazon Web Services (AWS), Google Cloud, Microsoft Azure, Kubernetes, Docker, archivos .env, bases de datos y VPN, junto con configuraciones de CI/CD, datos de billeteras de criptomonedas y URL de webhook de Slack y Discord.

Ciberseguridad

Como en el caso de Trivy, se ha descubierto que los actores de amenazas fuerzan la inserción de etiquetas en confirmaciones maliciosas que contienen la carga útil del ladrón («setup.sh»). Los datos robados se exfiltran al dominio «checkmarx[.]zona» (dirección IP: 83.142.209[.]11:443) en forma de archivo cifrado («tpcp.tar.gz»).

La nueva versión crea un repositorio «docs-tpcp» utilizando el GITHUB_TOKEN de la víctima para preparar los datos robados como método de respaldo si falla la filtración al servidor. En el incidente de Trivy, los actores de amenazas utilizaron en su lugar el nombre del repositorio «tpcp-docs».

«El uso de dominios typosquat específicos del proveedor para cada acción envenenada es una técnica de engaño deliberada», dijo Sysdig. «Un analista que revise los registros de CI/CD vería que el tráfico se dirige a lo que parece ser el dominio del propio proveedor de la acción, lo que reduce la probabilidad de detección manual».

El hecho de que la función principal del ladrón sea recolectar credenciales de la memoria del corredor de CI permite a los operadores extraer tokens de acceso personal (PAT) de GitHub y otros secretos cuando se ejecuta una acción Trivy comprometida en un flujo de trabajo. Para empeorar las cosas, si esos tokens tienen acceso de escritura a repositorios que también usan acciones Checkmarx, el atacante puede utilizarlos como arma para enviar código malicioso.

Esto, a su vez, abre la puerta a un compromiso en cascada en la cadena de suministro, donde una acción envenenada captura secretos que se utilizan para facilitar el envenenamiento de otras acciones.

«La carga útil, el esquema de cifrado y la convención de nomenclatura tpcp.tar.gz idénticos confirman que se trata del mismo actor de amenazas que amplía su alcance más allá del compromiso inicial de Trivy», señaló Sysdig. «La revisión del código y el escaneo de dependencias fallaron aquí porque el código malicioso se inyectó en una acción confiable en la fuente».

Según Wiz, el ataque parece haberse llevado a cabo mediante el compromiso de la cuenta de servicio «cx-plugins-releases», y los atacantes también publicar versiones troyanizadas del «resultados-ast» (versión 2.53.0) y «asistencia-cx-dev» (versión 1.7.0) Abra las extensiones VSX. Las versiones de VS Code Marketplace no se ven afectadas.

Una vez activada la extensión, la carga maliciosa comprueba si la víctima tiene credenciales para al menos un proveedor de servicios en la nube, como GitHub, AWS, Google Cloud y Microsoft Azure. Si se detecta alguna credencial, procede a buscar una carga útil de la siguiente etapa del mismo dominio («checkmarx[.]zona»).

«La carga útil intenta la ejecución a través de npx, bunx, pnpx o Yarn dlx. Esto cubre los principales administradores de paquetes de JavaScript», afirman los investigadores de Wiz, Rami McCarthy, James Haughom y Benjamin Read. dicho. «El paquete recuperado contiene un completo ladrón de credenciales. Las credenciales recolectadas luego se cifran, utilizando las claves como en otras partes de esta campaña, y se exfiltran a ‘checkmarx[.]zona/vsx’ como tpcp.tar.gz.»

«En sistemas que no son CI, el malware instala la persistencia a través de un servicio de usuario systemd. El script de persistencia sondea https://checkmarx[.]zona/raw cada 50 minutos para cargas útiles adicionales, con un interruptor de apagado que cancela si la respuesta contiene «youtube». Actualmente, el enlace redirige a The Show Must Go On de Queen».

Ciberseguridad

Para mitigar la amenaza, se recomienda a los usuarios que realicen las siguientes acciones con efecto inmediato:

  • Rote todos los secretos, tokens y credenciales de la nube a los que tuvieron acceso los ejecutores de CI durante la ventana afectada.
  • Auditar la ejecución del flujo de trabajo de GitHub Actions para cualquier referencia a tpcp.tar.gz, scan.aquasecurity[.]org o checkmarx[.]zona en registros de corredor.
  • Busque en la organización de GitHub repositorios llamados «tpcp-docs» o «docs-tpcp», que indican una exfiltración exitosa a través del mecanismo de reserva.
  • Fije acciones de GitHub para confirmar SHA por completo en lugar de etiquetas de versión, ya que las etiquetas se pueden forzar.
  • Supervise las conexiones de red salientes desde los ejecutores de CI a dominios sospechosos.
  • Restrinja el servicio de metadatos de instancia (IMDS) de los contenedores del ejecutor de CI mediante IMDSv2.

En los días posteriores a la infracción inicial, los actores de TeamPCP enviaron imágenes maliciosas de Docker de Trivy que contenían el mismo ladrón y secuestraron la organización GitHub «aquasec-com» de la compañía para manipular docenas de repositorios internos.

También se les ha observado apuntando a clústeres de Kubernetes con un script de shell malicioso que borra todas las máquinas cuando detecta sistemas que coinciden con la zona horaria y la ubicación iraní, lo que destaca una nueva escalada del modus operandi del grupo.

Acciones de GitHub de Trivy Security Scanner violadas, 75 etiquetas secuestradas para robar secretos de CI/CD – CYBERDEFENSA.MX

Trivy, un popular escáner de vulnerabilidades de código abierto mantenido por Aqua Security, se vio comprometido por segunda vez en el lapso de un mes para entregar malware que robaba secretos confidenciales de CI/CD.

El último incidente afectó a GitHub Actions «aquasecurity/trivy-acción» y «aquasecurity/configuración-trivy«, que se utilizan para escanear imágenes del contenedor Docker en busca de vulnerabilidades y configurar el flujo de trabajo de GitHub Actions con una versión específica del escáner, respectivamente.

«Identificamos que un atacante forzó 75 de 76 etiquetas de versión en el repositorio aquasecurity/trivy-action, la acción oficial de GitHub para ejecutar análisis de vulnerabilidades de Trivy en canales de CI/CD», dijo el investigador de seguridad de Socket, Philipp Burckhardt. dicho. «Estas etiquetas se modificaron para servir una carga maliciosa, convirtiendo efectivamente las referencias de versiones confiables en un mecanismo de distribución para un ladrón de información».

La carga útil se ejecuta dentro de los ejecutores de GitHub Actions y tiene como objetivo extraer valiosos secretos de desarrollador de entornos CI/CD, como claves SSH, credenciales para proveedores de servicios en la nube, bases de datos, Git, configuraciones de Docker, tokens de Kubernetes y billeteras de criptomonedas.

Ciberseguridad

El desarrollo Marca el segundo incidente en la cadena de suministro que involucra a Trivy. Hacia finales de febrero y principios de marzo de 2026, un robot autónomo llamado hackerbot-claw aprovechó un flujo de trabajo «pull_request_target» para robar un token de acceso personal (PAT), que luego se utilizó como arma para tomar el control del repositorio de GitHub, eliminar varias versiones de lanzamiento y enviar dos versiones maliciosas de su extensión Visual Studio Code (VS Code) a Open VSX.

La primera señal del compromiso fue marcado por el investigador de seguridad Paul McCarty después de que se publicara una nueva versión comprometida (versión 0.69.4) en el repositorio de GitHub «aquasecurity/trivy». Desde entonces, la versión fraudulenta ha sido eliminada. De acuerdo a Fenómenola versión 0.69.4 inicia tanto el servicio legítimo Trivy como el código malicioso responsable de una serie de tareas:

  • Realice el robo de datos escaneando el sistema en busca de variables ambientales y credenciales, cifrando los datos y extrayéndolos a través de una solicitud HTTP POST a scan.aquasecurtiy[.]org.
  • Configurar la persistencia usando un servicio del sistema después de confirmar que se está ejecutando en una máquina de desarrollador. El servicio systemd está configurado para ejecutar un script Python («sysmon.py») que sondea un servidor externo para recuperar la carga útil y ejecutarla.

En un comunicado, Itay Shakury, vicepresidente de código abierto de Aqua Security, dicho los atacantes abusaron de una credencial comprometida para publicar versiones maliciosas de trivy, trivy-action y setup-trivy. En el caso de «aquasecurity/trivy-action», el adversario impulsó 75 etiquetas de versión para señalar las confirmaciones maliciosas que contienen la carga útil del robo de información de Python sin crear una nueva versión ni enviar a una rama, como es la práctica estándar. Se forzaron siete etiquetas de «aquasecurity/setup-trivy» de la misma manera.

«Entonces, en este caso, el atacante no necesitaba explotar Git», dijo Burckhardt a The Hacker News. «Tenían credenciales válidas con privilegios suficientes para enviar código y reescribir etiquetas, que es lo que permitió el envenenamiento de etiquetas que observamos. Lo que no está claro es la credencial exacta utilizada en este paso específico (por ejemplo, un PAT de mantenimiento frente a un token de automatización), pero ahora se entiende que la causa principal es el compromiso de credenciales transferido del incidente anterior».

El proveedor de seguridad también reconoció que el último ataque se debió a una contención incompleta del incidente del hackerbot-claw. «Rotamos secretos y tokens, pero el proceso no fue atómico y es posible que los atacantes hayan estado al tanto de los tokens actualizados», dijo Shakury. «Ahora estamos adoptando un enfoque más restrictivo y bloqueando todas las acciones automatizadas y cualquier token para eliminar completamente el problema».

El ladrón opera en tres etapas: recolecta variables de entorno de la memoria del proceso del ejecutor y del sistema de archivos, cifra los datos y los extrae al servidor controlado por el atacante («scan.aquasecurtiy[.]organización»).

Si el intento de exfiltración falla, se abusa de la propia cuenta de GitHub de la víctima para almacenar los datos robados en un repositorio público llamado «tpcp-docs» mediante el uso del INPUT_GITHUB_PAT capturado, una variable de entorno utilizada en GitHub Actions para pasar una PAT de GitHub para la autenticación con la API de GitHub.

Actualmente no se sabe quién está detrás del ataque, aunque hay indicios de que el actor de amenazas conocido como TeamPCP puede estar detrás. Esta evaluación se basa en el hecho de que el recolector de credenciales se autoidentifica como «ladrón de nubes de TeamPCP» en el código fuente. También conocido como DeadCatx3, PCPcat, PersyPCP, ShellForce y CipherForce, el grupo es conocido por actuar como una plataforma de cibercrimen nativa de la nube diseñada para violar la infraestructura moderna de la nube para facilitar el robo de datos y la extorsión.

Ciberseguridad

«Los objetivos de credenciales en esta carga útil son consistentes con el perfil más amplio de robo y monetización nativo de la nube del grupo», dijo Socket. «El fuerte énfasis en los pares de claves del validador de Solana y las billeteras de criptomonedas está menos documentado como un sello distintivo de TeamPCP, aunque se alinea con las motivaciones financieras conocidas del grupo. El autoetiquetado podría ser una bandera falsa, pero la superposición técnica con las herramientas anteriores de TeamPCP hace que la atribución genuina sea plausible».

Se recomienda a los usuarios que se aseguren de utilizar las últimas versiones seguras:

«Si sospecha que estaba ejecutando una versión comprometida, trate todos los secretos del canal como comprometidos y rótelos inmediatamente», dijo Shakury. Los pasos de mitigación adicionales incluyen bloquear el dominio de exfiltración y la dirección IP asociada (45.148.10[.]212) a nivel de red, y verificar las cuentas de GitHub en busca de repositorios llamados «tpcp-docs», lo que puede indicar una exfiltración exitosa a través del mecanismo de reserva.

«Fije las acciones de GitHub a hashes SHA completos, no a etiquetas de versión», dijo el investigador de Wiz, Rami McCarthy. «Las etiquetas de versión se pueden mover para señalar confirmaciones maliciosas, como se demuestra en este ataque».

(Esta es una historia en desarrollo. Vuelva a consultarla para obtener más detalles).