Onbekende aanvallers hebben verschillende versies van een populaire JavaScript-bibliotheek, UAParser.js, gecompromitteerd door schadelijke code te injecteren. Volgens de statistieken op de pagina van de ontwikkelaars maken veel projecten gebruik van deze bibliotheek, die elke week 6 tot 8 miljoen keer wordt gedownload.
De kwaadwillenden hebben drie versies van de bibliotheek gecompromitteerd: 0.7.29, 0.8.0 en 1.0.0. Alle gebruikers en beheerders moeten de bibliotheken zo snel mogelijk bijwerken naar de respectievelijke versies 0.7.30, 0.8.1 en 1.0.1.
Wat UAParser.js is en waarom het zo populair is
JavaScript-ontwikkelaars gebruiken de UAParser.js-bibliotheek voor het parseren van de User-Agent-gegevens die browsers verzenden. Deze bibliotheek is op veel websites geïmplementeerd en wordt gebruikt in het softwareontwikkelingsproces van verschillende bedrijven, waaronder Facebook, Apple, Amazon, Microsoft, Slack, IBM, HPE, Dell, Oracle, Mozilla en nog veel meer. Bovendien gebruiken sommige softwareontwikkelaars tools van derden, zoals het Karma-framework voor het testen van code, die ook van deze bibliotheek afhankelijk zijn, waardoor de schaal van de aanval nog groter wordt doordat er een extra schakel aan de supply chain wordt toegevoegd.
Introductie van schadelijke code
Aanvallers hebben schadelijke scripts in de bibliotheek ingebed om schadelijke code te downloaden en uit te voeren op de computers van slachtoffers, zowel in Linux als in Windows. Het doel van een van de modules was om cryptomunten te minen. Een tweede (alleen voor Windows) was in staat vertrouwelijke informatie te stelen, zoals browsercookies, wachtwoorden en gegevens van het besturingssysteem.
Maar dat is wellicht nog niet alles: Volgens de waarschuwing van het Amerikaanse Cybersecurity and Infrastructure Protection Agency (CISA) kunnen aanvallers door gecompromitteerde bibliotheken te installeren de controle over geïnfecteerde systemen overnemen.
Volgens GitHub-gebruikers maakt de malware binaire bestanden aan: jsextension (in Linux) en jsextension.exe (in Windows). De aanwezigheid van deze bestanden is een duidelijke indicator of comproise van het systeem.
Hoe de schadelijke code in de UAParser.js-bibliotheek is geraakt
Faisal Salman, de ontwikkelaar van het UAParser.js-project, stelde dat een onbekende aanvaller toegang kreeg tot zijn account in de npm-repository en zo drie schadelijke versies van de UAParser.js-bibliotheek publiceerde. De ontwikkelaar voegde onmiddellijk een waarschuwing toe aan de gecompromitteerde pakketten en nam contact op met het npm-supportteam, dat de gevaarlijke versies snel verwijderde. Maar terwijl de pakketten online stonden, kon een aanzienlijk aantal machines ze echter hebben gedownload.
Blijkbaar stonden ze iets meer dan vier uur online, van 14:15 tot 18:23 CET op 22 oktober. ’s Avonds merkte de ontwikkelaar ongewone spam-activiteit op in zijn inbox (hij zei dat het hem waarschuwde voor verdachte activiteiten) en ontdekte hij de hoofdoorzaak van het probleem.
Wat te doen als u geïnfecteerde bibliotheken hebt gedownload
De eerste stap is om computers op de aanwezigheid van malware te controleren. Alle onderdelen van de bij de aanval gebruikte malware zijn met succes door onze producten gedetecteerd.
Update vervolgens uw bibliotheken naar de gepatchte versies: 0.7.30, 0.8.1 en 1.0.1. Dat is echter niet voldoende: Het advies luidt dat elke computer waarop een geïnfecteerde versie van de bibliotheek is geïnstalleerd of uitgevoerd als volledig gecompromitteerd worden beschouwd. Daarom moeten gebruikers en beheerders alle inloggegevens die op die computers werden gebruikt, wijzigen.
In het algemeen zijn ontwikkel- of build-omgevingen gemakkelijke doelwitten voor aanvallers die supply-chain-aanvallen proberen te organiseren. Dat betekent dat dergelijke omgevingen dringend behoefte hebben aan anti-malware-bescherming.