Atak na łańcuch dostaw npm: 639 pakietów skompromitowanych w godzinę. Jak się bronić?
Nowa fala ataku Shai-Hulud skompromitowała w godzinę 639 pakietów npm, w tym popularne biblioteki @antv. Malware kradnie tokeny i certyfikaty, a jego ruch jest nie do odróżnienia od legalnego. Sprawdź, czy jesteś bezpieczny.
„Na wire to end-to-end-encrypted traffic na TCP/443, nie do odróżnienia od legalnego ruchu Session na poziomie sieci. Nie ma tradycyjnego punktu C2 do blokowania przez hostname lub IP” – tak badacze z Endor Labs opisują nową falę ataku na łańcuch dostaw oprogramowania, która w ciągu godziny skompromitowała setki pakietów w repozytorium npm. To nie kolejny wyciek haseł – to atak uderzający w sam proces powstawania aplikacji, a jego skutki mogą odczuć zarówno programiści, jak i firmy korzystające z gotowych bibliotek.
Co się stało? Godzina chaosu w npm
19 maja 2026 roku, między 01:56 a 02:56 UTC, nieznani sprawcy opublikowali 639 złośliwych wersji 323 unikalnych pakietów w repozytorium npm. Jak podaje BleepingComputer, atak rozpoczął się od przejęcia konta „atool”, które zarządza pakietami z rodziny @antv – popularnych bibliotek do wizualizacji danych, wykresów i map. Wśród skompromitowanych znalazły się m.in. echarts-for-react, @antv/g2, @antv/g6, timeago.js i size-sensor. Część z tych pakietów nie była aktualizowana od lat, co ułatwiło atakującym przejęcie kont.
Jak działa złośliwe oprogramowanie Shai-Hulud?
To nie jest zwykły wirus. Nowa wersja malware’u, nazwana Shai-Hulud, to zaawansowane narzędzie do kradzieży danych z środowisk programistycznych i CI/CD. Po zainstalowaniu skompromitowanego pakietu na komputerze programisty uruchamia się silnie zaciemniony plik index.js, który próbuje wykraść tokeny GitHub, npm, chmurowe, Kubernetes, Vault, Docker, bazy danych i SSH. Celem są zarówno stacje robocze deweloperów, jak i systemy CI/CD: GitHub Actions, GitLab CI, Jenkins, Azure DevOps, CircleCI, Vercel i Netlify.
Skradzione dane są serializowane, kompresowane Gzip, szyfrowane AES-256-GCM i dodatkowo owijane RSA-OAEP, co utrudnia ich przechwycenie w sieci. Głównym kanałem eksfiltracji jest sieć P2P Session, a konkretnie endpoint filev2.getsession[.]org/file/. Jak wskazują badacze, ruch ten jest szyfrowany end-to-end na porcie TCP/443 i nie do odróżnienia od legalnego ruchu aplikacji Session. To czyni tradycyjne blokowanie adresów IP czy domen nieskutecznym.
Nowa jakość: podpisane złośliwe oprogramowanie
Najbardziej niepokojącą cechą tej kampanii jest zdolność do generowania ważnych poświadczeń Sigstore. Atakujący wykorzystują skompromitowane tokeny OIDC z środowisk CI, by składać fałszywe atestacje do serwerów Fulcio i Reko. W efekcie złośliwe pakiety npm przechodzą standardowe kontury pochodzenia (provenance) i wyglądają jak legalne. To samo zjawisko zaobserwowano wcześniej w ataku na pakiety TanStack, przypisywanym grupie TeamPCP. Praktyczna konsekwencja: samo sprawdzenie, czy pakiet ma podpisaną atestację, nie gwarantuje już bezpieczeństwa.
Kto jest zagrożony i co robić?
Atak dotyczy przede wszystkim programistów i firm, które używają skompromitowanych pakietów w swoich projektach. Jeśli w ciągu ostatnich dni pobrałeś któryś z wymienionych pakietów (np. @antv/g2, timeago.js, size-sensor), natychmiast:
- usuń lub przywróć wersję sprzed 18 maja 2026 roku,
- odwołaj i zmień wszystkie tokeny GitHub, npm, chmurowe i SSH, które mogły być przechowywane na tej maszynie,
- sprawdź pliki konfiguracyjne VS Code i Claude Code – malware instaluje backdoory w .vscode/tasks.json i ~/.claude/settings.json,
- przejrzyj repozytoria GitHub pod swoim kontem – atakujący publikują skradzione dane w nowych repozytoriach z plikiem Readme zawierającym odwrócony napis „Shai-Hulud: Here We Go Again”.
Firmy powinny dodatkowo przejrzeć swoje środowiska CI/CD pod kątem nietypowego ruchu na porcie TCP/443 do nieznanych endpointów oraz wdrożyć zasadę pinowania wersji i weryfikacji sum kontrolnych w plikach lockfile. Jak zaznaczają badacze z Socket, Endor Labs i Aikido Security, lista wskaźników kompromitacji (IoC) jest dostępna i powinna być wykorzystana przez zespoły bezpieczeństwa.
Co dalej?
Kampania Shai-Hulud trwa od września 2025 roku i regularnie uderza w npm, PyPI i Composer. Kod malware’u został niedawno wycieknięty przez grupę TeamPCP, co oznacza, że ataki mogą być przeprowadzane przez różnych aktorów. Najważniejsza lekcja dla branży: zaufanie do podpisów cyfrowych i atestacji nie wystarczy. Konieczne jest wielowarstwowe podejście do bezpieczeństwa łańcucha dostaw, w tym weryfikacja sum kontrolnych, ograniczenie zaufania do zewnętrznych pakietów i regularne audyty środowisk deweloperskich.


