npm v12 härtet die standardmäßig erweiterten Sicherheitsskripte, die Ihren Build brechen könnten, wenn Sie nicht jedes Skript autorisieren

Autor: Veröffentlicht 3 min de lectura 294 Lesen

Die Bilder in diesem Artikel wurden mit künstlicher Intelligenz erstellt. So veröffentlichen wir

GitHub und das npm Team haben beschlossen, das Standardverhalten des Paket-Installationsgerätes zu verschärfen: in npm v12 Die Installationsskripte werden standardmäßig deaktiviert und die Auflösung von Einheiten aus entfernten Git- oder URL-Repositorien ist eingeschränkt, es sei denn, der Entwickler hat ausdrücklich genehmigt. Die Maßnahme zielt darauf ab, eine der am meisten genutzten Routen bei Angriffen auf die Lieferkette zu schließen: die automatische Ausführung des Codes während der "npm install" mittels Life Cycle Haken (vorinstallieren, installieren, nachinstallieren und vorbereiten).

Die Veränderung reagiert auf ein reales und gemeinsames Risiko: ein engagiertes Paket an jedem beliebigen Punkt der Übergangskette kann Code auf der Entwicklermaschine oder in einem CI-Läufer laufen. Viele Projekte, Bibliotheken und Tools hängen von Skripten ab, die bei der Installation von Abhängigkeiten automatisch ausgeführt werden, und das Standard-Vertrauen ist das, was Angreifer verwendet haben, um Back-Türen einzufügen oder schädliche Nutzlasten in Entwicklungs- und Bereitstellungsumgebungen auszuführen.

npm v12 härtet die standardmäßig erweiterten Sicherheitsskripte, die Ihren Build brechen könnten, wenn Sie nicht jedes Skript autorisieren
Bild generiert mit IA.

Die praktischen Auswirkungen sind doppelt. Zum einen, Verbesserung der Sicherheit durch die ausdrückliche Genehmigung der Ausführung von Skripten und der Auflösung nicht registrierter Quellen; Gebäude- und Entwicklungsflüsse die heute von automatischen nativen Kompilationen (Node-gyp) abhängen, Skripte von Git Referenzen vorbereiten, oder Pakete von entfernten Tarballs installiert. Ausrüstungen und Projekte, die Einheiten mit nativen Zusammenstellungen oder direkten Verweisen auf Repositorien verwenden, müssen angepasst werden.

GitHub empfiehlt die Vorbereitung bereits durch Aktualisierung auf npm 11.16.0 oder mehr, die normale Installation und Überprüfung der Warnungen, die npm zeigt. Das Werkzeug bietet einen Genehmigungsstrom mit npm genehmigt, die es erlaubt, die Trust-Skripte zu überprüfen, zu genehmigen und die Änderungen des Pakets zu kompromittieren. json, so dass nur die zugelassenen nach bis zu npm v12 weiter laufen. Es ist eine Gelegenheit, bewusst zu prüfen, welche Pakete wirklich Code vor Ort ausführen müssen.

Als praktische Maßnahmen, um die Auswirkungen zu reduzieren und die Sicherheit Ihrer Lieferkette zu verbessern, beachten Sie: Teständerungen in einem isolierten Zweig und in CI-Läufern vor der Migration; aktualisieren CI-Bilder oder Container, um die neue Version von npm enthalten; vermeiden Git oder Remote-Abhängigkeiten ohne Rechtfertigung und, falls erforderlich, ausdrücklich autorisieren Sie sie; priorisieren Sie die Verwendung von Schloss-Dateien und Festversionen; und behandeln Sie mit besonderer Sorgfalt die Pakete, die native Block-Compilation machen,

npm v12 härtet die standardmäßig erweiterten Sicherheitsskripte, die Ihren Build brechen könnten, wenn Sie nicht jedes Skript autorisieren
Bild generiert mit IA.

Darüber hinaus integriert es ergänzende Kontrollen: Es ermöglicht die Analyse von Abhängigkeiten und Warnungen (z.B. Dependabot oder Snyk) verdächtige Änderungen zu erkennen, es erfordert eine menschliche Überprüfung für relevante Pull-Anfragen, es ermöglicht 2FA und Publishing-Politiken im npm-Register für die Betreuer, und es hält Beweise für Herkunft mit SBOM und Unterschriften, wenn möglich. GitHubs gute Praxisdokumentation zur Supply Chain Security ist ein guter Ausgangspunkt: https: / / docs.github.com / en / code-security / Supply-chain-security.

Um genau zu verstehen, welche Skripte und Verhaltensweisen betroffen sein werden, ist es angebracht, die offizielle npm-Dokumentation über Skripte und Lifecycle-Hooks zu lesen; dies hilft, in Ihrem Baum von Abhängigkeiten zu identifizieren, in denen Skripte ausgeführt werden und welche Sie explizit zustimmen müssen: https: / / docs.npmjs.com / cli / v12 / using-npm / scripts. Passen Sie das Voreinstellungsfenster an, um die Angriffsfläche zu überprüfen und zu reduzieren: weniger zuverlässige Standardskripte = weniger unberechtigtes Ausführungsrisiko.

Kurz gesagt, npm v12 stellt einen signifikanten Fortschritt beim Schutz der JavaScript-Versorgungskette dar, indem eine Erweiterung des tacit Vertrauens in eine explizite Genehmigung umgewandelt wird. Die Teams, die diese Maßnahmen mit zusätzlicher Planung, Prüfung und Kontrolle ergreifen, reduzieren ihre Exposition gegenüber Supply-Chain-Angriffen und vermeiden unerwartete Unterbrechungen in ihren Konstruktions- und Bereitstellungsprozessen.

Deckung

Verwandte Artikel

Weitere Neuigkeiten zum selben Thema.