
PyTorch ha identificado una dependencia maliciosa con el mismo nombre que la biblioteca ‘torchtriton’ del marco. Esto ha llevado a un compromiso exitoso a través del vector de ataque de confusión de dependencia.
Los administradores de PyTorch advierten a los usuarios que instalaron PyTorch-nightly desinstalen el marco y la dependencia falsificada ‘torchtriton’.
Desde la visión por computadora hasta el procesamiento del lenguaje natural, el marco de aprendizaje automático de código abierto PyTorch ha ganado prominencia tanto en el ámbito comercial como académico.
Entre el 25 y el 30 de diciembre de 2022, los usuarios que instalaron PyTorch-nightly deben asegurarse de que sus sistemas no se vean comprometidos, advirtió el equipo de PyTorch.
La advertencia sigue a una dependencia ‘torchtriton’ que apareció durante las vacaciones en el registro Python Package Index (PyPI), el repositorio oficial de software de terceros para Python.
“Desinstálelo y torchtriton inmediatamente, y use los binarios nocturnos más recientes (más recientes que el 30 de diciembre de 2022)”, aconseja el equipo de PyTorch.

La dependencia maliciosa ‘torchtriton’ en PyPI comparte el nombre con la biblioteca oficial publicada en el repositorio de PyTorch-nightly. Pero, al obtener dependencias en el ecosistema de Python, PyPI normalmente tiene prioridad, lo que hace que el paquete malicioso se extraiga de su máquina en lugar del paquete legítimo de PyTorch.
“Dado que el índice PyPI tiene prioridad , este paquete malicioso se instaló en lugar de la versión de nuestro repositorio oficial. Este diseño permite que alguien registre un paquete con el mismo nombre que uno que existe en un índice de terceros, y pip instalará su versión predeterminada”, escribe el equipo de PyTorch en un comunicado publicado ayer.
Se observó que la dependencia maliciosa ‘torchtriton’ había superado las 2300 descargas la semana pasada.
Este tipo de ataque a la cadena de suministro se conoce como “confusión de dependencia”.
PyTorch afirma que los usuarios de los paquetes estables de PyTorch no se ven afectados por este problema.
El ‘torchtriton’ malicioso no solo examina su sistema en busca de información básica de huellas dactilares (como la dirección IP, el nombre de usuario y el directorio de trabajo actual), sino que también roba datos confidenciales:
/etc/resolv.confgethostname()getlogin()getcwd()Luego carga todos estos datos, incluido el contenido del archivo, al dominio h4ck.cfd a través de consultas de DNS encriptadas utilizando el servidor de DNS wheezy.io.
PyTorch explica que el binario malicioso ‘triton’ contenido en el ‘torchtriton’ falsificado solo se ejecuta cuando el usuario importa el paquete ‘triton’ en su compilación. Esto requeriría un código explícito y no es el comportamiento predeterminado de PyTorch.
El aviso sobre el dominio h4ck.cfd implica que toda la operación es una investigación ética, pero el análisis indica claramente lo contrario.
“Hola, si se topó con esto en sus registros, probablemente se deba a que su Python estaba mal configurado y era vulnerable a un ataque de confusión de dependencias. Para identificar las empresas que son vulnerables, el script envía los metadatos sobre el host (como su nombre de host y directorio de trabajo actual) para mí. Después de que haya identificado quién es vulnerable e [informado] el hallazgo, se eliminarán todos los metadatos sobre su servidor”.
Contrariamente a la redacción del aviso, el binario no solo recopila “metadatos”, sino que roba los secretos antes mencionados, incluidas sus claves SSH, gitconfig , hosts y archivos passwd , y el contenido de los primeros 1000 archivos en su directorio HOME.
La copia del binario malicioso que, según VirusTotal , muestra una reputación limpia en el momento de escribir este artículo. Pero, no se deje engañar.
Observamos que, a diferencia de varios paquetes de investigación y explotaciones de PoC que son llamativas en su intención y comportamiento, ‘torchtriton’ emplea técnicas anti-VM conocidas para evadir la detección. Más importante aún, la carga útil maliciosa está ofuscada y contenida completamente en formato binario, es decir, archivos ELF de Linux, todo lo cual hace que la biblioteca sea un valor atípico cuando se yuxtapone con exploits de confusión de dependencia ética del pasado enviados en texto sin formato.
También notamos que la muestra lee .bash_history o una lista de comandos y entradas que el usuario ha ingresado en la terminal, que es otro rasgo exhibido por el malware.
Tampoco será la primera vez que un hacker afirme que sus acciones constituyen una investigación ética, del mismo modo que se le descubre exfiltrando secretos.
A mediados de 2022, las bibliotecas Python y PHP enormemente populares, respectivamente, ‘ctx’ y ‘PHPass’ fueron secuestradas y alteradas para robar claves de AWS . El investigador detrás del ataque afirmó más tarde que se trataba de una investigación ética.
Para evitar dudas, nos hemos acercado al propietario de h4ck.cfd para hacer comentarios. Los registros públicos muestran que el dominio se registró con Namecheap el 21 de diciembre, solo unos días antes de este incidente.
El equipo de PyTorch cambió el nombre de la dependencia ‘torchtriton’ a ‘pytorch-triton’ y reservó un paquete ficticio en PyPI para evitar ataques similares. El grupo busca reclamar la propiedad del ‘torchtriton’ existente en PyPI para difundir el ataque actual.

Para desinstalar la cadena de dependencia maliciosa, los usuarios deben ejecutar el siguiente comando:
$ pip3 uninstall -y torch torchvision torchaudio torchtriton
$ pip3 cache purge
Ejecutar el siguiente comando buscará la presencia de binarios maliciosos y revelará si está afectado:
python3 -c "import pathlib;import importlib.util;s=importlib.util.find_spec('triton');
affected=any(x.name == 'triton' for x in (pathlib.Path(s.submodule_search_locations[0]
if s is not None else '/' ) / 'runtime').glob('*'));
print('You are {}affected'.format('' if affected else 'not '))"
El hash SHA256 del binario ELF ‘tritón’ es: 2385b29489cd9e35f92c072780f903ae2e517ed422eae67246ae50a5cc738a0e.
frenify: Thank you for your kind words! We’re glad you enjoyed the post. Stay tuned for more content – we’ve got plenty more coming your way.
frenify: I really enjoyed reading this. The content is informative, and the layout makes it so easy to follow. Looking forward to more posts like this! Keep up the great work!