Bienvenido al blog de Undercode   Click to listen highlighted text! Bienvenido al blog de Undercode
Inicio Noticias El paquete PyPI ‘keep’ incluía por error una puerta trasera

El paquete PyPI ‘keep’ incluía por error una puerta trasera

por Dragora

Se descubrió que los paquetes de PyPI ‘keep’, ‘pyanxdns’, ‘api-res-py’ contenían una puerta trasera debido a la presencia de una dependencia de ‘solicitud’ maliciosa en algunas versiones.

Por ejemplo, mientras que la mayoría de las versiones del proyecto ‘keep’ utilizan las solicitudes legítimas del módulo de Python  para  realizar solicitudes HTTP, ‘keep’ v.1.2 contiene ‘request’ (sin s ) que es malware.

BleepingComputer contactó a los autores de cada uno de estos paquetes para comprender si esto fue causado por un mero error tipográfico, autosabotaje o por el secuestro de las cuentas del mantenedor.

El paquete PyPI ‘keep’ usa una ‘solicitud’ maliciosa

Algunas versiones de los paquetes de PyPI, ‘keep’, ‘pyanxdns’ y ‘api-res-py’ se detectaron mediante una dependencia maliciosa, ‘request’

En mayo, el usuario de GitHub,  duxinglin1 , notó que las versiones vulnerables contenían la dependencia «solicitud» mal escrita, a diferencia de la biblioteca de solicitudes  legítimas .

Como tal, esta semana se han asignado los siguientes CVE con respecto a las versiones vulnerables:

  • CVE-2022-30877 : ‘mantener’ la versión 1.2 contiene la ‘solicitud’ de puerta trasera,  al contrario de lo que implica el aviso .
  • CVE-2022-30882 : ‘pyanxdns’ versión 0.2 afectada
  • CVE-2022-31313 : ‘api-res-py’ versión 0.1 afectada

Aunque ‘pyanxdns’ y ‘api-res-py’ pueden ser proyectos a pequeña escala, el paquete ‘keep’, en particular, se descarga más de 8000 veces en una semana en promedio, con su versión 1.2 usando la dependencia maliciosa:

PyPI mantener la página de inicio del paquete
La versión 1.2 del paquete PyPI ‘keep’ contiene una referencia a la dependencia maliciosa de ‘solicitud’

el paquete pypi keep usa la solicitud como una dependencia
Uso de dependencia de ‘solicitud’ maliciosa en ‘mantener’ versión 1.2 (BleepingComputer)

En 2020, Tencent Onion Anti-Intrusion System descubrió una ‘solicitud’ maliciosa de typosquat cargada en el registro PyPI que se hizo pasar por la biblioteca HTTP de solicitudes , pero en su lugar eliminó ladrones de información maliciosos.

«Encontramos una puerta trasera maliciosa en la versión 1.2 de este proyecto, y su puerta trasera maliciosa es el paquete de solicitud. Incluso si PyPI eliminó el paquete de solicitud, muchos sitios espejo no eliminaron completamente este paquete, por lo que aún podría instalarse». escribe  el usuario de GitHub  duxinglin1 .

El código malicioso dentro de la «solicitud» falsificada se destaca a continuación:

Solicitud interna de paquete PyPI falsificado
Dentro de la ‘solicitud’ del paquete PyPI falsificado  (BleepingComputer)

 

La línea 57 contiene una URL codificada en base64 para el malware ‘check.so’ que se muestra a continuación. Blackorbird  , analista de Threat Intel,  identificó además otra URL (x.pyx), que también se muestra a continuación, asociada con la dependencia de «solicitud» falsificada: 

http://dexy[.]top/request/check.so
http://dexy[.]top/x.pyx

El archivo ‘check.so’ entrega un troyano de acceso remoto (RAT), mientras que ‘x.pyx’ obtenido por BleepingComputer contiene malware de robo de información que roba cookies e información personal de navegadores web como Chrome, Firefox, Yandex, Brave y mucho mas:

contenido del archivo x.pyx
Contenido del archivo x.pyx decodificado por BleepingComputer  (BleepingComputer)

El troyano que roba información intentará robar los nombres de inicio de sesión y las contraseñas almacenadas en los navegadores web.

Después de obtener acceso a las credenciales del usuario, los actores de amenazas pueden intentar comprometer otras cuentas utilizadas por el desarrollador, lo que podría generar aún más ataques a la cadena de suministro.

¿Secuestro o un error tipográfico genuino?

La presencia de una dependencia maliciosa en varios paquetes de PyPI plantea una pregunta crucial: ¿cómo ocurrió esto?

BleepingComputer contactó a los autores de cada uno de estos paquetes para comprender si esto fue causado por un mero error tipográfico, autosabotaje o por el secuestro de las cuentas del mantenedor.

Recibimos respuesta del autor y mantenedor de ‘pyanxdns’, Marky Egebäck, quien confirma que esto se debe a un error tipográfico en lugar de un compromiso de cuenta.

Y, por lo que parece, parece que los autores de otros dos paquetes también introdujeron inadvertidamente ‘solicitud’ en lugar de las ‘solicitudes’ legítimas debido a un inocente error de tipeo.

«Lamento decirlo por un simple error tipográfico en el archivo setup.py , ya que el historial de git muestra que esto se agregó cuando yo agregué install_requires «, dijo Egebäck a BleepingComputer.

Desde entonces, el desarrollador volvió a cargar una nueva versión en PyPI y eliminó la versión que hace referencia a la dependencia de «solicitud» maliciosa.

«Este fue [un] error honesto basado en un error tipográfico en setup.py . Por lo general, no publico cosas en PyPI, pero hice esto rápidamente para un amigo y para mí. No estoy seguro de si promocionó esto, pero el propósito era principalmente para uso personal en [un] proyecto docker interno», dice Egebäck.

Egebäck agradeció al usuario de GitHub  duxinglin1 por resaltar la presencia de la dependencia maliciosa en su proyecto y explicó que últimamente no ha dedicado mucho tiempo a mantener el proyecto Python contribuido:

«Por supuesto, lo que se podría haber hecho mucho mejor habría sido haber solucionado esto antes, pero no entendía la gravedad de esto y, dado que lamentablemente [hoy en día] dedico muy poco tiempo a la codificación, tomó mucho tiempo», dice Egebäck.

Cuando se codifican aplicaciones, los errores de tipeo inocentes por parte del desarrollador pueden dar éxito inadvertidamente a los ataques de typosquatting  que cuentan con deslices tan exactos para comprometer la cadena de suministro de software más amplia.

Aunque en este caso, la dependencia maliciosa de ‘solicitud’ se eliminó hace mucho tiempo del registro de PyPI, cualquiera que use una versión vulnerable de los paquetes PyPI y confíe en un espejo para obtener dependencias puede terminar con ladrones de información maliciosos en su sistema.

Fuente: https://www.bleepingcomputer.com

You may also like

Dejar Comentario

Click to listen highlighted text!