De veelgebruikte axios-library voor JavaScript-code is gehackt en wordt gebruikt voor een supplychainaanval. Gebruikers van de library installeren hierdoor mogelijk zonder dit te weten malware, specifiek een Trojan voor toegang op afstand. De library wordt tientallen miljoenen keren per week gedownload.
Volgens beveiligingsonderzoekers werden er op 31 maart twee gecompromitteerde versies van de axios-library gepubliceerd, namelijk versie 1.14.1 en de 0.30.4-versie van de legacybranch. Deze versies werden via de npm-packages verspreid. Dit zijn bestanden met JavaScript-code die via de npm-packagemanager verspreid worden. Eind vorig jaar vonden er op een vergelijkbare manier twee grootschalige cyberaanvallen plaats. Tweakers schreef een achtergrondverhaal over hoe dat werkt.
Distributie via gehackt account
De supplychainaanval is mogelijk omdat het npm-account van jasonsaayman, de maintainer van het axios-project, overgenomen lijkt te zijn. Het e-mailadres van de beheerder van de code is onlangs gewijzigd in een onbekend Proton-adres.
De gedistribueerde code is volledig identiek aan de legitieme code van axios, maar bevat een aangepast package JSON-bestand met een nieuwe dependency, extra code die in dit geval zogenaamd nodig zou zijn om goed te functioneren. Dit externe bestand heeft een verhulde payload waarmee malware op het geïnfecteerde systeem wordt geïnstalleerd. Na installatie zou de malware zichzelf verwijderen en het oorspronkelijke JSON-bestand plaatsen.
Terugdraaien en secrets vernieuwen
De beveiligingsonderzoekers raden alle gebruikers van de axios-library aan om terug te gaan naar versie 1.14.0 of 0.30.0 en deze 'vast te zetten', zodat een nieuwe geïnfecteerde versie niet opnieuw wordt geïnstalleerd. Overigens is de huidige malwareversie niet meer beschikbaar via npm. Daarnaast moeten gebruikers de geïnfecteerde bestanden verwijderen en zorgen dat er geen nieuwe scripts worden gedraaid.
Daarnaast zijn er standaard handelingen die ontwikkelaars kunnen doen bij dergelijke npm-supplychainaanvallen. Zo is het gebruikelijk om alle secrets, tokens en keys te vernieuwen. Dit maakt al gestolen secrets nutteloos.
Axios is een populaire library voor JavaScript-code voor het verwerken van HTTP-requests door webbrowsers of node.js-omgevingen.