Er is een phishingaanval geregistreerd op JavaScript-bibliotheken, waarbij namens de NPM-service een bericht is verzonden dat vraagt om hun e-mail te bevestigen. De uitgevoerde aanval stelde cybercriminelen in staat om NPM-tokens van de onderhoudsbeheerders van een groot JavaScript-project te verkrijgen en updates met kwaadaardige code uit te geven voor vijf NPM-pakketten, die samen ongeveer 100 miljoen downloads per week omvatten.
Het verzonden begeleidende bericht was gestileerd als typische NPM-meldingen, verzonden vanaf het adres "support@npmjs.org", maar de link leidde naar het domein "npnjs.com" in plaats van "npmjs.com" (de derde letter "n" in plaats van "m"). De aanvallers maakten gebruik van een psychologisch effect, waarbij de hersenen, in afwachting van het verwachte resultaat, kleine afwijkingen zoals het vervangen van letters door vergelijkbare of het wijzigen van de volgorde van letters in een woord niet opmerken. Bij het klikken op de link werd een volledige kopie van de website npmjs.com geopend (waarschijnlijk was er een proxy ingesteld die de toegangstoken onderschepte).

Tijdens de aanval werden nieuwe versies van pakketten aangemaakt:
- 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.
In de gemaakte publicaties werd kwaadaardige code toegevoegd om gebruikers aan te vallen die het Windows-platform gebruiken. De aangebrachte wijzigingen laadden de library node-gyp.dll, die functionaliteit bevat voor het op afstand uitvoeren van commando's op het systeem.
De onderhoudsbeheerder merkte ongeveer een uur na de eerste klacht over verdachte publicaties dat hij slachtoffer was geworden van phishing. Hij trok onmiddellijk de toegangstoken terug, veranderde de wachtwoorden en markeerde de problematische versies als verouderd om te voorkomen dat ze door geautomatiseerde buildsystemen werden gedownload, en stuurde een verzoek om de problematische versies uit de repository te verwijderen naar de NPM-ondersteuning.
Er is niet gespecificeerd hoeveel gebruikers de kwaadaardige versies hebben gedownload (bijvoorbeeld bleef de kwaadaardige versie van het pakket eslint-plugin-prettier ongeveer twee dagen in de repository). In de afgelopen week had het pakket eslint-config-prettier 30 miljoen downloads en werd het als afhankelijkheid gebruikt door 11.762 pakketten, had het pakket eslint-plugin-prettier 21 miljoen downloads (8.468 afhankelijke pakketten), synckit had 18 miljoen, @pkgr/core had 16 miljoen en napi-postinstall had 10 miljoen.
Bron: opennet.ru
