Inicio / Alerta Temprana / Avisos Seguridad / Posible detección de malware en repositorios oficiales de Python

Posible detección de malware en repositorios oficiales de Python

Fecha de publicación: 
15/09/2017
Importancia: 
3 - Media
Recursos afectados: 
  • Todas las versiones de Python para Windows, Linux y Mac OS.
Descripción: 

SK-CSIRT ha identificado librerías que contienen software malicioso en el repositorio oficial de paquetes Python, PyPI. Dichos paquetes pueden haber sido descargados involuntariamente por desarrolladores o administradores por varios medios, incluyendo la utilidad "pip" (pip install urllib).

Solución: 

SK-CSIRT contactó con los administradores del repositorio PyPI, y todos los paquetes se eliminaron inmediatamente.

No obstante la solución es eliminar los paquetes falsos instalados. Para comprobar si los paquetes falsos están instalados en el sistema, ejecute el siguiente comando:

pip list --format=legacy | egrep '^(acqusition|apidev-coop|bzip|crypt|django-server|pwd|setup-tools|telnet|urlib3|urllib$)'

Si el comando muestra al menos un paquete, elimine cada paquete malicioso mostrado, ejecutando:

pip uninstall <package>

La otra opción es eliminar el paquete del directorio del sistema directamente. Esta opción proporciona un poco más de seguridad al no ejecutar ningún código potencialmente malicioso en el proceso de eliminación.

Indicadores de compromiso:

  • MD5:
    • 93ec90693ef461d7f1e6f55b14cf47d9
    • 1ac5a57d9b1c5525e27b4cbd5e254db1
    • 1d0eaf4be1147da84e9069fff2e75629
    • 80e114a73440a76c8d363f03a256a7a2
    • a1b460d52cfdee4e6193a9363c95c537
    • c68880e38bc514471cfb0b2226380bfd
    • 57fed189bd50ffc95bbc3ca38670834b
    • 9d944888b4072ae0eb71233b5d3d837a
    • b389410f6fa9084fa63ccef153fa243c
    • d4a9c4fb93306ebd7a6968ff2c503d17
Detalle: 

Se han detectado copias de varios paquetes de Python que fueron publicados bajo nombres ligeramente modificados, en el repositorio de paquetes Python oficial, PyPI. Estos paquetes contienen exactamente el mismo código que el paquete original por lo que su funcionalidad es la misma, pero el script de instalación setup.py se modifica para incluir código malicioso.

Lista de paquetes afectados:

  • acqusition (subido el 03-06-2017 01:58:01, suplanta a acquisition)
  • apidev-coop (subido el 03-06-2017 05:16:08, suplanta a apidev-coop_cms)
  • bzip (subido el 04-06-2017 07:08:05, suplanta a bz2file)
  • crypt (subido el 03-06-2017 08:03:14, suplanta a crypto)
  • django-server (subido el 02-06-2017 08:22:23, suplanta a django-server-guardian-api)
  • pwd (subido el 02-06-2017 13:12:33, suplanta a pwdhash)
  • setup-tools (subido el 02-06-2017 08:54:44, suplanta a setuptools)
  • telnet (subido el 02-06-2017 15:35:05, suplanta as telnetsrvlib)
  • urlib3 (subido el 02-06-2017 07:09:29, suplanta a urllib3)
  • urllib (subido el 02-06-2017 07:03:37, suplanta a urllib3)

El código malicioso añadido al paquete falso se ejecuta cuando el desarrollador o administrador del sistema instala el paquete (habitualmente con privilegios de administrador).

El código ejecutado en las muestras identificadas sólo se usa para reportar la siguiente información, usando una solicitud HTTP a un servidor remoto en http://121.42.217.44:8080/:

  • nombre y versión del paquete falso
  • nombre del usuario que instala el paquete
  • nombre de host
Etiquetas: