Atak supply chain na npm uderza w użytkowników OpenAI Codex i prowadzi do kradzieży tokenów - Security Bez Tabu

Atak supply chain na npm uderza w użytkowników OpenAI Codex i prowadzi do kradzieży tokenów

Cybersecurity news

Wprowadzenie do problemu / definicja

Ekosystem narzędzi programistycznych opartych na sztucznej inteligencji staje się coraz częstszym celem ataków na łańcuch dostaw oprogramowania. Najnowszy incydent pokazuje, że zagrożenie nie dotyczy już wyłącznie prostych kampanii typosquattingowych, ale również pakietów open source, które sprawiają wrażenie użytecznych i aktywnie rozwijanych.

W tym przypadku złośliwa funkcjonalność została osadzona w pakiecie npm powiązanym z interfejsem dla OpenAI Codex. Celem atakujących była kradzież lokalnie przechowywanych tokenów uwierzytelniających, co mogło umożliwić przejęcie sesji i dalsze działania w imieniu ofiar.

W skrócie

Badacze bezpieczeństwa ujawnili kampanię supply chain, w której pakiet npm o nazwie codexui-android zawierał mechanizm wykradający dane z lokalnego pliku uwierzytelnienia OpenAI Codex. Złośliwy kod miał odczytywać zawartość pliku auth.json, a następnie przesyłać tokeny dostępu, odświeżania oraz identyfikatory kont na zewnętrzny serwer kontrolowany przez napastnika.

Problem nie ogranicza się wyłącznie do samego pakietu npm. Według dostępnych ustaleń ryzyko obejmowało również aplikacje mobilne wykorzystujące ten komponent jako element zaplecza uruchamianego w środowisku sandboxowym. To kolejny sygnał, że narzędzia AI dla deweloperów stają się pełnoprawnym celem zaawansowanych kampanii wymierzonych w zaufanie do ekosystemu open source.

Kontekst / historia

Na tle typowych incydentów w npm ten przypadek wyróżnia się tym, że nie opierał się na nazwie łudząco podobnej do popularnej biblioteki. Zamiast tego wykorzystano funkcjonalny komponent promowany jako zdalny, webowy interfejs dla OpenAI Codex. Taki model działania zwiększa prawdopodobieństwo adopcji przez użytkowników i jednocześnie utrudnia szybkie rozpoznanie zagrożenia.

Z dostępnych informacji wynika, że złośliwe zmiany nie musiały być obecne od początku istnienia projektu. To wpisuje się w dobrze znany schemat ataków supply chain, w którym napastnik najpierw buduje reputację pakietu, a dopiero później dodaje szkodliwy ładunek do artefaktu publikowanego w rejestrze.

Znaczenie incydentu wzmacnia również fakt, że nowoczesne narzędzia agentowe i środowiska wspierające programowanie z użyciem AI często przechowują dane logowania lokalnie. Ma to ułatwiać korzystanie z CLI, IDE czy aplikacji mobilnych, ale jednocześnie tworzy nową powierzchnię ataku, w której przejęcie jednej zależności może otworzyć drogę do kompromitacji uprawnień użytkownika.

Analiza techniczna

Technicznie atak polegał na odczytaniu lokalnego pliku uwierzytelnienia OpenAI Codex, zwykle przechowywanego jako ~/.codex/auth.json, a następnie na eksfiltracji jego zawartości do zewnętrznego endpointu. Wśród przechwytywanych danych znajdowały się m.in. access token, refresh token, id token oraz identyfikator konta.

Najpoważniejszym elementem tego scenariusza jest wykorzystanie refresh tokena. Taki sekret może umożliwić odtwarzanie lub przedłużanie sesji bez ponownego pozyskiwania poświadczeń od użytkownika. W praktyce oznacza to ryzyko utrzymania długotrwałego, trudnego do wykrycia dostępu do usług powiązanych z kontem ofiary.

Ważny jest także kontekst mobilny. Opisywana kampania obejmowała aplikacje na Androida, które uruchamiały komponent npm wewnątrz odizolowanego środowiska Linux/Node.js osadzonego w aplikacji. Oznacza to, że podstawowa analiza samego pakietu APK mogła nie ujawnić pełnego zachowania, jeśli kluczowa logika była zależna od pakietów pobieranych lub aktualizowanych poza głównym artefaktem aplikacji.

Incydent pokazuje też szerszy problem kontroli zaufania w open source. Repozytorium źródłowe może wyglądać niegroźnie, podczas gdy złośliwe zmiany pojawiają się wyłącznie w pakiecie opublikowanym do rejestru. Dla organizacji oznacza to konieczność porównywania kodu źródłowego z faktycznie wdrażanym artefaktem, a nie polegania wyłącznie na publicznym repozytorium.

Konsekwencje / ryzyko

Skutki takiego incydentu mogą być poważne, ponieważ ofiarami są często deweloperzy posiadający szerokie uprawnienia do repozytoriów, systemów CI/CD, sekretów środowiskowych i zasobów chmurowych. Przejęcie tokenów związanych z OpenAI Codex może stać się punktem wyjścia do dalszej eskalacji uprawnień lub ruchu bocznego w środowisku organizacji.

Dodatkowym problemem jest trudność wykrycia nadużyć. Jeżeli napastnik korzysta z prawidłowych tokenów, jego aktywność może wyglądać jak legalne działanie autoryzowanego użytkownika. W środowiskach enterprise zwiększa to ryzyko wycieku kodu źródłowego, przejęcia danych organizacyjnych i nieautoryzowanego użycia zasobów API.

Atak pokazuje również, że narzędzia AI dla programistów należy traktować jak infrastrukturę wysokiego ryzyka. Często mają one dostęp do lokalnego systemu plików, terminala, sekretów i projektów, więc kompromitacja jednego komponentu może mieć znacznie poważniejsze konsekwencje niż incydent w zwykłej aplikacji użytkowej.

Rekomendacje

Organizacje i użytkownicy, którzy mogli korzystać z podejrzanego pakietu lub aplikacji powiązanych z tym łańcuchem, powinni założyć, że tokeny OpenAI Codex mogły zostać skompromitowane. Konieczne jest natychmiastowe wylogowanie aktywnych sesji, unieważnienie tokenów, ponowna autoryzacja oraz przegląd historii aktywności konta.

  • Zidentyfikować systemy, na których instalowano pakiet codexui-android lub powiązane aplikacje mobilne.
  • Usunąć podejrzane komponenty i przeprowadzić analizę powłamaniową na stacjach roboczych deweloperów.
  • Wymusić rotację tokenów, kluczy API i innych sekretów dostępnych z poziomu potencjalnie skompromitowanego środowiska.
  • Monitorować ruch wychodzący pod kątem połączeń do nieautoryzowanych domen i anomalii behawioralnych.
  • Skanować zależności npm nie tylko pod kątem reputacji, ale również zachowania runtime i różnic między repozytorium a publikowaną paczką.
  • Stosować pinning wersji oraz wewnętrzne mirrorowanie i zatwierdzanie pakietów przed wdrożeniem.
  • Ograniczać czas życia oraz zakres uprawnień tokenów używanych przez narzędzia AI i integracje deweloperskie.
  • Traktować lokalne pliki z poświadczeniami z taką samą ostrożnością jak hasła, klucze prywatne i inne sekrety.

Zespoły AppSec i DevSecOps powinny dodatkowo rozszerzyć model zagrożeń o aplikacje agentowe, rozszerzenia IDE, narzędzia CLI oraz mobilne komponenty developerskie. Tradycyjne podejście do bezpieczeństwa endpointów nie zawsze obejmuje takie scenariusze w wystarczającym stopniu.

Podsumowanie

Atak wymierzony w użytkowników OpenAI Codex potwierdza, że narzędzia AI stały się atrakcyjnym celem operacji supply chain. Najważniejszą lekcją z tego incydentu jest to, że nawet funkcjonalny i rozwijany pakiet nie musi być bezpieczny, a lokalne pliki uwierzytelniające mogą stać się cennym łupem dla napastników.

W praktyce bezpieczeństwo pracy z narzędziami AI wymaga dziś podobnego rygoru jak ochrona pipeline’ów CI/CD, sekretów chmurowych i repozytoriów kodu. Organizacje korzystające z agentów programistycznych powinny pilnie zweryfikować procedury związane z walidacją zależności, ochroną tokenów oraz monitorowaniem środowisk deweloperskich.

Źródła

  1. OpenAI Codex Authentication Tokens Stolen in codexui-android npm Supply Chain Attack
  2. Codex CLI and Sign in with ChatGPT | OpenAI Help Center
  3. OpenClaw Codex Claude AI Agent: Free Android Tools App – APK Info & Stats
  4. GitHub – OpenClawAndroid/openclaw-android-assistant
  5. Malicious npm Package Steals OpenAI Codex Tokens