Desarrolladores de Python deben tener cuidado con este defecto

Según una publicación de la firma de seguridad Checkmarx, “es preocupante ya que una gran cantidad de paquetes maliciosos que estamos viendo aprovechan esta función de ejecución de código durante la instalación para lograr mejores tasas de infección”.

¿De qué es de lo que hablamos? Pues de que ha aparecido un exploit en una gran cantidad de paquetes disponibles a través de PyPi (instalador de los paquetes de Python) capaz de ejecutar automáticamente código malicioso antes de la instalación, mientras que los desarrolladores solo descargan un paquete del índice de paquetes.

Según los hallazgos de los expertos de la firma de ciberseguridad Checkmarx, más de un tercio de los paquetes en el repositorio de software provocan la ejecución automática del código durante la descarga.

La empresa de seguridad Checkmarx, recientemente descubrió un agujero en el sistema de cámaras Ring de Amazon, advirtiendo a todos los desarrolladores de Python que la instalación de paquetes podría aumentar el peligro de un ataque a la cadena de suministro.

¿Cuál es exactamente el problema?

La administración de paquetes de Python, PIP, intenta recopilar y analizar los metadatos del paquete; entre otros, la versión y dependencias, cada vez que un desarrollador instala un Paquete de Python.

PIP ejecuta el script principal setup.py que se incluye en la estructura del paquete automáticamente en un segundo plano.

Checkmarx afirma que el archivo setup.py puede incluir cualquier código que el creador del paquete elija, eso abre la puerta para que un atacante con conocimiento de este procedimiento inserte de forma encubierta un código malicioso que se ejecutará automáticamente al descargarlo.

Es más preocupante aún, el que la vulnerabilidad afecte a los desarrolladores incluso si optan por no instalar el archivo sino descargarlo para ver su código o realizar una comprobación de seguridad.

Según Checkmarx, esto “no es una falla sino una característica del diseño de PIP” lo que significa que cualquier código malicioso en el archivo setup.py se ejecutará al descargar el paquete.

Checkmarx señaló que este problema se mencionó en 2014 pero nunca se solucionó.

La mejor manera de evitarlo

La compañía afirma que los desarrolladores pueden usar soluciones alternativas para evitar que el código malicioso se ejecute automáticamente. Una cosa que se debe hacer antes de descargar un archivo.whl es verificar su contenido.

El script setup.py ya no es necesario, gracias a la nueva extensión de archivo de While (.whl) de PyPi. No obstante, algunos optan por el formato tar.gz que aún incluye el archivo setup.py y por tanto es menos seguro.

El usuario puede estar seguro de que si hay un archivo .whl, recibirá el archivo.whl y no se ejecutará malware malicioso en su computadora. Si solo está disponible el archivo tar.gz, un usuario puede descargarlo de forma segura interactuando directamente con la API ‘simple’ de PyPi.

Según Tzachi Zorenshtain, jefe de seguridad de la cadena de suministro de Checkmarx, la mayoría de los desarrolladores conocen el riesgo de descargar malware malicioso conectado con un paquete de software de repositorios como PyPi y es una vulnerabilidad que no se puede reparar fácilmente.

Sería sencillo eliminar este comportamiento si se pudiesen cambiar repentinamente todos los formatos y tener todo reenviado y archivado en el nuevo formato, pero eso no será posible durante un buen tiempo.

Relacionado

Deja un comentario