Przejdź do treści
Cyberataki

GitHub zmienia reguły npm, by zablokować ataki na łańcuch dostaw. Co to oznacza dla programistów?

Nadchodząca wersja npm 12 wprowadza zmiany, które mogą znacząco ograniczyć ryzyko ataków na łańcuch dostaw. GitHub zapowiada, że automatyczne uruchamianie skryptów i pobieranie zależności z zewnętrznych źródeł będzie wymagać jawnej zgody.

3 min read
An abstract composition of a tangled web of colorful cables and code fragments being cut by a pair of glowing scissors, with a shield symbol hovering above. No text or readable characters.

Ataki na łańcuch dostaw oprogramowania to jedno z najpoważniejszych zagrożeń dla współczesnych zespołów developerskich. GitHub, właściciel repozytorium pakietów npm, ogłosił właśnie serię zmian w nadchodzącej wersji npm 12, które mają radykalnie ograniczyć możliwość automatycznego wykonywania złośliwego kodu podczas instalacji zależności. Dla programistów i administratorów oznacza to konieczność przygotowania się na nowe reguły, ale przede wszystkim realne zwiększenie bezpieczeństwa projektów.

Co się zmienia w npm 12?

Jak informuje GitHub w oficjalnym komunikacie, głównym celem zmian jest wyeliminowanie automatycznego uruchamiania skryptów i pobierania zależności z niepewnych źródeł. Od wersji 12 polecenie npm install nie będzie domyślnie wykonywać skryptów preinstall, install ani postinstall z zależności, chyba że zostaną one wyraźnie zatwierdzone. To samo dotyczy kompilacji modułów natywnych przez node-gyp oraz skryptów prepare pochodzących z zależności Git, lokalnych plików i linków.

Dodatkowo npm 12 przestanie automatycznie pobierać zależności z repozytoriów Git – zarówno bezpośrednie, jak i przechodnie. GitHub wskazuje, że ta zmiana usuwa ścieżkę wykonania kodu, w której plik .npmrc z zależności Git mógł podmieniać używany plik wykonywalny Git, nawet gdy skrypty instalacyjne były wyłączone. Podobne ograniczenie dotyczy zależności instalowanych ze zdalnych adresów URL, takich jak archiwa HTTPS.

Dlaczego to ważne dla bezpieczeństwa?

Ataki na łańcuch dostaw w ekosystemie npm nie są nowością. W ostatnich latach wielokrotnie dochodziło do incydentów, w których złośliwe pakiety wykorzystywały automatyczne wykonywanie skryptów podczas instalacji. GitHub wymienia konkretne przykłady: kampanie złośliwych skryptów preinstall/postinstall wymierzone w pakiety eslint-config-prettier, pakiety Toptal’s Picasso, a także dziesiątki pakietów kradnących dane. Do tego dochodzą ataki wykorzystujące zależności Git, udokumentowane w ramach kampanii Shai-Hulud.

Zmiany w npm 12 mają bezpośrednio przeciwdziałać tym technikom. Jak podkreśla GitHub, nowe domyślne ustawienia „mogłyby zakłócić kilka technik ataków stosowanych w ostatnich atakach na łańcuch dostaw”. Dla zespołów developerskich oznacza to, że nawet jeśli w repozytorium pojawi się złośliwy pakiet, jego automatyczne uruchomienie podczas npm install nie będzie już możliwe bez jawnej zgody.

Jak przygotować się na zmiany?

GitHub zaleca programistom, aby jeszcze przed premierą npm 12 przetestowali swoje projekty. W tym celu warto zaktualizować npm do wersji 11.16.0 lub nowszej, która wyświetla ostrzeżenia o wszystkich działaniach, które w wersji 12 przestaną działać domyślnie. Dzięki temu podczas normalnego uruchamiania instalacji można zidentyfikować zależności lub przepływy pracy, które będą wymagać jawnego zatwierdzenia.

Projekty polegające na automatycznym wykonywaniu skryptów lub pobieraniu zależności z Git będą musiały wyraźnie wyrazić zgodę na te działania przed aktualizacją do npm 12. GitHub uruchomił również dyskusję społecznościową, w której programiści mogą dzielić się swoimi sugestiami dotyczącymi nadchodzących zmian.

Co dalej?

Premiera npm 12 zapowiedziana jest na lipiec 2026 roku. Wprowadzone zmiany są odpowiedzią na rosnące zagrożenie ze strony ataków na łańcuch dostaw, które w ostatnich latach dotknęły zarówno małe projekty, jak i duże korporacje. Dla polskich firm i zespołów developerskich korzystających z ekosystemu Node.js to sygnał, aby już teraz przejrzeć swoje repozytoria i przygotować się na nowe reguły. W dłuższej perspektywie zmiany te mogą znacząco podnieść poziom bezpieczeństwa całego łańcucha dostaw oprogramowania.

Redakcja sekuret.pl

Redakcja sekuret.pl

AUTHOR