PyTorch: Ataque de seguridad compromete el paquete torchtriton en su versión nocturna
El 31 de diciembre de 2022, el framework de aprendizaje automático PyTorch anunció en su sitio web que uno de sus paquetes había sido comprometido a través del repositorio PyPI. PyTorch es un framework diseñado para el cálculo de tensores con una fuerte aceleración de la unidad de procesamiento gráfico y redes neuronales profundas construidas sobre sistemas de gradiente automático basado en cinta.


¿Qué es el repositorio de código PyPI?
PyPI, también conocido como Python Package Index, almacena más de 400,000 proyectos que representan más de 7 millones de archivos. Este gestor de paquetes ayuda a los desarrolladores a mantener y distribuir actualizaciones para su código. Es ampliamente utilizado en empresas que necesitan diversos software escritos en el lenguaje Python.
PyPI se puede consultar fácilmente para la instalación de software de Python y para su actualización, por ejemplo, mediante la línea de comandos utilizando el comando pip. Si bien estos repositorios de código facilitan el manejo del software para los usuarios y administradores, también pueden atraer a actores maliciosos que buscan una forma de distribuir malware.
¿Cómo ocurrió el compromiso de PyTorch?
Según el equipo de PyTorch, se subió un paquete de dependencia malicioso llamado torchtriton al repositorio de código PyPI el viernes 30 de diciembre de 2022, alrededor de las 4:40 p.m. Este paquete malicioso tenía el mismo nombre que el que se distribuye en el índice de paquetes nocturno de PyTorch.
PyTorch explica que "como el índice de PyPI tiene prioridad, este paquete malicioso se estaba instalando 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 por defecto".
Cómo habilitar aplicaciones reiniciables en Windows 11Henrik Plate, CISSP e investigador de seguridad en Endor Labs, dijo a Newsmatic que "la técnica utilizada en el ataque es similar a la conocida confusión de dependencias, y aprovecha configuraciones donde se utilizan múltiples repositorios de paquetes para descargar las dependencias del proyecto. Dependiendo del algoritmo de resolución del gestor de paquetes, como el orden en que se contactan los repositorios, un atacante puede hacer que el gestor de paquetes descargue su paquete malicioso en lugar del legítimo".
La carga maliciosa
En este ataque de la cadena de suministro, el código malicioso tenía como objetivo recopilar información del sistema, como:
- Los servidores de nombres utilizados por el sistema
- El nombre del host
- El nombre de usuario que ha iniciado sesión actualmente
- El nombre del directorio de trabajo actual
- Las variables de entorno
También estaba diseñado para leer varios archivos:
- /etc/hosts
- /etc/passwd
- Los primeros 1,000 archivos de la carpeta de inicio del usuario, con un límite de tamaño de 99,999 bytes
- El archivo gitconfig
- Cualquier clave de Secure Shell almacenada en la máquina
Una vez recopilada toda la información, esta se enviaba a través de consultas del sistema de nombres de dominio cifradas a un dominio h4ck(.)cfd, utilizando un servidor DNS en wheezy(.)io.
Un usuario de Twitter se atribuye el ataque
En un giro sorprendente, un usuario de Twitter apodado BadRequests se atribuyó el ataque y se disculpó. BadRequests afirmó que la intención no era maliciosa y que todos los datos recopilados habían sido eliminados.
El supuesto ingeniero de seguridad también menciona que todo esto se trataba de investigar problemas de confusión de dependencias y que se informó del problema a Facebook el 29 de diciembre. Parece que BadRequests no sabía que PyTorch ya no era gestionado por Facebook/Meta, sino por la Linux Foundation.
Domina Linux para IT y Sysadmin con este completo pack de aprendizajeEn el caso de una simple recompensa por errores, uno podría preguntarse por qué esta persona recopiló todas las claves SSH de la carpeta SSH de los usuarios afectados y por qué todos los datos se enviaron cifrados a través de solicitudes DNS. Además, es posible que este evento resulte en problemas legales para BadRequests, ya que la información personal se recopiló ilegalmente por parte del atacante y las empresas o individuos afectados podrían querer demandarlo.
¿Cómo se puede detectar el compromiso?
PyTorch proporciona un comando que se puede ejecutar en la línea de comandos, el cual busca el paquete torchtriton e imprime si el entorno de Python está afectado o no:
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('Estás {}afectado'.format('' if affected else 'no '))"
En caso de que el sistema esté comprometido, se recomienda desinstalar PyTorch y torchtriton y volver a instalarlos utilizando las últimas versiones.
También se recomienda encarecidamente a los usuarios afectados que cambien todas sus claves SSH, ya que han sido comprometidas y enviadas al atacante.
Cómo proteger a su organización de estos ataques
El equipo de PyTorch informó que la dependencia torchtriton se ha eliminado de las versiones nocturnas y se ha reemplazado por pytorch-triton, y se ha registrado un paquete ficticio en PyPI. Esto garantizará que no vuelva a ocurrir el mismo problema. PyTorch también se puso en contacto con PyPI para obtener la propiedad adecuada del paquete torchtriton y eliminar la versión maliciosa.
Cómo monitorizar y gestionar servidores Linux desde tu Mac con ServerCatCuando se le preguntó al respecto, Henrik Plate dijo a Newsmatic que "este vector de ataque se puede abordar mediante el uso de repositorios privados para alojar paquetes internos y reflejar paquetes externos, por ejemplo, devpi en el caso del ecosistema de Python. Típicamente, dichas soluciones permiten un mayor control sobre la resolución de dependencias y los procesos de descarga de paquetes. Sin embargo, su configuración y operación requieren un esfuerzo notable y solo son efectivos si los clientes de desarrollo locales están configurados correctamente".
En Newsmatic nos especializamos en tecnología de vanguardia, contamos con los artículos mas novedosos sobre Desarrollo, allí encontraras muchos artículos similares a PyTorch: Ataque de seguridad compromete el paquete torchtriton en su versión nocturna , tenemos lo ultimo en tecnología 2026.

Artículos Relacionados