Inicio Noticias Paquete PyPI LiteLLM popular infectado para robar credenciales y tokens de autenticación

Paquete PyPI LiteLLM popular infectado para robar credenciales y tokens de autenticación

8
0

El grupo de piratería TeamPCP continúa su rampa de ataque a la cadena de suministro, comprometiendo ahora el popular paquete de Python «LiteLLM» en PyPI y afirmando haber robado datos de cientos de miles de dispositivos durante el ataque.

LiteLLM es una biblioteca de Python de código abierto que sirve como puerta de enlace a múltiples proveedores de modelos de lenguaje grandes (LLM) a través de una sola API. El paquete es muy popular, con más de 3.4 millones de descargas al día y más de 95 millones en el último mes.

Según la investigación de Endor Labs, los actores de amenazas comprometieron el proyecto y publicaron versiones maliciosas de LiteLLM 1.82.7 y 1.82.8 en PyPI hoy que despliegan un infostealer que recopila una amplia gama de datos sensibles.

El ataque ha sido reclamado por TeamPCP, un grupo de piratería que estuvo detrás de la reciente violación de alto perfil del escáner de vulnerabilidades Trivy de Aqua Security. Se cree que esta violación llevó a compromisos en cascada que afectaron las imágenes de Docker de Aqua Security, el proyecto KICS de Checkmarx y ahora LiteLLM.

El grupo también ha sido encontrado atacando clusters de Kubernetes con un script malicioso que borra todas las máquinas cuando detecta sistemas configurados para Irán. De lo contrario, instala una nueva puerta trasera CanisterWorm en dispositivos en otras regiones.

Fuentes han informado a BleepingComputer que el número de filtraciones de datos es aproximadamente de 500,000, siendo muchos duplicados. VX-Underground informa un número similar de ‘dispositivos infectados’.

Sin embargo, BleepingComputer no ha podido confirmar esos números de manera independiente.

Ataque a la cadena de suministro de LiteLLM

Endor Labs informa que los actores de amenazas lanzaron dos versiones maliciosas de LiteLLM hoy, cada una conteniendo una carga útil oculta que se ejecuta cuando el paquete es importado.

El código malicioso fue inyectado en ‘litellm/proxy/proxy_server.py’ como una carga útil codificada en base64, que se descodifica y se ejecuta cada vez que se importa el módulo.

La versión 1.82.8 introduce una característica más agresiva que instala un archivo ‘.pth’ llamado ‘litellm_init.pth’ en el entorno de Python. Debido a que Python procesa automáticamente todos los archivos ‘.pth’ cuando se inicia el intérprete, el código malicioso se ejecutaría cada vez que se ejecute Python, incluso si no se utiliza específicamente LiteLLM.

Una vez ejecutada, la carga útil despliega finalmente una variante del «TeamPCP Cloud Stealer» del hacker y un script de persistencia. El análisis de BleepingComputer muestra que la carga útil contiene prácticamente la misma lógica de robo de credenciales utilizada en el ataque a la cadena de suministro de Trivy.

«Una vez desencadenada, la carga útil ejecuta un ataque de tres etapas: recopila credenciales (claves SSH, tokens de nube, secretos de Kubernetes, billeteras de criptomonedas y archivos .env), intenta movimiento lateral en clusters de Kubernetes desplegando pods privilegiados en cada nodo, e instala una puerta trasera persistente de systemd que busca binarios adicionales», explica Endor Labs.

«Los datos exfiltrados están encriptados y se envían a un dominio controlado por el atacante.»

El robo recoge una amplia gama de credenciales y secretos de autenticación, incluyendo:

– Reconocimiento del sistema ejecutando los comandos de hostname, pwd, whoami, uname -a, ip addr y printenv. – Claves SSH y archivos de configuración – Credenciales de nube para AWS, GCP y Azure – Tokens de cuenta de servicio de Kubernetes y secretos del cluster – Archivos de entorno como variantes de .env – Credenciales de base de datos y archivos de configuración – Claves privadas de TLS y secretos de CI/CD – Datos de billetera de criptomonedas

La carga útil del robo de nube también incluye un script adicional codificado en base64 que se instala como un servicio de usuario de systemd disfrazado de «Servicio de Telemetría del Sistema», que contacta periódicamente un servidor remoto en checkmarx[.]zone para descargar y ejecutar cargas útiles adicionales.

Los datos robados se agrupan en un archivo encriptado llamado tpcp.tar.gz y se envían a la infraestructura controlada por el atacante en models.litellm[.]cloud, donde los actores de amenazas pueden acceder a ellos.

¡Rote las credenciales expuestas!

Ambas versiones maliciosas de LiteLLM han sido eliminadas de PyPI, con la versión 1.82.6 siendo la última versión limpia.

Se recomienda encarecidamente a las organizaciones que utilizan LiteLLM que de inmediato:

– Verifiquen las instalaciones de las versiones 1.82.7 o 1.82.8 – Rote inmediatamente todas las credenciales, tokens y secretos utilizados en o encontrados dentro del código en los dispositivos afectados. – Busquen artefactos de persistencia como ‘~/.config/sysmon/sysmon.py’ y servicios de systemd relacionados. – Inspeccionen los sistemas en busca de archivos sospechosos como ‘/tmp/pglog’ y ‘/tmp/.pg_state’. – Revisen los clusters de Kubernetes en busca de pods no autorizados en el espacio de nombres ‘kube-system’. – Monitoreen el tráfico saliente a dominios de atacantes conocidos.

Si se sospecha de un compromiso, todas las credenciales en los sistemas afectados deben tratarse como expuestas y rotarse de inmediato.

BleepingComputer ha cubierto repetidamente violaciones que surgieron de empresas que no rotaron las credenciales, secretos y tokens de autenticación encontrados en violaciones anteriores.

Tanto investigadores como actores de amenazas han dicho a BleepingComputer que si bien rotar secretos es difícil, es una de las mejores maneras de prevenir ataques en cascada a la cadena de suministro.