Node Package Manager Security - alles über die Sicherheit von NPM-Paketen
Viele Versionen, die Sie für das Node Package Manager Update nutzen können, sind laut den Repository-Verantwortlichen möglicherweise mit Schadcode verseucht.

Node Package Manager - Kompromittierte Pakete mit Schadcode
Investitionen in Web-Sicherheit werden immer wichtiger - das haben die jüngsten Vorfälle rund um den Node Package Manager eindrücklich gezeigt. Falls Sie kürzlich die Pakete COA oder RC für Ihre JavaScript-Laufzeitumgebung Node.js heruntergeladen haben, waren Sie möglicherweise betroffen. Der Grund: Schadcode, der über das Repository des Node Package Managers direkt auf Ihrem Computer gelandet ist.
Was zunächst harmlos klingt, ist bei genauerer Betrachtung alarmierend: Beide Pakete werden wöchentlich über 20 Millionen Mal heruntergeladen - von Entwicklern weltweit. Dadurch steigt das Ausbreitungsrisiko enorm, was einen deutlich höheren Sicherheitsstandard bei NPM erforderlich macht. Ursache für den Schadcode war ein kompromittierter Maintainer-Account, über den ein manipuliertes Paket in das Repository eingeschleust werden konnte. Der Account wurde zwar inzwischen deaktiviert, doch das Problem wurde leider zu spät erkannt.
Die manipulierten Versionen
Laut den Repository-Verantwortlichen sind zahlreiche Versionen möglicherweise mit Schadcode infiziert. Betroffen sind die GitHub-Repositories des Configuration Loader (RC) und des Command Line Parser (COA). Folgende Versionen gelten als kompromittiert:
- COA: 2.0.3, 2.0.4, 2.1.1, 2.1.3, 3.0.1, 3.1.3
- RC: 1.2.9, 1.3.9, 2.3.9
Wenn Sie eine dieser Versionen im Rahmen eines Node Package Manager Updates installieren, ist Ihr Computer mit hoher Wahrscheinlichkeit vollständig kompromittiert.
Vorsicht ist auch bei den Versionen COA 2.0.2 und RC 1.2.8 geboten. Der Trojaner gilt in beiden zwar als entfernt, dennoch könnten verborgene Systemeinstellungen zurückgeblieben sein. In diesem Fall bleibt Ihnen nur die vollständige Neuinstallation Ihres Systems.
Vorsicht, Trojaner!
Besonders kritisch: Bei dem Trojaner handelt es sich um einen Qakbot-Trojaner. Diese Malware ist dafür bekannt, Anmeldedaten und andere sensible Informationen abzugreifen. Um sich zusätzlich abzusichern, sollten Sie die Zwei-Faktor-Authentifizierung für Ihre Accounts aktivieren. Sobald Sie auf die 2FA-Methode setzen, reicht das bloße Einloggen mit korrektem Passwort nicht mehr aus.
Sie benötigen dann einen zusätzlichen Code, der beispielsweise direkt an Ihr Smartphone gesendet wird. Dieser Code liegt dem Angreifer nicht vor, sodass Ihre Accounts deutlich besser geschützt sind. Wenn Sie generell in Web-Sicherheit investieren möchten, empfiehlt sich auch regelmäßiges Penetration Testing nach einem Security Testing Guide. So schützen Sie sich und Ihr Unternehmen langfristig vor Sicherheitslücken.
Was ist ein Node Package Manager (NPM)?
Der Node Package Manager vereint zwei Funktionen: Er ist sowohl ein Repository als auch ein Command-Line Interface (CLI).
CLI-Tool: Über das Command-Line Interface laden Sie Pakete herunter und installieren diese in Ihren Anwendungen.
Repository: Das Repository ermöglicht es Ihnen, wiederverwendbaren Code zu veröffentlichen und zu verteilen. Es enthält mittlerweile mehr als 800.000 Pakete, die Entwicklern zur Verfügung stehen.
Beide Werkzeuge sind kostenlos verfügbar. Sie können sie jederzeit herunterladen und die Pakete direkt in Ihre eigenen Projekte integrieren. Das spart erheblich Zeit und Aufwand, da Sie bestehende Funktionen wiederverwenden, anstatt alles neu zu programmieren.
Darüber hinaus ermöglicht Ihnen das CLI-Tool, die Abhängigkeiten innerhalb Ihrer Anwendung zu verwalten. Diese Abhängigkeiten löst der Node Package Manager automatisch auf, sobald Sie das Projekt an Ihre Anwender ausliefern.
Genau diese Eigenschaften machen den Node Package Manager zu einem unverzichtbaren Werkzeug im Entwickleralltag. Der hohe Automatisierungsgrad erfordert jedoch ein entsprechendes Sicherheitsbewusstsein. Eine gute Grundlage dafür bietet die CIS Benchmark des Center for Internet Security. Durch regelmäßiges Penetration Testing nach Best Practices lässt sich die Sicherheit Ihrer IT-Infrastruktur dauerhaft gewährleisten.
Der Node Package Manager und Sicherheitsbedrohungen
NPM-Pakete sind benutzerfreundlich, quelloffen und weit verbreitet. Ihr Nachteil: Sie öffnen Sicherheitsbedrohungen Tür und Tor. Insbesondere Pakete, die über die NPM-Registry bereitgestellt werden, weisen derzeit die größten Sicherheitsprobleme auf. Die Eintrittsbarriere für eine Veröffentlichung im Node Package Manager ist sehr niedrig, was die Verbreitung unterschiedlichster Inhalte ermöglicht.
Trotz vorheriger Prüfung durch das Sicherheitsteam können daher unerwünschte Inhalte in das Repository gelangen. Ein wesentlicher Grund: Cyberkriminelle finden immer raffiniertere Methoden, um die gängigen Schutzmechanismen zu umgehen.
Diese Herausforderung ist nicht neu: Bereits 2018 gelang es Angreifern, eines der beliebtesten NPM-Pakete zu kompromittieren. Damals nutzten sie den eingeschleusten Code, um Geld aus Krypto-Wallets zu stehlen. Der Schadcode landete auf über 8 Millionen Geräten, bevor er entdeckt und beseitigt wurde.
Dasselbe Prinzip kommt auch bei aktuellen Angriffen zum Einsatz. Sobald ein Angreifer Veröffentlichungsrechte erlangt hat, kann er schadhafte Abhängigkeiten direkt in die Bibliothek einschleusen. Die Folge: Ihr Computer wird kompromittiert, sobald Sie das betroffene Paket herunterladen.
So schützen Entwickler den Node Package Manager
Um als Entwickler auf der sicheren Seite zu bleiben, sollten Sie Ihre Konten mit starken Passwörtern schützen. Auch die Zwei-Faktor-Authentifizierung ist eine Sicherheitsmaßnahme, von der Sie langfristig profitieren - sowohl beim Node Package Manager als auch bei vielen anderen Anwendungen.
Best Practices für die NPM-Sicherheit
Zu den Best Practices gehört es, Änderungen an Ihren Abhängigkeiten stets sorgfältig zu prüfen. Diese zusätzliche Kontrolle ist nicht nur beim Node Package Manager wichtig, sondern bei jeder Software-Änderung. In vielen Fällen sind Sie darauf angewiesen, Drittanbietern zu vertrauen - blindes Vertrauen ist jedoch gerade bei Run-Skripten nicht angebracht.
Ebenfalls wichtig: Seit Version 5 können Sie über die package-lock.json-Datei Abhängigkeiten fixieren und automatische Updates vermeiden. Diese Möglichkeit sollten Sie nutzen, da Sie sich dadurch wirksam vor potenziell schadhaftem Code schützen.
Fazit - Vorsicht walten lassen und Entwickler-Informationen im Blick behalten
Wenn Sie den Node Package Manager für Ihre Node.js-Anwendungen nutzen, ist aktuell besondere Vorsicht geboten. Verzichten Sie darauf, die betroffenen Versionen herunterzuladen, und warten Sie auf weitere Informationen der Entwickler. Darüber hinaus ist es ratsam, sich mit den Empfehlungen der CIS Benchmark vertraut zu machen und Ihre eigenen Systeme entsprechend abzusichern. So profitieren Sie von den Vorteilen des CLI-Tools und arbeiten gleichzeitig in einer sicheren Umgebung.