PYTORCH REVELA CONTENIDO MALICIOSO

Jorge PiñeiroNoticiasTendencias2 years ago65 Views

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.

La biblioteca maliciosa apunta a los usuarios nocturnos de PyTorch

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.

Dependencia maliciosa de PyTorch en PyPI
Dependencia maliciosa de PyTorch ‘torchtriton’ en PyPI

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.

Hacker roba archivos confidenciales, alega investigación ética 

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:

  • Obtiene información del sistema
    • servidores de nombres de /etc/resolv.conf
    • nombre de host de gethostname()
    • nombre de usuario actual de getlogin()
    • nombre del directorio de trabajo actual desde getcwd()
    • Variables de entorno
       
  • Lee los siguientes archivos
    • /etc/hosts
    • /etc/contraseña
    • Los primeros 1000 archivos en $HOME/*
    • $INICIO/.gitconfig
    • $INICIO/.ssh/*

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.

Mitigaciones

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.

PyTorch cambia el nombre de la dependencia para evitar más ataques
PyTorch cambia el nombre de la dependencia para evitar más ataques

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.

0 Votes: 0 Upvotes, 0 Downvotes (0 Points)

Previous Post

Next Post

Loading Next Post...
Follow
Search Trending
Popular Now
Loading

Signing-in 3 seconds...

Signing-up 3 seconds...

Cart
Cart updating

ShopYour cart is currently is empty. You could visit our shop and start shopping.