Kampania PolinRider: hakerzy przejmują konta GitHub, by infekować pakiety. Co robić?
Atakujący kompromitują konta maintainerów na GitHubie i publikują złośliwe wersje pakietów w npm, Go, Packagist i Chrome. Deweloperzy i zespoły IT powinni natychmiast sprawdzić swoje zależności.
Atakujący kompromitują konta maintainerów na GitHubie i publikują złośliwe wersje pakietów w ekosystemach npm, Go, Packagist oraz Chrome. Deweloperzy i zespoły IT powinni natychmiast sprawdzić swoje zależności i zaktualizować procedury bezpieczeństwa.
Jak działa kampania PolinRider?
Jak wynika z analizy opublikowanej przez GBHackers, kampania PolinRider to szeroko zakrojony atak na łańcuch dostaw oprogramowania. Operatorzy – powiązani z północnokoreańską grupą Contagious Interview / Famous Chollima – przejmują konta GitHub maintainerów, a następnie modyfikują legalne repozytoria, wstrzykując ukryte ładunki złośliwego kodu.
W wyniku śledztwa zidentyfikowano 162 złośliwe artefakty w 108 unikalnych pakietach i rozszerzeniach. Obejmują one pakiety npm, moduły Go, pakiety Packagist (PHP) oraz rozszerzenie Chrome. Atakujący wykorzystują różne techniki, by ukryć złośliwy kod przed wzrokiem deweloperów.
Techniki ukrywania i wykonywania kodu
Badacze z Socket opisali dwie główne metody maskowania payloadów. Pierwsza polega na umieszczeniu jednoliniowego ładunku w pliku, który jest „wypychany” poza domyślny obszar widoczny w edytorze – kod staje się widoczny dopiero po przewinięciu w prawo. Druga metwa to kamuflowanie payloadów jako fałszywe pliki czcionek .woff2.
Wykonanie złośliwego kodu często uruchamiane jest automatycznie przez konfigurację VS Code. Atakujący dodają do repozytorium plik .vscode/tasks.json z regułą "runOn": "folderOpen". Oznacza to, że gdy deweloper otworzy projekt w Visual Studio Code, ukryty skrypt JavaScript zostaje wykonany bez żadnego ostrzeżenia.
Przepisywanie historii Git – jak oszukują kontrolę
Kolejnym elementem taktyki PolinRider jest przepisywanie historii Git. Operatorzy wykonują force push i antydatują commity, by złośliwe zmiany wyglądały na starsze i nieszkodliwe. Jak wskazują analitycy, repozytorium na GitHubie może wyglądać na niezmienione, podczas gdy zakładka Activity ujawnia niedawne przepisanie historii.
W przypadku konta Xpos587 badacze zaobserwowali, że wiele niezwiązanych ze sobą repozytoriów zostało zmodyfikowanych w wąskim oknie czasowym 23 czerwca 2026 roku. Po modyfikacjach opublikowano złośliwe wersje modułów Go, co wskazuje na przejęcie konta i dostęp do danych uwierzytelniających do rejestru.
Co atakujący mogą zrobić po infekcji?
Po uruchomieniu skryptu JavaScript ładuje on zaszyfrowany payload drugiego etapu z publicznych usług blockchain (TRON, Aptos, BNB Smart Chain). Kod jest odszyfrowywany przy użyciu wbudowanego klucza XOR i wykonywany przez eval(). Wśród zaobserwowanych następczych ładunków znajdują się DEV#POPPER i OmniStealer – narzędzia do kradzieży poświadczeń, portfeli kryptowalut oraz zdalnego dostępu.
Kampania ma charakter modułowy, co oznacza, że operatorzy mogą w każdej chwili podmienić dostarczane złośliwe oprogramowanie. Każde środowisko deweloperskie, które pobrało zainfekowany pakiet, należy traktować jako potencjalnie skompromitowane.
Jak się bronić? Praktyczne kroki dla zespołów IT
Jeśli Twoja organizacja korzysta z podejrzanych pakietów lub zauważyła nietypową aktywność w repozytoriach, należy podjąć następujące działania:
- Sprawdź historię Git – przejrzyj zakładkę Activity w repozytoriach, szukając force push i antydatowanych commitów.
- Zrewiduj konfigurację VS Code – poszukaj plików
.vscode/tasks.jsonz regułą"runOn": "folderOpen". - Usuń zainfekowane pakiety – odtwórz środowisko z zaufanych plików lockfile (np. package-lock.json, go.sum).
- Rotuj wszystkie sekrety – klucze API, tokeny GitHub, hasła SSH i dane uwierzytelniające do chmury muszą zostać zmienione z czystej maszyny.
- Monitoruj publikacje w rejestrach – porównaj historię publikacji pakietów z aktywnością w repozytorium. Nieoczekiwane wydania to czerwona flaga.
Kampania PolinRider pokazuje, że ataki na łańcuch dostaw wymagają od deweloperów większej czujności. Regularny audyt zależności, ograniczenie uprawnień kont GitHub i stosowanie narzędzi do skanowania pakietów (np. Socket, Snyk) mogą znacząco zmniejszyć ryzyko. Warto śledzić dalsze raporty dotyczące tej kampanii, ponieważ operatorzy prawdopodobnie będą dostosowywać swoje metody.


