22 may 2023

Confusión de dependencias en Python

La vulnerabilidad de "dependency confusion" (confusión de dependencias) es una vulnerabilidad que ocurre cuando un proyecto o aplicación utiliza un sistema de administración de paquetes que permite la instalación desde fuentes externas, como repositorios públicos o privados, pero no tiene un mecanismo adecuado para evitar la "confusión" entre las dependencias internas y las externas.

Básicamente lo que hace el ataque es usar un paquete con el mismo nombre que una dependencia interna utilizada por el proyecto, pero lo publica en un repositorio público. Cuando el sistema de administración de paquetes del proyecto busca e instala las dependencias, puede descargar e instalar inadvertidamente el paquete malicioso en lugar de la dependencia interna legítima.

Se sabe que los siguientes administradores de paquetes están afectados:

  • MNP
  • RubyGems
  • PyPi
  • JFrog
  • NuGet

En este post de HackerPlayer se prueba con Python/PyPi. Por ejemplo con un archivo requirements.txt típico que se puede usar para extraer paquetes de Python del repositorio de PyPi.

defusedxml
banditbeautifulsoup4
flask
flask-auth-company-name

Esta configuración de arriba es vulnerable a un ataque de confusión de dependencias porque flask-auth-company-name es una dependencia solo local que no se espera que exista en el repositorio remoto.

Lo que haremos será cargar el paquete malicioso usando ese nombre, asegurándonos de que tenga un número de versión más alto que el del paquete local. La próxima vez que se llame al proceso de compilación, el paquete malicioso se descargará del repositorio y se usará en lugar del paquete local. Podría decirse que es una variante de ataque a la cadena de suministro.

Contenido completo en fuente original: HackPlayers

Suscríbete a nuestro Boletín

0 Comments:

Publicar un comentario

Gracias por dejar un comentario en Segu-Info.

Gracias por comentar!