NPMs Shai-Hulud-Lieferkettenabwehr durch Git-Abhängigkeiten umgangen
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:
- Bösartige Pakete in öffentlichen oder privaten Git-Repositories hosten.
- Entwickler durch Typosquatting oder Social Engineering täuschen, um diese einzubinden.
- 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:
package.json-Dateien auf Git-Abhängigkeiten prüfen und diese, wo möglich, durch Registry-gehostete Alternativen ersetzen.- Abhängigkeitsscanning-Tools (z. B. GitHub Dependabot, Snyk) implementieren, um bösartige Git-Referenzen zu erkennen.
- Strenge Code-Review-Richtlinien für Git-basierte Abhängigkeiten durchsetzen, einschließlich manueller Validierung der Repository-Quellen.
- NPMs
--omit=dev-Flag während der Installation verwenden, um Entwicklungsabhängigkeiten auszuschließen, die Risiken bergen könnten. - 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.