
Co znajdziesz w tym artykule?
Wprowadzenie do problemu / definicja
Ataki na łańcuch dostaw oprogramowania należą dziś do najpoważniejszych zagrożeń w cyberbezpieczeństwie. Ich istota polega na wykorzystaniu zaufanych komponentów, bibliotek lub procesów deweloperskich do przemycenia złośliwego kodu do środowisk wielu organizacji jednocześnie.
Najnowszy incydent dotyczy biblioteki Axios w ekosystemie NPM. Po przejęciu konta maintainera opublikowano złośliwe wersje pakietu, które mogły zostać automatycznie pobrane przez procesy budowania i wdrażania. Wśród organizacji, które potwierdziły wpływ zdarzenia, znalazło się OpenAI, gdzie trojanizowana zależność została uruchomiona w workflow GitHub Actions odpowiedzialnym za podpisywanie aplikacji dla macOS.
W skrócie
Incydent rozpoczął się 31 marca 2026 roku, gdy do repozytorium NPM trafiły złośliwe wersje pakietu Axios. Kompromitacja polegała na dodaniu zależności zawierającej kod instalujący wieloplatformowego zdalnego trojana.
OpenAI poinformowało, że zainfekowana wersja biblioteki została pobrana i wykonana w workflow używanym do podpisywania aplikacji macOS. Naraziło to materiał kryptograficzny związany z code signingiem i notarization, choć firma nie potwierdziła nadużycia certyfikatu ani naruszenia danych użytkowników. Mimo braku dowodów kompromitacji produktów, organizacja zdecydowała się na rotację i odwołanie certyfikatu w ramach działań ostrożnościowych.
Kontekst / historia
Axios jest jedną z najczęściej używanych bibliotek JavaScript do obsługi żądań HTTP w aplikacjach webowych oraz środowiskach Node.js. Tak szerokie zastosowanie sprawia, że każda kompromitacja tego pakietu może mieć bardzo rozległe skutki, obejmujące zarówno środowiska deweloperskie, jak i pipeline’y CI/CD oraz systemy produkcyjne.
W omawianym przypadku napastnicy wykorzystali przejęte konto maintainera do opublikowania dwóch złośliwych wersji pakietu. Choć okno ekspozycji było ograniczone czasowo, wystarczyło, by złośliwy kod został automatycznie pobrany przez systemy realizujące standardowy proces instalacji zależności. Telemetria wskazywała aktywność malware na hostach z systemami Windows, Linux i macOS.
Dodatkowo kampanię powiązano z grupą UNC1069, kojarzoną z aktywnością przypisywaną Korei Północnej. To istotne, ponieważ tego typu aktorzy są znani zarówno z operacji szpiegowskich, jak i działań nastawionych na kradzież środków, poświadczeń oraz materiałów umożliwiających dalsze ataki na firmy technologiczne.
Analiza techniczna
Mechanizm ataku opierał się na publikacji złośliwych wersji Axios zawierających dodatkową zależność. Ta uruchamiała skrypt instalacyjny typu postinstall, którego zadaniem było pobranie i wykonanie kolejnego etapu infekcji. W praktyce oznaczało to, że zwykła instalacja pakietu mogła prowadzić do wykonania malware bez dodatkowej interakcji użytkownika.
Drugi etap infekcji miał charakter wieloplatformowego RAT-a. Złośliwe oprogramowanie realizowało rekonesans systemu, komunikowało się z infrastrukturą C2 i oczekiwało na dalsze polecenia operatora. Możliwe funkcje obejmowały zdalne wykonywanie poleceń, przeglądanie katalogów, analizę procesów, zbieranie informacji o hoście oraz uruchamianie dodatkowych ładunków. W środowiskach Windows zaobserwowano również mechanizmy utrwalania.
Najbardziej wrażliwy aspekt incydentu dotyczył OpenAI. Złośliwa wersja Axios została wykonana w workflow GitHub Actions związanym z podpisywaniem aplikacji dla macOS. Workflow miał dostęp do certyfikatu oraz materiałów wykorzystywanych do notarization aplikacji takich jak ChatGPT Desktop, Codex, Codex CLI i Atlas. Otwierało to ryzyko przejęcia materiału kryptograficznego używanego do budowania zaufania użytkowników końcowych.
OpenAI oceniło, że analiza czasu wykonania ładunku, sekwencji zadań i sposobu wstrzykiwania certyfikatu do joba wskazuje na niskie prawdopodobieństwo skutecznej eksfiltracji certyfikatu. Mimo to firma potraktowała go jako potencjalnie zagrożony. Dodatkowo ujawniono słabości konfiguracyjne: workflow korzystał z pływającego znacznika wersji zamiast przypięcia do konkretnego commita, a także nie stosował mechanizmu minimalnego wieku publikacji pakietów.
Konsekwencje / ryzyko
Najpoważniejszym zagrożeniem była możliwość wykorzystania certyfikatu code signing do podpisania złośliwego oprogramowania podszywającego się pod legalne aplikacje producenta. W ekosystemie macOS podpis cyfrowy i notarization są kluczowymi elementami modelu zaufania, dlatego przejęcie takiego materiału mogłoby ułatwić dystrybucję fałszywych instalatorów i zwiększyć skuteczność kampanii phishingowych.
Ryzyko nie kończy się jednak na samym podpisywaniu aplikacji. Kompromitacja runnerów CI/CD oraz hostów deweloperskich może prowadzić do kradzieży tokenów NPM, kluczy SSH, sekretów chmurowych, plików środowiskowych, kluczy API i innych poświadczeń. W praktyce atak na pojedynczy popularny pakiet open source może wywołać efekt domina obejmujący wiele organizacji.
W przypadku OpenAI incydent ma również wymiar operacyjny. Rotacja certyfikatu wymaga migracji użytkowników aplikacji macOS do wersji podpisanych nowym certyfikatem. Po 8 maja 2026 roku starsze wydania wybranych aplikacji mogą przestać otrzymywać aktualizacje, wsparcie albo działać prawidłowo, co pokazuje, że nawet ostrożnościowa reakcja bezpieczeństwa może generować realne koszty biznesowe.
Rekomendacje
Organizacje powinny traktować każdy system, który pobrał i uruchomił złośliwe wersje Axios, jako potencjalnie skompromitowany. Priorytetem musi być identyfikacja zagrożonych hostów, analiza artefaktów wykonania, weryfikacja połączeń sieciowych oraz ocena ewentualnej eksfiltracji sekretów. Jeżeli istnieją oznaki wykonania payloadu, najbezpieczniejszym rozwiązaniem może być odtworzenie systemu z zaufanego obrazu.
- przypinanie zależności do konkretnych, zweryfikowanych wersji oraz konsekwentne używanie lockfile;
- stosowanie deterministycznych instalacji w CI/CD zamiast dynamicznego rozwiązywania zależności;
- ograniczanie lub blokowanie skryptów instalacyjnych tam, gdzie jest to możliwe;
- wprowadzenie opóźnienia akceptacji nowo opublikowanych pakietów, aby ograniczyć ryzyko pobrania świeżo opublikowanego malware;
- rezygnacja z długowiecznych tokenów na rzecz krótkotrwałych mechanizmów federacyjnych;
- przypinanie akcji i elementów pipeline’u do konkretnych commitów zamiast tagów;
- segmentacja środowisk buildowych i minimalizacja dostępu do sekretów.
Niezbędna jest również natychmiastowa rotacja wszystkich poświadczeń, do których zagrożony host lub runner mógł mieć dostęp. Dotyczy to w szczególności kluczy SSH, tokenów rejestrów pakietów, sekretów CI/CD, poświadczeń chmurowych, kluczy API oraz materiałów kryptograficznych używanych do podpisywania oprogramowania. Równolegle warto monitorować nietypowe procesy potomne uruchamiane przez menedżery pakietów, komunikację do nieznanych domen C2 oraz anomalie w procesach notarization i code signing.
Podsumowanie
Atak na Axios pokazuje, że kompromitacja pojedynczego, szeroko używanego komponentu open source może szybko przełożyć się na incydenty w środowiskach o bardzo wysokiej wartości, w tym w pipeline’ach odpowiedzialnych za podpisywanie oprogramowania. W przypadku OpenAI nie potwierdzono kradzieży danych użytkowników ani nadużycia certyfikatu, jednak samo wykonanie złośliwego pakietu w workflow podpisującym aplikacje macOS uzasadniało zdecydowaną reakcję kryzysową.
To zdarzenie przypomina, że bezpieczeństwo łańcucha dostaw musi obejmować nie tylko analizę zależności, ale także twarde zabezpieczenie procesów publikacji, budowania i podpisywania. Organizacje, które nadal polegają na pływających wersjach, szerokich uprawnieniach w CI/CD i długowiecznych sekretach, pozostają szczególnie narażone na podobne incydenty w przyszłości.
Źródła
- SecurityWeek — https://www.securityweek.com/openai-impacted-by-north-korea-linked-axios-supply-chain-hack/
- OpenAI: Our response to the Axios developer tool compromise — https://openai.com/index/axios-developer-tool-compromise/
- Wiz Blog: Axios NPM Distribution Compromised in Supply Chain Attack — https://www.wiz.io/blog/axios-npm-compromised-in-supply-chain-attack
- Huntress: Supply-Chain Compromise of axios npm Package — https://www.huntress.com/blog/supply-chain-compromise-axios-npm-package