En phishing-attack er blevet registreret på JavaScript-biblioteker, hvor en besked blev sendt i NPM's navn og bad om at bekræfte sin email. Den udførte attack gjorde det muligt for angribere at få fat i NPM-token fra en af de store JavaScript-projekter og frigive opdateringer med skadelig kode til fem NPM-pakker, der samlet set havde omkring 100 millioner downloads om ugen.
Den sendte besked var stylet som typiske NPM-notifikationer, der blev sendt fra adressen «support@npmjs.org», men linket førte til domænet «npnjs.com» i stedet for «npmjs.com» (tredje bogstav «n» i stedet for «m»). Angriberne udnyttede den psykologiske effekt, hvor hjernen, når den forventer et bestemt resultat, ikke bemærker små forvrængninger, såsom at erstatte bogstaver med lignende eller ændre rækkefølgen af bogstaverne i ordet. Ved at klikke på linket blev der åbnet en fuld kopi af website npmjs.com (sandsynligvis blev der opsat en proxy, der fangede adgangstoken).

Under angrebet blev der dannet nye versioner af pakkerne:
- eslint-config-prettier: 8.10.1, 9.1.1, 10.1.6, 10.1.7.
- eslint-plugin-prettier: 4.2.2, 4.2.3.
- synckit: 0.11.9.
- @pkgr/core: 0.2.8.
- napi-postinstall: 0.3.1.
Der blev tilføjet skadelig kode til de frigivne versioner for at angribe brugere, der benyttede Windows-platformen. De ændringer, der blev foretaget, indlæste biblioteket node-gyp.dll, som indeholdt funktionalitet til fjernudførelse af kommandoer i systemet.
Den ansvarlige bemærkede, at han var blevet offer for phishing omkring en time efter den første klage over publicering af mistænkelige udgivelser. Han tilbagekaldte straks adgangstoken, ændrede adgangskoder og mærkede de problematiske versioner som forældede for at forhindre download via automatiserede build-systemer og sendte en anmodning om at fjerne de problematiske versioner fra repository til NPM-support.
Det er ikke specificeret, hvor mange brugere der har nået at downloade de skadelige versioner (for eksempel, blev den skadelige version af pakken eslint-plugin-prettier ved i repository i cirka to dage). I løbet af den forgangne uge havde pakken eslint-config-prettier 30 millioner downloads og blev brugt som afhængighed i 11.762 pakker, pakken eslint-plugin-prettier havde 21 millioner downloads (8.468 afhængige pakker), synckit 18 millioner, @pkgr/core 16 millioner og napi-postinstall 10 millioner.
Kilde: opennet.ru
