NOWOŚĆ! Szkolenie AI w pracy admina
Konferencja Mega Sekurak Hacking Party w Krakowie – 26-27 października!
NOWOŚĆ! Szkolenie AI w pracy admina
Konferencja Mega Sekurak Hacking Party w Krakowie – 26-27 października!
Jeszcze do niedawna, mówiąc o wsparciu AI mieliśmy na myśli błyskawiczne generowanie podsumowań, przeprowadzanie analiz dokumentów źródłowych, wykonywanie tłumaczeń na niemal dowolny język oraz tworzenie prostych funkcji i skryptów pozwalających na automatyzację rutynowych zadań. Wraz z pojawieniem się agentów AI nastąpiła jednak prawdziwa rewolucja.
TLDR:
Sztuczna inteligencja przestała być jedynie biernym asystentem programisty, który w tle udziela sugestii jak dana funkcja ma wyglądać, ewentualnie co można w niej zmienić. Dzięki narzędziom takim jak Claude Code oraz OpenAI Codex, stała się aktywnym partnerem biorącym udział w procesie wytwarzania oprogramowania.
Co więcej, agent potrafi samodzielnie poruszać się po całych repozytoriach, analizować architekturę projektu, dokonywać zmian bezpośrednio w plikach źródłowych na dysku dewelopera, a także planować i wdrażać modyfikacje.
Zmiana ta przesuwa rolę programisty z wykonawcy powtarzalnych zadań w stronę architekta oprogramowania. Zamiast pisać każdą linijkę kodu od zera, deweloperzy mogą delegować złożone zadania, skupiając się przede wszystkim na weryfikacji efektów końcowych. Oczywiście na obecnym etapie kluczowa pozostaje obecność człowieka (human-in-the-loop).
Podczas pracy agent AI może poprosić o dodatkowe uprawnienia czy też zasugerować instalację niezbędnych paczek. Tworzy to złudne poczucie kontroli nad wytwarzanym oprogramowaniem, ponieważ w praktyce rzadko kto skrupulatnie weryfikuje każdy krok proponowany przez agenta AI. Często deweloper zaakceptuje monit i zezwoli na daną akcję bez większej refleksji.
Zjawisko to otwiera zupełnie nową przestrzeń działań dla cyberprzestępców, co dobrze pokazują niedawne odkrycia badaczy z Accomplish AI dotyczące OpenAI Codex. Opublikowali oni dwie techniki umożliwiające ucieczkę z sandboxa – Heapjack oraz Overpatch. Dzięki nim istnieje możliwość wykonania dowolnego polecenia na komputerze dewelopera oraz wyskoczenie poza katalog projektu bez wiedzy i zgody dewelopera.

Podatność Overpatch występowała w otwartoźródłowym kliencie CLI. W trybie pracy workspace-write agent powinien posiadać uprawnienia do zapisu jedynie w katalogu roboczym projektu, a polecenia powłoki skierowane do katalogu domowego powinny być odrzucane. Badacze zauważyli jednak, że komponent apply_patch pozwalał na obejście tych ograniczeń. Mechanizm ten błędnie przyznawał uprawnienia do zapisu w folderze nadrzędnym każdej ścieżki zdefiniowanej w patchu – wystarczyło wskazać /tmp, aby uzyskać dostęp do zapisu w głównym katalogu dysku (/).
W przedstawionym scenariuszu ataku badacze korzystając z powyższej obserwacji dokonali modyfikacji pliku .zshrc, poprzez wstrzyknięcie dowiązania symbolicznego prowadzącego do katalogu domowego użytkownika ($HOME). W efekcie podczas otwierania nowego terminala przez dewelopera dochodziło do nieautoryzowanego wykonania komendy poza środowiskiem bezpiecznym – sandboxem.

Podatność Heapjack została wykryta w oprogramowaniu Codex Desktop, a dokładniej w komponencie node_repl. Uruchamiał on proces Node.js, w ramach którego współdzielone są dwa oddzielne konteksty JavaScript: zaufany (zawierający kod OpenAI) i niezaufany (wykonujący kod agenta). Zaufana część miała potwierdzać swój status przy użyciu losowego tokenu generowanego dla każdej sesji. Problem polegał na tym, że oba konteksty współdzieliły tę samą stertę pamięci (heap).
W praktyce oznaczało to, że sekret oddzielający część zaufaną od niezaufanej znajdował się w obszarze pamięci, do którego miał dostęp agent AI. W konsekwencji mógł on wykonać zrzut pamięci (v8.getHeapSnapshot()), a następnie odnaleźć unikalny token autoryzacyjny (przypominający identyfikator UUID). Przechwycenie sekretu pozwalało na wysyłanie żądań przez ten sam kanał komunikacyjny, z którego korzystał zaufany kontekst, co w efekcie prowadziło do wykonania nieautoryzowanych poleceń poza sandboxem. Oznaczenie katalogu read-only nie miało żadnego wpływu na skuteczność tej metody.

Zaprezentowane scenariusze ataku stanowią realne zagrożenie dla osób korzystających z podatnych wersji oprogramowania. Użytkownik nie musi klikać w link podsunięty przez cyberprzestępców czy też instalować zainfekowane wersje narzędzi – do czego zdążyliśmy się już de facto przyzwyczaić.
Wystarczy dać agentowi AI “zielone światło” i bezrefleksyjnie zatwierdzać kolejne prośby o dostęp do danych czy też instalację dodatkowych pakietów. Jeśli sugerowana przez model paczka okaże się zainfekowana, atakujący będzie mógł przejąć kontrolę nad maszyną, na której uruchomiono proces. Mimo działania w sandboxie badacze pokazali, że stosunkowo łatwo można z niego “wyskoczyć” i wykonać kod bezpośrednio na hoście.
Podatności zostały naprawione w następujących wersjach oprogramowania:
W przypadku posiadania podatnej wersję narzędzi, zalecamy niezwłoczne wdrożenie poprawek.
Źródło: accomplish.ai/blog
~_secmike