Dependency Confusion

Ponencia de Andrei Badea perteneciente al módulo Ciberseguridad para empresas de C1b3rWall Academy 22/23

Dependency Confusion

Tiempo de lectura estimado: 4 minutos


¿Qué es Dependency Confusion?

Se trata de un nuevo vector de ataque que permite al atacante tomar el control de los sistemas y ejecutar código arbitrario, confundiendo a los usuarios acerca de qué hay que instalar.

Si un atacante puede encontrar el fichero del listado de dependencias que se utilizan en una aplicación puede iniciar un ataque de este tipo a partir de dependencias con el mismo nombre creadas en los registros públicos. 

¿Por qué funciona esto?

Hay que entender cómo funciona el desarrollo basado en dependencias. En cualquier proyecto de Node.js existe la carpeta "node_modules" donde están las dependencias. Cuando los desarrolladores están realizando un proyecto están confiando tanto en los módulos que utilizan como en los gestores de paquetes que controlan esos módulos. El problema surge al empezar a hablar de sistemas privados gestionados por empresas privadas, ya que, aunque las dependencias sean privadas y no accesibles para las personas ajenas, son los sistemas de gestión de paquetes los que deciden qué dependencias descargar.  

Ejemplo

Una empresa tiene una dependencia llamada "paquete-malicioso" en la versión "1.2.3". Normalmente, el gestor de dependencias buscaría en el registro público para determinar que no hay módulos con el mismo nombre y descargaría el paquete correcto en el registro privado. Es ahí donde puede surgir la vulnerabilidad, ya que, si un atacante sube un módulo con el mismo nombre y una versión más alta, los gestores instalarían ese paquete malicioso porque no se ha especificado qué versión se quiere.

Ejecución arbitraria de código

Una vez instalado con éxito el módulo malicioso por no haber especificado la versión, comenzará el ataque. Las dependencias suelen depender de otras para funcionar. A modo de ejemplo, se puede aprovechar el llamado "gancho" para ejecutar código arbitrario mientras se instala el módulo. 

Typosquatting

El typosquatting es otro tipo de ataque que consiste en subir paquetes con nombres manipulados a propósito modificándolos un poco, pudiendo recibir conexiones de máquinas de todo el mundo de gente que realiza la búsqueda y comete errores en la escritura, encontrando el paquete malintencionado. 


¿Todavía no formas parte de C1b3rWall Academy? El contenido es gratuito, únete a otras miles de personas desde este enlace.

Si te interesa este tema, puedes consultar la información y cursar el Máster en Ciberseguridad o ver la oferta de másteres desde aquí.


Ponente: Andrei Badea

Andrei es responsable del Departamento de Seguridad Ofensiva en Secure&IT. Es máster en Ciberseguridad por la UCJC y cuenta con certificaciones OSCP y CEH. 

¿Cuál es tu reacción?

like

dislike

love

funny

angry

sad

wow

Acción formativa gratuita en ciberseguridad. Web: https://c1b3rwallacademy.usal.es/