NPM (siglas de ‘Node Package Manager’) es el nombre del repositorio y gestor de paquetes de NodeJS, un popular entorno de ejecución de JavaScript, que los desarrolladores vienen usando desde hace años para compartir herramientas, administrar dependencias y, en general, publicar proyectos JavaScript de código abierto.
Ahora, la integridad de NPM se ha visto comprometida por un malware infiltrado en el repositorio: se han detectado varios paquetes de software infectados con el malware CursedGrabber. Concretamente, los paquetes afectados son an0n-chat-lib, discord-fix y sonatype, todos ellos publicados por el usuario “scp173-deleted“.
Una nueva (y peligrosa) vía de difusión de malware
Una vulnerabilidad así es potencialmente grave porque no afecta únicamente a los equipos de los desarrolladores que vayan a instalar esos paquetes, sino que el malware corrompería también las aplicaciones web creadas por ellos y, así, también a los equipos de sus usuarios.
Por eso, la infección de esta clase de repositorios es una táctica cada vez más usada por los ciberatacantes para garantizar la difusión de su malware.
Así, el mes pasado el repositorio RubyGems (que ocupa un papel similar a npm, pero entre los desarrolladores en Ruby) detectó la corrupción de dos de sus paquetes con código que robaba criptomonedas mediante el recurso de cambiar la dirección de destino de una transacción por el atacante a la hora de realizar el copy/paste.
Según explicó Ax Sharma, investigador de ciberseguridad de Sonatype, a Threatpost,
“Hemos sido testigos de numeroso malware de código abierto atacando sitios como GitHub, NPM y RubyGems: los atacantes de aprovechan de la confianza dentro de la comunidad de código abierto para difundir prácticamente cualquier tipo de malware, desde CursedGrabber a sofisticados troyanos de espionaje como njRAT”.
¿Qué es CursedGrabber?
Concretamente, CursedGrabber está destinado al robo de tokens e información personal de los usuarios de Discord, la plataforma de creación de comunidades web que permite la comunicación entre sus usuarios mediante texto, llamadas, videollamadas, etc.
Los tokens de Discord son usados por los bots para comunicarse con la API, por lo que el robo de un token permite a un atacante hackear la comunidad afectada. En el caso que nos ocupa, dicho robo se lleva a cabo mediante la manipulación de los archivos hosts en Windows.