Supply chain aanvallen via NPM en Python: bescherm je ontwikkelaars

Je ontwikkelaars typen `npm install` of `pip install` en binnen seconden is malware op je netwerk. Supply chain aanvallen via package managers zijn een groeiende bedreiging. En de meeste bedrijven hebben er geen idee van.

πŸ“¦ Wat zijn supply chain aanvallen?

Moderne software wordt niet vanaf nul gebouwd. Ontwikkelaars gebruiken duizenden externe packages:

  • 🟒 NPM β€” JavaScript/Node.js packages (2+ miljoen packages)
  • 🐍 PyPI β€” Python packages (500.000+ packages)
  • πŸ’Ž RubyGems β€” Ruby packages
  • πŸ“¦ Maven β€” Java packages

Het probleem? Iedereen kan een package publiceren. En niet iedereen heeft goede bedoelingen.

⚠️ Real-world incident: event-stream

In 2018 werd het populaire NPM package "event-stream" (2 miljoen downloads per week) overgenomen door een aanvaller. Hij voegde malware toe die cryptocurrency wallets stal.

Impact: Duizenden bedrijven installeerden de malafide versie voordat het werd ontdekt. Miljoenen euro's aan cryptocurrency gestolen.

🎯 De 4 meest voorkomende aanvalstechnieken

1. Typosquatting

Aanvallers publiceren packages met namen die lijken op populaire packages:

  • ❌ reqeusts in plaats van requests (Python)
  • ❌ cross-env in plaats van crossenv (NPM)
  • ❌ babelcli in plaats van babel-cli (NPM)

Een simpele typefout en je installeert malware in plaats van de legitieme package.

2. Dependency confusion

Bedrijven gebruiken vaak private packages met dezelfde naam als publieke packages. Aanvallers publiceren een publieke versie met een hoger versienummer.

Package managers installeren dan de publieke malafide versie in plaats van je private package.

3. Compromised maintainers

Aanvallers hacken de accounts van package maintainers en publiceren malafide updates van legitieme packages.

Omdat het package zelf legitiem is, vertrouwen ontwikkelaars de update β€” en installeren malware.

4. Abandoned packages

Populaire packages worden soms niet meer onderhouden. Aanvallers bieden aan om het over te nemen, krijgen toegang, en voegen malware toe.

🚨 Wat doet de malware?

Malafide packages kunnen van alles doen:

Malware type Wat het doet
Credential stealers Steelt environment variables (API keys, passwords, tokens)
Backdoors Geeft aanvallers permanente toegang tot je systemen
Cryptominers Gebruikt je servers om cryptocurrency te minen
Data exfiltration Stuurt broncode en data naar externe servers
Ransomware Versleutelt je bestanden en vraagt losgeld

πŸ›‘οΈ Hoe bescherm je je tegen supply chain aanvallen?

Voor ontwikkelaars:

  • βœ… Controleer package namen β€” let op typefouten
  • βœ… Check populariteit β€” vermijd packages met weinig downloads
  • βœ… Review dependencies β€” bekijk wat een package installeert
  • βœ… Pin versies β€” gebruik exacte versienummers, niet "latest"
  • βœ… Gebruik lock files β€” package-lock.json, requirements.txt
  • βœ… Scan met tools β€” npm audit, pip-audit, Snyk

Voor IT/security teams:

  • βœ… Private package registry β€” host je eigen packages intern
  • βœ… Package scanning β€” automatisch scannen op malware
  • βœ… Netwerk-level blokkering β€” blokkeer bekende malafide packages
  • βœ… Monitoring β€” detecteer ongebruikelijke downloads
  • βœ… Segmentatie β€” isoleer development omgevingen

🌐 Hoe CleanInternet.nl helpt

CleanInternet.nl kan supply chain aanvallen niet volledig voorkomen (dat kan niemand), maar we kunnen wel meerdere lagen bescherming bieden:

πŸ›‘οΈ Beschermingslagen

  • βœ… DNS filtering β€” blokkeert command & control servers waar malware naartoe belt
  • βœ… TLS inspectie β€” detecteert data-exfiltratie via HTTPS
  • βœ… Behavioral analysis β€” detecteert ongebruikelijke uitgaande verbindingen
  • βœ… File filtering β€” blokkeert downloads van bekende malware
  • βœ… Monitoring β€” zie welke externe verbindingen je development machines maken

Het idee: zelfs als een malafide package wordt geΓ―nstalleerd, kan het niet naar buiten bellen om credentials te stelen of malware te downloaden.

πŸ“Š De impact van supply chain aanvallen

Supply chain aanvallen zijn geen theoretisch risico. Ze gebeuren dagelijks:

  • πŸ“ˆ 700% toename in malafide NPM packages sinds 2020
  • 🎯 1 op de 8 bedrijven getroffen door supply chain aanval in 2025
  • πŸ’° €4,2 miljoen gemiddelde kosten per incident
  • ⏱️ 287 dagen gemiddelde tijd om een supply chain aanval te detecteren

βœ… Conclusie: vertrouw, maar verifieer

Open source software is geweldig β€” het maakt ontwikkeling sneller en goedkoper. Maar het vereist wel waakzaamheid.

De oplossing is niet stoppen met NPM of Python (dat is onpraktisch), maar meerdere verdedigingslagen implementeren: code review, scanning, netwerk-beveiliging, en monitoring.

Want in de wereld van supply chain aanvallen geldt: vertrouw, maar verifieer.

Martin van der Poel

Martin van der Poel

Oprichter van ZETA en CleanInternet.nl. Als ontwikkelaar begrijp ik de afhankelijkheid van open source packages. Maar als security-professional weet ik ook hoe gevaarlijk ze kunnen zijn. Mijn missie: beide werelden verenigen.

πŸ”’ Bescherm je development team

Ontdek hoe CleanInternet.nl helpt supply chain aanvallen te detecteren en blokkeren

search Check beschikbaarheid