PyTorch comprometido para demostrar un ataque de confusión de dependencia en entornos de Python

Los actores de amenazas comprometieron PyTorch Machine Learning Framework al agregar una dependencia maliciosa.

Los mantenedores del paquete PyTorch advierten de un ataque a la cadena de suministro. Usuarios que hayan instalado PyTorch-nightly en Linux a través de pip entre el 25 de diciembre de 2022 y el 30 de diciembre de 2022, para desinstalarlo y usar los últimos binarios.

“Si instaló PyTorch-nightly en Linux a través de pip entre el 25 de diciembre de 2022 y el 30 de diciembre de 2022, desinstálelo y torchtriton inmediatamente, y use los últimos binarios nocturnos (más recientes que el 30 de diciembre de 2022)”. lee el aviso publicado por los mantenedores del marco. “Los paquetes PyTorch-nightly Linux instalados a través de pip durante ese tiempo instalaron una dependencia, torchtriton, que se comprometió en el repositorio de código Python Package Index (PyPI) y ejecutó un binario malicioso.

PyTorch, similar a Keras y TensorFlow es un marco de aprendizaje automático basado en Python de código abierto que fue desarrollado originalmente por Meta Platforms.

El ataque fue descubierto el 30 de diciembre a las 16:40 GMT. Los actores de amenazas cargaron una versión maliciosa de una dependencia legítima llamada torchtriton en el repositorio de código Python Package Index (PyPI).

Según el aviso, el ataque a la cadena de suministro afecta directamente las dependencias de los paquetes alojados en índices de paquetes públicos.

Para determinar si un entorno de Python se ve afectado o no, los mantenedores recomiendan ejecutar el siguiente comando para buscar el binario malicioso en el paquete torchtriton (PYTHON_SITE_PACKAGES/triton/runtime/triton):

python3 -c "import pathlib;import importlib.util;s=importlib.util.find_spec('triton'); affected=any(x.name == 

El aviso señala que el binario malicioso se ejecuta cuando se importa el paquete triton, lo que requiere un código explícito para hacerlo.

El binario malicioso realiza las siguientes acciones:

  • Obtener información del sistema;
  • Lee los siguientes archivos:
  • Extraiga los datos recopilados a través de consultas DNS cifradas al dominio *.h4ck[.]cfd, utilizando el servidor DNS wheezy[.]io

¿Es un ataque real a la cadena de suministro?

Los investigadores informaron  por primera vez que las personas detrás del dominio h4ck[.]cfd afirman ser investigadores que analizan los entornos de Python vulnerables a “un ataque de confusión de dependencia”.

"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í. Una vez que haya identificado quién es vulnerable y notificado el hallazgo, se eliminarán todos los metadatos sobre su servidor". lee un aviso que se mostró en el dominio.

El torchtriton se eliminó como dependencia y se reemplazó con pytorch-triton ( pytorch/pytorch#91539 ) y un paquete ficticio registrado en PyPI.

“Este no es el paquete de torchtriton real, pero se cargó aquí para descubrir vulnerabilidades de confusión de dependencias”, indicó la página de PyPI para torchtriton , ahora eliminada. “Puede obtener el torchtriton real en https://download.pytorch[.]org/whl/nightly/torchtriton/”.

Fuente: https://securityaffairs.com/140228/hacking/pytorch-confusion-attack.html