¡Alerta! Paquete antiguo de Python contiene contenido malicioso y es descargado miles de veces

Los paquetes de Python suelen actualizarse con frecuencia, ya que sus desarrolladores añaden nuevas funcionalidades o características, eliminan errores o aumentan la estabilidad.

Índice de Contenido
  1. ¿Cuál fue el contenido malicioso entregado?
  2. ¿Fue este un incidente aislado?
  3. ¿Cómo sucedió esto?
  4. ¿Cómo pueden protegerse las personas?

¿Cuál fue el contenido malicioso entregado?

Los paquetes de Python pueden actualizarse fácilmente utilizando el comando "pip" en la línea de comandos. Los usuarios que necesiten actualizar los paquetes de Python, ya sean administradores del sistema, desarrolladores, personal de IT o usuarios finales, suelen dar por sentado que la actualización es segura y sin riesgos.

Ctx es una biblioteca de Python para acceder a diccionarios de Python utilizando la notación de punto. El paquete original de ctx dejó de actualizarse en diciembre de 2014 con la versión 0.1.2 (Figura A).

Figura A

¡Alerta! Paquete antiguo de Python contiene contenido malicioso y es descargado miles de veces - Seguridad | Imagen 1 Newsmatic

La nueva página de ctx en pypi.org muestra nuevos cambios, con la versión 0.2.6 lanzada el 21 de mayo de este año (Figura B).

Protección antivirus en línea: McAfee Clinic lleva la seguridad de tu PC al siguiente nivel

Figura B

Los cambios inusuales en la versión deberían ser una primera advertencia con respecto a la página. Cualquier desarrollador normalmente utilizaría una buena numeración de versiones y no saltaría de la versión 0.1.2 a la 0.2.6.

Como se puede ver en la Figura B, la actualización de mayo de 2022 consistió en poco más que la de 2014, aunque un análisis cuidadoso de los dos archivos reveló que se habían añadido unas pocas líneas de código (Figura C).

Figura C

Según el investigador, ese código adicional intenta "obtener la ID de clave de acceso de AWS, el nombre de la computadora y la clave de acceso secreta de AWS cuando se crea un diccionario".

El informe del ISC Handler indica que "el autor intenta obtener todas las variables de entorno, codificarlas en Base64 y enviar los datos a una aplicación web bajo el control del autor" (Figura D).

Cómo proteger tu computadora de los virus: métodos y consejos

Figura D

¡Alerta! Paquete antiguo de Python contiene contenido malicioso y es descargado miles de veces - Seguridad | Imagen 2 Newsmatic

Python Security estima que se han descargado 27.000 versiones maliciosas de este software desde PyPI, y la mayoría de las descargas "fuera de fecha" son impulsadas por espejos.

¿Fue este un incidente aislado?

La investigación realizada sobre el dominio fraudulento de la aplicación web llevó al investigador a otra pieza de código, esta vez no en Python sino en PHP alojado en GitHub (Figura E).

Figura E

¡Alerta! Paquete antiguo de Python contiene contenido malicioso y es descargado miles de veces - Seguridad | Imagen 3 Newsmatic

¡Defiéndete! Protege tu seguridad en línea contra amenazas críticas

Dado que este código también intenta robar las ID de clave de acceso de AWS, parece muy plausible que este ataque haya sido realizado por los mismos atacantes.

¿Cómo sucedió esto?

El mantenedor original del paquete ctx utilizaba una dirección de correo electrónico personalizada que se puede ver en el código (Figura F).

Figura F

El dominio registrado por esa persona expiró recientemente y fue registrado por el atacante el 14 de mayo. Esto permitió al atacante crear la misma dirección de correo electrónico y hacer un restablecimiento de contraseña antes de tomar el control total del repositorio del paquete y empujar el código malicioso.

¿Cómo pueden protegerse las personas?

Los mantenedores de paquetes siempre deben asegurarse de que sus credenciales estén seguras y deben habilitar la autenticación de múltiples factores. Si un atacante obtiene acceso a credenciales válidas para el mantenimiento del paquete y la autenticación de múltiples factores está habilitada, no podrá actualizar el repositorio con contenido malicioso.

Los administradores del sistema, los empleados de IT y los desarrolladores no deben aceptar ciegamente las actualizaciones de los paquetes. Las diferencias en el código deben ser analizadas antes de implementar cualquier actualización.

Protege tus contraseñas con PAM: Tu aliado para la seguridad

Si bien esto puede parecer difícil cuando las diferencias pueden estar distribuidas en cientos o miles de líneas de código, se debe prestar atención a algunas funciones seleccionadas que seguramente serían utilizadas por los atacantes. El código que involucra comunicaciones en red o partes del código que están obfuscadas deben generar alarmas.

Las nuevas actualizaciones deben ser probadas con verificaciones de contenido de comportamiento en un entorno de prueba seguro. Una herramienta que no tiene ninguna interacción en la red y de repente la tiene, debe generar señales de advertencia.

Aprende de más de una docena de cursos de formación en línea de Newsmatic Academy para principiantes en el desarrollo de Python ahora.

Divulgación: Trabajo para Trend Micro, pero los puntos de vista expresados en este artículo son míos.

Cómo configurar un servidor VPN para hacer conexiones a través de firewalls

En Newsmatic nos especializamos en tecnología de vanguardia, contamos con los artículos mas novedosos sobre Seguridad, allí encontraras muchos artículos similares a ¡Alerta! Paquete antiguo de Python contiene contenido malicioso y es descargado miles de veces , tenemos lo ultimo en tecnología 2023.

Artículos Relacionados

Subir

Utilizamos cookies para mejorar su experiencia de navegación, mostrarle anuncios o contenidos personalizados y analizar nuestro tráfico. Al hacer clic en “Aceptar todo” usted da su consentimiento a nuestro uso de las cookies.