Bienvenido al blog de Undercode   Click to listen highlighted text! Bienvenido al blog de Undercode
Inicio Noticias El nuevo ataque de sincronización de npm podría conducir a ataques en la cadena de suministro

El nuevo ataque de sincronización de npm podría conducir a ataques en la cadena de suministro

por Dragora

Los investigadores de seguridad han descubierto un ataque de tiempo npm que revela los nombres de los paquetes privados para que los actores de amenazas puedan lanzar clones maliciosos públicamente para engañar a los desarrolladores para que los usen en su lugar.

El ataque se basa en una pequeña diferencia de tiempo en la devolución de un error «404 No encontrado» al buscar un paquete privado en comparación con un paquete inexistente en el repositorio.

Si bien la diferencia de tiempo de respuesta es de solo unos pocos cientos de milisegundos, es suficiente para determinar si existe un paquete privado para realizar ataques de suplantación de paquetes.

Las organizaciones crean paquetes privados para proyectos internos y ciertos productos de software para minimizar el riesgo de que sus equipos de desarrollo caigan en  ataques tipo typosquatting y para mantener su código y funciones en secreto.

Mantener la privacidad de los paquetes  privados  es fundamental  para las organizaciones que los utilizan. De lo contrario, los atacantes pueden crear clones o paquetes con errores tipográficos que los piratas informáticos podrían engañar a los empleados de las organizaciones para que los descarguen y utilicen en proyectos de software.

Si los desarrolladores y los probadores de software internos no descubren el compromiso, los productos podrían llegar a los usuarios finales, logrando un  compromiso de la cadena de suministro .

En un informe del equipo de investigación de amenazas de Aqua Security, que compartió sus hallazgos con BleepingComputer antes de la publicación, los atacantes se centran cada vez más en los ataques a la cadena de suministro, lo que genera un aumento del 300 % en las actividades asociadas en 2021.

Detalles del ataque de sincronización

npm incluye una  API de registro  que permite a los usuarios descargar paquetes existentes, verificar la existencia de paquetes y recibir información sobre todos los paquetes bajo un alcance específico.

Al usar el registro npm para descargar un paquete que no existe o está configurado como privado, el sitio web devolverá un código de error HTTP 404, lo que indica que no se pudo encontrar el paquete.

 

404 Respuesta no encontrada a una solicitud de API en npm
404 Respuesta no encontrada a una solicitud de API en npm (Aqua Security)

 

Aqua Security  descubrió el ataque de tiempo de npm  usando esta API para verificar la existencia de paquetes privados que crearon en npm y comparó el tiempo de respuesta de los errores HTTP 404 con las verificaciones de API para paquetes inexistentes.

Los investigadores realizaron su prueba verificando la existencia de un nombre de paquete cinco veces. Descubrieron que existe una diferencia medible en el tiempo promedio requerido para que npm responda a la solicitud, lo que les permite discernir si un paquete es privado o inexistente.

Más específicamente, el tiempo de respuesta promedio cuando existe el paquete privado es de 648 milisegundos, mientras que el tiempo promedio cuando no existe se reduce a solo 101 milisegundos.

Tiempo para responder a cinco solicitudes
Tiempo para responder a cinco solicitudes (Aqua Security)

 

Los investigadores suponen que esto se debe al mecanismo de almacenamiento en caché y la arquitectura de la API de npm, que introduce este potencial de divulgación de información.

Un pirata informático puede probar un ataque de diccionario «a ciegas» o buscar patrones de nomenclatura y combinaciones en los paquetes públicos de la organización objetivo para derivar posibles nombres de paquetes privados.

Además, la información en línea contiene información histórica del paquete, por lo que los atacantes podrían usarla para determinar qué paquetes públicos pueden haberse convertido en privados más adelante.

En el último caso, un compromiso potencial con un paquete de clonación podría ser muy sigiloso, ya que una copia antigua de un paquete que solía ser público aún puede conservar suficiente funcionalidad para funcionar según lo previsto en el producto de software que lo utiliza.

GitHub no solucionará el problema

Aqua Security reveló el error a GitHub el 8 de marzo de 2022, pero el 25 de marzo se le informó que no se solucionaría debido a limitaciones arquitectónicas.

«Debido a estas limitaciones arquitectónicas, no podemos evitar que los ataques de sincronización determinen si existe un paquete privado específico en npm», dijo GitHub a Aqua Security.

Los investigadores dicen que las organizaciones pueden tomar medidas preventivas al buscar con frecuencia en npm paquetes sospechosos que suplantan sus paquetes privados con nombres duplicados o similares.

Además, las organizaciones pueden crear paquetes públicos que suplantan sus paquetes privados como marcadores de posición, ya que npm no permite cargar paquetes con el mismo nombre en repositorios públicos.

Fuente: https://www.bleepingcomputer.com

You may also like

Dejar Comentario

Click to listen highlighted text!