EilmeldungNiedrig

NPMs Shai-Hulud-Lieferkettenabwehr durch Git-Abhängigkeiten umgangen

3 Min. LesezeitQuelle: BleepingComputer

Sicherheitsforscher decken kritische Schwachstellen in NPMs Lieferkettenabwehr auf: Angreifer nutzen Git-Abhängigkeiten, um Schutzmaßnahmen nach den Shai-Hulud-Angriffen zu umgehen.

NPMs Shai-Hulud-Sicherheitsmaßnahmen durch Git-Abhängigkeiten umgangen

Sicherheitsforscher haben kritische Schwachstellen in den Lieferkettenabwehrmechanismen von NPM identifiziert, die nach den hochkarätigen Shai-Hulud-Angriffen eingeführt wurden. Diese ermöglichen es Angreifern, Schutzmaßnahmen durch die Ausnutzung von Git-Abhängigkeiten zu umgehen. Die Ergebnisse verdeutlichen anhaltende Risiken im Abhängigkeitsmanagement des JavaScript-Ökosystems.

Wichtige Erkenntnisse

Im Jahr 2021 implementierte NPM verstärkte Sicherheitskontrollen als Reaktion auf die Shai-Hulud-Lieferkettenangriffe, bei denen bösartige Pakete nachgelagerte Anwendungen kompromittierten. Forscher haben nun jedoch nachgewiesen, dass Angreifer diese Abwehrmechanismen umgehen können, indem sie Git-basierte Abhängigkeiten ausnutzen – Pakete, die direkt in Git-Repositories und nicht im NPM-Registry gehostet werden.

Im Gegensatz zu herkömmlichen NPM-Paketen unterliegen Git-Abhängigkeiten nicht denselben Sicherheitsüberprüfungen, Signaturverifizierungen oder Metadatenvalidierungen. Diese Lücke schafft einen blinden Fleck, der es Angreifern ermöglicht:

  • Bösartigen Code in Abhängigkeiten einzuschleusen, ohne entdeckt zu werden.
  • Vertrauensbeziehungen in Open-Source-Projekten auszunutzen.
  • Automatisierte Sicherheitsprüfungen von NPM zu umgehen, einschließlich Paketsignierung und Herkunftsverifizierung.

Technische Details

NPMs Abwehrmaßnahmen nach Shai-Hulud umfassen:

  • Paketsignierung, um die Authentizität des Publishers zu überprüfen.
  • Herkunftsprüfungen (Provenance Checks), um die Ursprünge von Paketen zu validieren.
  • Automatisierte Malware-Scans für im Registry gehostete Pakete.

Git-Abhängigkeiten – referenziert über URLs in der package.json (z. B. git+https://github.com/user/repo.git) – werden jedoch nicht durch diese Schutzmaßnahmen verarbeitet. Angreifer können:

  1. Bösartige Pakete in öffentlichen oder privaten Git-Repositories hosten.
  2. Entwickler durch Typosquatting oder Social Engineering täuschen, um diese einzubinden.
  3. Beliebigen Code während der Installation ausführen, was Build-Umgebungen kompromittiert.

Auswirkungen

Die Schwachstelle setzt Organisationen folgenden Risiken aus:

  • Lieferkettenangriffen, die auf CI/CD-Pipelines abzielen.
  • Datenexfiltration oder Hintertürinstallation über kompromittierte Abhängigkeiten.
  • Reputationsschäden für Projekte, die unwissentlich bösartigen Code verbreiten.

Git-Abhängigkeiten sind in Unternehmens- und Open-Source-Projekten weit verbreitet, was das Risiko verstärkt. Hochkarätige Bibliotheken oder Tools mit transitiven Abhängigkeiten zu Git-gehosteten Paketen könnten Bedrohungen unbeabsichtigt weiterverbreiten.

Empfehlungen

Sicherheitsteams und Entwickler sollten:

  1. package.json-Dateien auf Git-Abhängigkeiten prüfen und diese, wo möglich, durch Registry-gehostete Alternativen ersetzen.
  2. Abhängigkeitsscanning-Tools (z. B. GitHub Dependabot, Snyk) implementieren, um bösartige Git-Referenzen zu erkennen.
  3. Strenge Code-Review-Richtlinien für Git-basierte Abhängigkeiten durchsetzen, einschließlich manueller Validierung der Repository-Quellen.
  4. NPMs --omit=dev-Flag während der Installation verwenden, um Entwicklungsabhängigkeiten auszuschließen, die Risiken bergen könnten.
  5. Auf anomalen Verhalten in Build-Systemen achten, wie unerwartete Netzwerkanfragen oder Dateimodifikationen.

Nächste Schritte

NPM hat bisher noch keinen Patch oder eine Lösung für dieses Problem veröffentlicht. Organisationen werden aufgefordert, Defense-in-Depth-Strategien zu übernehmen, darunter:

  • Isolierte Build-Umgebungen, um die Auswirkungen kompromittierter Abhängigkeiten zu begrenzen.
  • Erstellung einer Software-Stückliste (SBOM), um die Herkunft von Abhängigkeiten nachzuverfolgen.
  • Zero-Trust-Prinzipien für das Abhängigkeitsmanagement, bei dem externer Code standardmäßig als nicht vertrauenswürdig behandelt wird.

Die Entdeckung unterstreicht die Notwendigkeit kontinuierlicher Wachsamkeit bei der Sicherung von Open-Source-Lieferketten, insbesondere da Angreifer ihre Taktiken ändern, um übersehene Angriffsflächen auszunutzen.

Teilen

TwitterLinkedIn