
Los atacantes están explotando una debilidad importante que les ha permitido acceder al repositorio de códigos de NPM con más de 100 paquetes de robo de credenciales desde agosto, en su mayoría sin ser detectados.
El hallazgo, presentado El miércoles, de la firma de seguridad Koi, llama la atención sobre una práctica de NPM que permite que los paquetes instalados extraigan y ejecuten automáticamente paquetes no examinados de dominios que no son de confianza. Koi dijo que una campaña que rastrea como PhantomRaven ha explotado el uso de “Dependencias dinámicas remotas” por parte de NPM para inundar NPM con 126 paquetes maliciosos que se han descargado más de 86.000 veces. Unos 80 de esos paquetes seguían disponibles hasta el miércoles por la mañana, dijo Koi.
Un punto ciego
«PhantomRaven demuestra cómo los atacantes sofisticados están mejorando (mejorando) en la explotación de puntos ciegos en las herramientas de seguridad tradicionales», escribió Oren Yomtov de Koi. «Las dependencias dinámicas remotas no son visibles para el análisis estático».
Las dependencias dinámicas remotas brindan mayor flexibilidad para acceder a las dependencias: las bibliotecas de códigos que son obligatorias para que funcionen muchos otros paquetes. Normalmente, las dependencias son visibles para el desarrollador que instala el paquete. Generalmente se descargan desde la infraestructura confiable de NPM.
RDD funciona de manera diferente. Permite que un paquete descargue dependencias de sitios web que no son de confianza, incluso aquellos que se conectan a través de HTTP, que no está cifrado. Los atacantes de PhantomRaven aprovecharon esta indulgencia al incluir código en los 126 paquetes cargados en NPM. El código descarga dependencias maliciosas de URL, incluido http://packages.storeartifact.com/npm/unused-imports. Koi dijo que estas dependencias son «invisibles» para los desarrolladores y muchos escáneres de seguridad. En cambio, muestran que el paquete contiene «0 dependencias». Una función NPM hace que estas descargas invisibles se instalen automáticamente.
Para agravar la debilidad, las dependencias se descargan «nuevas» desde el servidor atacante cada vez que se instala un paquete, en lugar de almacenarse en caché, versionarse o ser estáticas, como explicó Koi:




