3 Punkte von GN⁺ 2025-10-31 | Noch keine Kommentare. | Auf WhatsApp teilen
  • Im NPM-Repository wurden mehr als 100 bösartige Pakete zum Diebstahl von Zugangsdaten hochgeladen, die seit August unentdeckt blieben und zusammen mehr als 86.000 Mal heruntergeladen wurden
  • Das Sicherheitsunternehmen Koi berichtet, dass eine als „PhantomRaven“ bezeichnete Angriffskampagne die NPM-Funktion Remote Dynamic Dependencies (RDD) missbrauchte, um 126 bösartige Pakete zu verbreiten
  • RDD ist eine Struktur, die es Paketen erlaubt, Abhängigkeitscode dynamisch von nicht vertrauenswürdigen Domains herunterzuladen, wodurch sie von statischen Analysewerkzeugen nicht erkannt wird
  • Die Angreifer nutzten diese Funktion, um bösartigen Code über HTTP-Verbindungen herunterzuladen; in den Paketmetadaten wurde dennoch „0 Dependencies“ angezeigt, sodass Entwickler und Security-Scanner dies nicht bemerkten
  • Diese strukturelle Schwachstelle macht die Grenzen des Sicherheitsmanagements im NPM-Ökosystem und die Risiken automatischer Installationsmechanismen deutlich

Ausbreitung bösartiger Pakete im NPM-Repository

  • Angreifer luden seit August mehr als 100 Pakete zum Diebstahl von Zugangsdaten hoch, indem sie strukturelle Schwächen des NPM-Code-Repositorys ausnutzten
    • Die meisten Pakete wurden verbreitet, ohne entdeckt zu werden; die kumulierte Zahl der Downloads lag bei mehr als 86.000
  • Das Sicherheitsunternehmen Koi bezeichnete diesen Angriff als PhantomRaven-Kampagne und analysierte, dass eine bestimmte NPM-Funktion missbraucht wurde
    • Laut Koi befanden sich von den 126 bösartigen Paketen zum Zeitpunkt der Artikelerstellung noch etwa 80 weiterhin auf NPM

Die verwundbare Struktur von Remote Dynamic Dependencies (RDD)

  • RDD ist eine Funktion, die es Paketen erlaubt, Abhängigkeitscode dynamisch von externen Websites herunterzuladen
    • Normalerweise werden Abhängigkeiten über die vertrauenswürdige Infrastruktur von NPM bezogen, doch RDD erlaubt Downloads auch über unverschlüsselte Verbindungen wie HTTP
  • Die PhantomRaven-Angreifer konfigurierten dies so, dass Code von einer bösartigen URL heruntergeladen wurde, etwa http://packages.storeartifact.com/npm/unused-imports
    • Diese Abhängigkeiten sind für Entwickler und Security-Scanner unsichtbar und werden in den Paketinformationen als „0 Dependencies“ angezeigt
  • Durch die automatische Installationsfunktion von NPM werden solche „unsichtbaren“ Abhängigkeitscodes automatisch ausgeführt

Grenzen bei der Erkennung durch Security-Tools

  • Oren Yomtov von Koi sagte, PhantomRaven sei „ein Beispiel dafür, wie die blinden Flecken bestehender Sicherheitswerkzeuge raffiniert ausgenutzt werden“
    • RDD wird von statischen Analysewerkzeugen nicht erkannt
  • Dadurch konnten die Angreifer Sicherheitsprüfungen umgehen und bösartigen Code verbreiten

Zusätzliche Risikofaktoren

  • Koi erklärt, dass über RDD geladene Abhängigkeiten bei jeder Installation erneut vom Server der Angreifer heruntergeladen werden
    • Da es weder Caching noch Versionsverwaltung gibt, kann selbst bei demselben Paket je nach Installationszeitpunkt unterschiedlicher bösartiger Code eingeschleust werden
  • Diese Struktur dynamischer Downloads erschwert die Integritätsprüfung von Paketen

Struktur und Hintergrund von NPM

  • NPM ist ein Paketmanager für JavaScript, verwaltet von npm, Inc., einer GitHub-Tochter
    • Er ist der Standard-Paketmanager für Node.js und besteht aus einem Kommandozeilen-Client und der npm registry
    • In der Registry werden öffentliche sowie kostenpflichtige private Pakete gespeichert; sie können über die Website durchsucht werden
  • Der Vorfall gilt als Beispiel dafür, dass die automatische Abhängigkeitsverwaltung von NPM für Angriffe missbraucht werden kann

Sonstige Erwähnungen

  • Am Ende des Artikels wird die Ansicht erwähnt, dass unnötige Ausführung von JavaScript blockiert werden sollte
    • Zugleich wird darauf hingewiesen, dass dieser Angriff sogar essenziellen JavaScript-Code missbrauchte

Noch keine Kommentare.

Noch keine Kommentare.