Het NCSC waarschuwt ontwikkelaars voor recente supplychain-aanvallen waarbij kwaadaardige versies van pakketten zijn verspreid. Zowel gecompromitteerde npm-packages als Python-libraries kunnen daarbij worden misbruikt om toegang te krijgen tot ontwikkelomgevingen en andere IT-systemen. Als jouw team software bouwt met dependencies van derden, loont het om nu direct te controleren en waar nodig in te grijpen.
In deze alert worden meerdere concrete voorbeelden genoemd, waaronder een aanval gericht op een beveiligingsscanner (Trivy) en een compromis van de populaire HTTP-library axios. De kern is steeds hetzelfde: kwaadwillenden voegen malware toe aan legitieme packages, die daarna als updates worden doorgevoerd.
Wat is er gebeurd bij de aanvallen?
npm is een packagemanager voor Node.js, gebruikt om software te ontwikkelen met externe libraries. Parallel daaraan bestaan er vergelijkbare ecosystemen voor Python via PyPI. In recente campagnes zijn packages niet alleen beïnvloed, maar daadwerkelijk gecompromitteerd, zodat aanvallers de controle krijgen over installaties en updates binnen je organisatie.
Bij deze aanpak richten aanvallers zich vaak niet op een eindgebruiker, maar op het ontwikkelproces. Zodra een gecompromitteerd package wordt geïnstalleerd, kan de malware zich gedragen als onderdeel van de bouw- of deployketen. Daarmee ontstaan nieuwe ingangen naar authenticatiegegevens en vervolgens naar andere omgevingen.
Voorbeelden uit de alert: Trivy en axios
Een van de beschreven incidenten dateert van 19 maart. Kwaadwillenden verkregen oneigenlijke toegang tot de ontwikkelomgeving van Trivy, een beveiligingsscanner die onder andere wordt gebruikt in contexten rond Node.js-applicaties. Vervolgens werd een malafide versie verspreid die toegang kan geven tot gevoelige authenticatiegegevens. Daarnaast zouden er zogenaamde backdoors zijn geplaatst waarmee op gecompromitteerde systemen op afstand commando’s kunnen worden uitgevoerd.
Volgens de beschrijving wordt die toegang daarna ook gebruikt om verdere besmettingen uit te voeren via extra packages. Na de initiële compromittatie zouden in elk geval meerdere npm-packages zijn geraakt (het echte aantal ligt waarschijnlijk hoger). Ook worden Python-packages genoemd die via een vergelijkbare werkwijze gecompromitteerd zouden zijn.
Los daarvan kwam op 30 maart naar buiten dat ook axios gecompromitteerd zou zijn op npm. Axios is een veelgebruikte library om via HTTP te communiceren. In deze supplychain-aanval is eveneens malware toegevoegd aan een legitiem package, waarna de verspreiding plaatsvindt als update van het pakket.
Wat is het risico voor jouw organisatie?
Het risico ontstaat wanneer jouw software een dependency gebruikt die inmiddels is gecompromitteerd. In dat geval kunnen kwaadwillenden authenticatiegegevens buitmaken. Met die credentials kunnen ze vervolgens proberen toegang te krijgen tot andere (ontwikkel)omgevingen of systemen binnen je netwerk.
Daarnaast wijst het NCSC erop dat de verkregen toegang mogelijk wordt gebruikt om (gevoelige) data uit systemen te exfiltreren. De alert noemt scenario’s zoals afpersing: data publiceren op het internet als er niet wordt betaald. Een alternatief is doorverkoop van buitgemaakte data aan andere cybercriminelen, die de credentials weer inzetten voor vervolgaanvallen.
Controleer: is jouw ontwikkelomgeving geraakt?
Het NCSC adviseert om eerst vast te stellen of jouw ontwikkelomgeving indicaties bevat van compromittatie. Concreet wordt geadviseerd te controleren op de aanwezigheid van twee groepen packages:
- Trivy: versie 0.69.4
- axios: versies 1.14.1 en 0.30.4
Let op: zelfs als je deze packages niet gebruikt, kan een compromis toch via een ander pakket in je omgeving zijn terechtgekomen. Daarom is het belangrijk om ook te zoeken naar indicators-of-compromise (IOC’s). Meerdere beveiligingsbedrijven hebben IOC’s gedeeld, en aanwezigheid ervan kan duiden op mogelijke compromittatie.
Wat je direct moet doen bij aanwijzingen
Wordt er iets gevonden dat past bij een compromittatie, start dan niet pas later op. De alert noemt drie praktische stappen.
1) Zet je incidentresponsproces klaar
Begin met je IR-proces om de omvang en impact te onderzoeken. Overweeg daarbij hulp van een gespecialiseerde incidentresponsdienstverlener als je snel duidelijkheid nodig hebt over bereik, tijdlijn en mogelijke datalekken.
2) Roteer alle mogelijk getroffen credentials
Het NCSC adviseert om tokens, credentials en andere authenticatiegegevens te roteren waar aanvallers mogelijk toegang toe hebben gehad. Dit verkleint de kans dat gestolen toegang nog steeds bruikbaar is.
3) Informeer klanten indien nodig
Als jouw software eindgebruikers of klanten raakt, kan het noodzakelijk zijn om hen tijdig te informeren. Zo kunnen zij passende maatregelen treffen in hun eigen omgeving.
Preventie: zo maak je supplychain-aanvallen minder kansrijk
Naast reactief handelen is preventie essentieel. De alert noemt een reeks maatregelen die je kunt combineren binnen je ontwikkel- en CI/CD-processen.
- Gebruik versiepinning: pin hashes van externe libraries (waar mogelijk) in plaats van alleen versienummers. Daarmee verklein je de kans dat je een gemanipuleerde variant downloadt.
- Werk zorgvuldig met updates: pas een dependency cooldown-periode toe. Voer kritieke beveiligingsupdates snel uit, maar wacht enkele dagen met reguliere dependency-updates waar dat kan.
- Schakel postinstall-scripts uit: bijvoorbeeld via –ignore-scripts bij npm ci.
- Detecteer vroeg in CI/CD: zet scansoftware in voor je build- en deployketen om malafide updates en packages te herkennen.
- Gebruik alleen trusted publishers: beperk je aan packages van betrouwbare partijen en controleer regelmatig met npm audit.
- Vervang langdurige tokens: implementeer npm Trusted Publishing met OpenID Connect (OIDC) in plaats van een vast NPM_TOKEN. Zo wordt authenticatie eenvoudiger beheerd en is misbruik van een langlevend publish-token minder waarschijnlijk.
Conclusie
De waarschuwing van het NCSC laat zien dat gecompromitteerde npm-packages en Python-libraries niet alleen je build kunnen verstoren, maar ook toegang tot authenticatiegegevens en mogelijk gevoelige data kunnen opleveren. Door nu gericht te controleren, bij indicaties snel te reageren en je supplychain te verharden met versiepinning, veiligere installpraktijken en CI/CD-detectie, verlaag je het risico aanzienlijk.
Bron: https://www.ncsc.nl/alerts/ontwikkelaars-opgelet-gecompromitteerde-npm-en-python-packages
