# Włamanie do Axios: jak 3 godziny kompromitacji konta dotknęły 174 tys. pakietów
30 marca 2026 roku atakujący, który uzyskał dostęp do konta maintainer'a Axios, wydał szkodliwe wersje biblioteki, dotykające około 174 000 zależnych pakietów. Atak, trwający zaledwie trzy godziny, stał się możliwy z powodu ślepych punktów w procesach zarządzania zależnościami i narzędziach bezpieczeństwa. Rozbieramy, jak do tego doszło i jak się chronić.
Mechanika ataku: od kompromitacji konta do RAT
Incydent zaczął się od zmiany adresu e-mail konta jasonsaayman (głównego maintainer'a Axios) na [email protected] oraz przejścia z zaufanego OIDC-pipeline'u na bezpośredni CLI-publish. Te zmiany automatycznie zarejestrował Elastic Security Labs dzięki monitorowaniu łańcucha dostaw. Szkodliwe wersje Axios 1.14.1 (tag latest) i 0.30.4 (tag legacy) zawierały podejrzaną zależność plain-crypto-js.
Atakujący zastosował dwuetapowy schemat:
- [email protected] — legitna wersja opublikowana wcześniej, by stworzyć historię
- [email protected] — szkodliwa wersja z postinstall-hookiem ładującym RAT z serwera sfrclak[.]com:8000
Kluczową cechą ataku było brak modyfikacji kodu źródłowego Axios. Zamiast tego atakujący dodał szkodliwy pakiet do listy zależności. RAT okazał się cross-platformowy, zapewniając pełny zdalny dostęp do macOS, Windows i Linux po nawiązaniu połączenia z serwerem C2.
Dlaczego standardowe narzędzia bezpieczeństwa zawiodły
Większość CI/CD-pipeline'ów nie wykryła zagrożenia z kilku powodów. NPM Audit, porównujący pakiety z bazą CVE, zwrócił status clean, ponieważ nowe wersje nie zdążyły trafić do znanych luk. Narzędzie z założenia nie służy do wykrywania świeżych ataków poprzez kompromitację kont — działa tylko z znanymi CVE.
Krytycznym błędem w procesach wielu zespołów jest brak blokowania wersji zależności. Przy użyciu ^1.x.x pipeline automatycznie pobiera latest, co doprowadziło do załadowania szkodliwej wersji w oknie 3 godzin. Zgodnie z OpenSSF Scorecard 2024, mniej niż 20% projektów stosuje zablokowane hashe zależności. Tranzytywne zależności (pakiety potrzebne tylko na etapie budowania) pozostają poza zasięgiem sprawdzeń, mimo potencjalnego zagrożenia.
Nowe zasady bezpieczeństwa łańcucha dostaw
Incydent z Axios ujawnił systemową lukę w tradycyjnym modelu bezpieczeństwa. Wcześniej odpowiedzialność dzielono między team leadów (wybór modułów), DevOps (dostawa) i specjalistów ds. bezpieczeństwa (SAST/DAST). Ale nikt nie odpowiadał za monitorowanie integralności kont maintainer'ów. Zaufanie do podpisanych pakietów okazało się związane z konkretnym kontem, które da się skompromitować.
Skala luki wynika z dominacji Axios w ekosystemie: 100 mln pobrań tygodniowo i 174 000 zależnych pakietów. Typowy projekt Node.js zawiera 40–60 bezpośrednich zależności, z których każda ciągnie 5–7 tranzytywnych. Łącznie to ponad 200 pakietów z oddzielnymi właścicielami kont, których bezpieczeństwo często jest ignorowane.
Rola AI w eskalacji zagrożeń
Współczesne ataki wyróżniają się wsparciem państwowym i wykorzystaniem AI. W tym przypadku atrybucja wskazuje na północnokoreańskiego threat actora (Google Cloud Threat Intelligence). Sieci neuronowe przyspieszają wyszukiwanie luk w open source: to, co kiedyś zajmowało godziny, teraz analizuje się w minuty.
Według Google Project Zero (2023), medianowy czas od wykrycia luki do łatki wynosi 25 dni. AI skraca czas poszukiwań luk po stronie atakujących szybciej, niż rosną zespoły bezpieczeństwa. Liczba niewykrytych luk w open source liczy się w milionach, tworząc rozległe pole do eksploatacji.
Skuteczne środki ochrony
Atak zatrzymał nie standardowe bezpieczeństwo, lecz behawioralny monitoring Elastic Security Labs. Aby zapobiec podobnym incydentom, w CI/CD należy wdrożyć:
- Zablokowane wersje — użycie
npm install --frozen-lockfilei commit package-lock.json - Sprawdzanie podpisów — polecenie
npm audit signaturesdo walidacji proweniencji SLSA - SAST na zależności — statyczna analiza zainstalowanych pakietów
- Automatyczne alerty — Dependabot do śledzenia CVE
- Meta-monitoring — analiza zmian e-maili, metod publikacji i historii zależności
Duże firmy już wdrażają te praktyki w DevSecOps. Małe projekty, stanowiące większość poszkodowanych pakietów, często je ignorują z powodu złożoności i braku zasobów.
Co najważniejsze
- Podpisy rozstrzygają — Sprawdzanie kryptograficznych podpisów (
npm audit signatures) natychmiast wykryje zmianę metody publikacji z OIDC na CLI. - Tranzytywne zależności to zagrożenie — Pakiety nie trafiające do produkcji nadal mogą uruchomić szkodliwy kod na etapie budowania.
- Behawioralna analiza skuteczniejsza od CVE — Monitorowanie metadanych (e-mail, historia publikacji) jest ważniejsze niż sprawdzanie baz luk w przypadku świeżych ataków.
- Blokowanie wersji kluczowe — Rezygnacja z ^1.x.x zapobiegnie automatycznemu pobraniu szkodliwego latest.
Incydent z Axios stał się punktem zwrotnym: obwód bezpieczeństwa obejmuje teraz obcy kod i konta maintainer'ów. Ci, którzy nie dostosują procesów, pozostaną podatni na celowane ataki przez łańcuch dostaw. Czas reakcji skraca się do godzin — ochrona musi działać automatycznie i na wszystkich etapach.
— Editorial Team
Brak komentarzy.