Desarrolladores de Python, eliminen este paquete malicioso ahora

Si es un desarrollador de Python y está acostumbrado a instalar las versiones preliminares más recientes de bibliotecas, es posible que desee tomar medidas de mitigación inmediatas. PyTorch, un marco de aprendizaje automático de código abierto desarrollado originalmente por Meta y ahora bajo la Fundación Linux, ha sido el objetivo de un ataque a la cadena de suministro que potencialmente llevó a muchos usuarios a instalar paquetes maliciosos.

Básicamente, PyTorch-nightly usa una dependencia llamada “torchtriton”. Si bien la biblioteca alojada en el índice de paquetes nocturnos de PyTorch no es maliciosa en absoluto, se cargó un paquete problemático con el mismo nombre en el repositorio del Índice de paquetes de Python (PyPI) durante las vacaciones.

Los desarrolladores de Python suelen utilizar el comando “pip” en la terminal al instalar bibliotecas. Sin embargo, esto favorece al repositorio de PyPI, lo que significa que en lugar de instalar torchtriton desde PyTorch, el binario malicioso de PyPI se estaba instalando en las máquinas de los usuarios.

Afortunadamente, es poco probable que el aparente ataque de confusión de dependencia haya afectado a la comunidad general de desarrollo de Python. Esto se debe a que solo afecta a los usuarios nocturnos de PyTorch que instalaron el paquete en Linux entre el 25 y el 30 de diciembre. Los usuarios de paquetes estables no se ven afectados.

Tras el descubrimiento del paquete malicioso torchtriton, el equipo de desarrollo de PyTorch emitió una declaración y cambió el nombre del paquete torchtriton a “pytorch-torchtriton” y lo registró como un paquete ficticio en PyPI para evitar ataques similares en el futuro. Cualquier paquete nocturno que use el nombre anterior se eliminó por ahora, y el equipo también se comunicó con PyPI para tomar posesión del nombre “torchtriton” y eliminar la versión maliciosa.

Una investigación realizada por PyTorch reveló que el paquete malicioso torchtriton envía información del sistema desde la computadora del usuario al dominio final, como se muestra a continuación:

  • Obtener información del sistema

    • Servidores de nombres de /etc/resolv.conf
    • nombre de host de gethostname()
    • nombre de usuario actual de getlogin()
    • El nombre del directorio de trabajo actual de getcwd()
    • Variables de entorno
  • Lea los archivos a continuación

    • /etc/hosts
    • /etc/contraseña
    • Primeros 1000 archivos en $HOME/*
    • $INICIO/.gitconfig
    • $INICIO/.ssh/*
  • Cargue toda esta información, incluido el contenido del archivo, en el dominio *.h4ck a través de consultas de DNS encriptadas[.]cfd, usando un servidor DNS sibilante[.]yo

En una declaración a Bleeping Computer, el propietario del paquete malicioso torchtriton y el dominio desde el que se enviaron los datos del usuario defendieron sus acciones como una investigación ética. Hicieron hincapié en que:

Oye, yo soy el que reclama el paquete torchtriton en PyPi. ¡Tenga en cuenta que esto no pretende ser malicioso!

Entiendo que podría haber hecho un mejor trabajo al no enviar toda la información del usuario. La razón por la que envío más metadatos es que, en el pasado, cuando se investigaban problemas de confusión de dependencias, en muchos casos no se podía identificar a las víctimas por nombre de host, nombre de usuario y CWD. Así que decidí publicar más información esta vez, pero en retrospectiva fue una mala decisión y debí haber sido más cuidadoso.

Acepto la culpa por esto y me disculpo. Al mismo tiempo, quiero asegurarme de que no fue mi intención robar el secreto de alguien. Informé la vulnerabilidad a Facebook el 29 de diciembre (unos tres días antes del anuncio) después de confirmar que la vulnerabilidad efectivamente estaba allí. También he presentado numerosos informes con otras empresas afectadas por el software HackerOne. Si mis intenciones fueran maliciosas, nunca completaría los informes premium incorrectos y vendería los datos al mejor postor.

Me disculpo nuevamente por causar alguna ofensa, estoy seguro de que toda la información que recibí ha sido eliminada.

Por cierto, en mi informe de errores en Facebook, les ofrecí transferirles el paquete PyPi, pero hasta ahora no he tenido noticias suyas.

Los desarrolladores que instalaron PyTorch Nightly entre el 25 y el 30 de diciembre del año pasado deben verificar dos veces sus sistemas y ejecutar los siguientes comandos a través de pip:

$ pip3 uninstall -y torch torchvision torchaudio torchtriton

$ pip3 cache purge

Del mismo modo, también se recomienda actualizar a PyTorch estable ahora o actualizar al paquete nocturno lanzado después del 30 de diciembre.

Fuente: PyTorch a través de computadora con fugas

Leave a Reply

Your email address will not be published. Required fields are marked *