Blokada była dostawą

sie 11, 2026 | Cyberflux

W czerwcu opisywaliśmy Agentjacking — atak, w którym każdy krok jest legalny, więc żaden system obronny niczego nie widzi. Ten sam zespół — izraelski startup Tenet — pokazał właśnie na DEF CON kolejną odsłonę tego pomysłu i tym razem posunął go o krok dalej, niż wydawało się możliwe.

W ataku nazwanym Ghostjacking systemem obronnym nie jest tym, który niczego nie widzi. Jest tym, który dostarcza ładunek.

Mechanizm jest prosty i dlatego niepokojący. Atakujący wysyła żądanie zawierające instrukcje dla modelu językowego. Firewall aplikacyjny robi dokładnie to, do czego został stworzony: rozpoznaje żądanie jako złośliwe i blokuje je. A potem zapisuje je do logu — słowo w słowo, bo taki jest sens logowania zdarzeń bezpieczeństwa. Kiedy analityk prosi swojego agenta AI o przejrzenie tego zdarzenia, agent czyta zapis zablokowanego ataku i wykonuje zawarte w nim polecenia.

Cytując badaczy: to reguła bezpieczeństwa blokuje żądanie, a ta blokada jest tym, co wnosi atak do środka.

Trzy platformy, ten sam kształt

Tenet zademonstrował to na trzech usługach, których wspólną cechą jest to, że wszyscy im ufają. Cloudflare obsługuje jedną piątą całego ruchu w sieci i jest używany przez blisko połowę firm z listy Fortune 500. Datadog — podobnie. Sentry'emu ufa blisko cztery miliony programistów.

Cloudflare. Wektor otwiera się przy zalecanej przez producenta konfiguracji bezpieczeństwa. Złośliwe żądanie zostaje zablokowane przez zarządzaną regułę i trafia do logu w niezmienionej postaci. Gdy analityk każe agentowi przejrzeć zdarzenie, agent zmienia ustawienia DNS organizacji tak, by wskazywały na domenę kontrolowaną przez atakującego — po czym raportuje problem jako rozwiązany.

Skuteczność, którą podaje Tenet, jest trudna do zignorowania: dziewięć razy na dziesięć przeciwko Claude Code. Każde żądanie było wcześniej zablokowane. Domena i tak została przejęta.

Datadog. Tu wejściem jest klucz przeznaczony dla warstwy frontendowej, rutynowo zostawiany w miejscu publicznie dostępnym — Tenet znalazł w internecie ponad dwa tysiące siedemset takich kluczy. Mając go, atakujący umieszcza fałszywy alert o pilnej diagnostyce. Inżynier prosi agenta o sprawdzenie błędów, agent czyta alert i uruchamia polecenie atakującego. W demonstracji skończyło się to wykonaniem kodu oraz wyprowadzeniem sekretów środowiskowych i poświadczeń chmurowych.

Sentry. Ten wariant jest najciekawszy, bo wprowadza element, którego wcześniej nie widzieliśmy. Atakujący przygotowuje spreparowany raport błędu, który czyta agent Sentry o nazwie Seer. Seer przyjmuje zaproponowaną fałszywą poprawkę jako własną. Gdy ta poprawka trafia następnie do agenta kodującego, który ufa Seerowi, kod atakującego zostaje wykonany.

Tenet opisuje to zwięźle: jedna sztuczna inteligencja została zamieniona w człowieka od wewnątrz, który poręczył za atakującego przed kolejną.

To jest nowa jakość. Do tej pory pisaliśmy o agentach, którzy ufają niezaufanym danym. Tutaj agent ufa innemu agentowi, a ten drugi został wcześniej oszukany. Powstaje łańcuch poręczeń, w którym oryginalne pochodzenie instrukcji znika po pierwszym ogniwie — bo dla agenta kodującego źródłem nie jest już podejrzany raport od nieznajomego, tylko koleżeński system, z którym pracuje na co dzień.

Odmowa jako mapa

Sposób, w jaki Tenet zbudował ten atak, zasługuje na osobny akapit, bo mówi coś o naturze zabezpieczeń opartych na odmowie.

Badacze użyli jednego agenta AI do zaprojektowania ataku, który miał wykonać drugi agent. I opisują, co się działo przy każdej odmowie: za każdym razem, gdy model odmawiał, jego odmowa ujawniała sformułowanie, które by zaakceptował — aż w końcu uruchomił atak przeciwko samemu sobie.

To był kontrolowany test laboratoryjny: dwie oddzielne sesje, jedna w roli atakującego, druga w roli celu, z wyłączoną pamięcią, więc żadna nie wiedziała o istnieniu drugiej.

Warto się nad tym zatrzymać. Odmowa nie jest ścianą — jest informacją zwrotną. Model, tłumacząc, dlaczego czegoś nie zrobi, mimowolnie opisuje warunki, w których by to zrobił. Dla człowieka próbującego kilkanaście razy to niewiele. Dla drugiego modelu, który potrafi wykonać tysiąc prób i za każdym razem przeanalizować treść odmowy, jest to gradient prowadzący prosto do celu.

To dopowiada tezę, którą postawiliśmy przy OWASP i jego liście na 2026 rok. Napisano tam, żeby przestać budować model, którego nie da się oszukać, i zacząć budować system, w którym oszukanie modelu niczego ważnego nie psuje. Ghostjacking pokazuje, dlaczego to pierwsze jest szczególnie beznadziejne: mechanizm odmowy, wystawiony na automatyczne sondowanie, sam wskazuje drogę wokół siebie.

Wspólny kształt

Najważniejsze zdanie całego badania nie dotyczy żadnej z trzech platform z osobna. Tenet formułuje je tak: Sentry, Cloudflare i Datadog to nie są trzy osobne luki — to jest ten sam kształt. Sztuczna inteligencja czyta zewnętrzne dane, którym ufa, i ta sama sztuczna inteligencja może na ich podstawie działać. Wszędzie tam, gdzie te dwie rzeczy się spotykają, drzwi są otwarte.

Firma dodaje, że wzorzec sięga daleko poza te trzy usługi — wymienia zestawienie systemu logowania z systemem budowania oraz platformy monitorującej z orkiestracją kontenerów.

To jest ten sam kształt luki, który opisywaliśmy przy Cordyceps i przy niezgodności dwóch sanitizerów w WordPressie: podatność nie mieszka w żadnym komponencie, tylko w ich złożeniu. Firewall działa poprawnie. Logowanie działa poprawnie. Agent działa poprawnie. Luka istnieje wyłącznie w tym, że wyjście jednego jest wejściem drugiego, a nikt nie zaprojektował granicy między nimi.

Z jedną różnicą, która czyni ten przypadek szczególnym. Przy Cordyceps i WordPressie składane komponenty były neutralne. Tutaj jednym z nich jest mechanizm obronny, a jego skuteczność działa na korzyść atakującego. Im wierniej firewall zapisuje to, co zablokował, tym czystszy ładunek trafia do agenta.

Uczciwie: warunki i ograniczenia

Kilka rzeczy trzeba postawić proporcjonalnie.

To jest demonstracja badawcza, a nie relacja z incydentu — pokaz na konferencji i kontrolowany test laboratoryjny, nie kampania obserwowana w realnym ruchu. Żadne autorytatywne źródło nie raportuje wykorzystania tej techniki przez rzeczywistych napastników.

Tenet jest przy tym firmą, która sprzedaje ochronę przed dokładnie tą klasą zagrożeń, więc ma interes w tym, żeby wyglądała groźnie. To standardowe zastrzeżenie przy badaniach producenckich i obowiązuje tu tak samo jak wszędzie. Z drugiej strony: opisane mechanizmy są weryfikowalne, a jeden z wektorów opiera się na publicznie dostępnych kluczach, których liczbę podano wprost.

Atak wymaga też udziału człowieka — analityka albo inżyniera, który prosi agenta o przejrzenie zdarzenia. Nie jest to więc scenariusz, w którym samo zablokowanie żądania wystarczy do przejęcia. Ale trzeba dodać drugą stronę tego zastrzeżenia: przeglądanie alertów i logów przez agenta to dziś rutyna w centrach operacji bezpieczeństwa, a nie egzotyka. Wymagana interakcja jest dokładnie tym, do czego te narzędzia zostały kupione.

Wymieniono także konkretne produkty, więc odnotujmy to rzeczowo. Skuteczność dziewięć na dziesięć podano dla Claude Code, a przy okazji badań Tenet znalazł podatność w Claude Desktop umożliwiającą wyprowadzenie danych na zdalny serwer — Anthropic ją naprawił, bez wydawania numeru CVE. To jest jednak, jak podkreślają sami badacze, problem klasy, a nie jednego dostawcy: warunkiem jest architektura, w której agent czyta zewnętrzne dane i może na ich podstawie działać, a taką ma dziś każde narzędzie tego typu.

Co z tego wynika dla obrońcy

Rzecz pierwsza jest natychmiastowa i konkretna: przejrzyj klucze frontendowe swoich platform monitorujących. Dwa i pół tysiąca takich kluczy leżących w otwartym dostępie to nie jest problem teoretyczny, a każdy z nich pozwala umieścić w cudzym systemie alert, który wygląda jak własny.

Rzecz druga wynika wprost z mechanizmu i jest zmianą sposobu myślenia. Log zdarzeń bezpieczeństwa zawiera z definicji treść kontrolowaną przez atakującego — po to powstaje. Dopóki czytał go człowiek, była to zaleta. Odkąd czyta go agent zdolny do działania, jest to niezaufane wejście i tak trzeba je traktować: oznaczać jako dane, oddzielać od instrukcji, nie podawać agentowi surowego zapisu żądania, jeśli ten agent ma jakiekolwiek uprawnienia wykonawcze.

Rzecz trzecia dotyczy uprawnień i jest jedyną, która działa niezależnie od tego, czy model da się oszukać. Agent przeglądający alerty nie potrzebuje możliwości zmiany ustawień DNS. Agent sprawdzający błędy nie potrzebuje dostępu do sekretów środowiskowych. Rozdzielenie roli czytającej od roli działającej jest tu ochroną skuteczniejszą niż jakikolwiek filtr treści — bo nie wymaga, żeby cokolwiek rozpoznało atak.

Rzecz czwarta wynika z wariantu z Sentry i jest nowa: sprawdź, które z twoich agentów ufają wynikom innych agentów. Łańcuch poręczeń między systemami AI to nowa powierzchnia, której nie ma w żadnym rejestrze ryzyka, a która przenosi zaufanie dalej, niż ktokolwiek zamierzał.

Jedna myśl na koniec

Przez rok opisywaliśmy, jak kolejne bariery wokół agentów zawodzą — prompt, piaskownica, okno zgody, zabezpieczenia modelu. Za każdym razem chodziło o to samo: obrona nie działała.

Ghostjacking jest inny i dlatego wart odnotowania. Tu obrona zadziałała bez zarzutu. Firewall rozpoznał złośliwe żądanie i je zablokował. Zrobił dokładnie to, za co mu płacimy, a potem — również zgodnie z przeznaczeniem — zapisał dowód w logu, żeby ktoś mógł się temu przyjrzeć. Dopiero ten, kto się przyjrzał, okazał się maszyną, która nie odróżnia opisu ataku od polecenia.

Nie ma tu żadnej luki do załatania w sensie, w jakim rozumieliśmy to dotąd. Jest tylko dwoje drzwi, o których nikt nie pomyślał, że stoją w jednej ścianie: system, który wiernie zapisuje wszystko, co go zaatakowało, i czytelnik, który wykonuje wszystko, co przeczyta.

Źródła

SecurityWeek — relacja z prezentacji na DEF CON z opisem trzech wektorów ataku, skutecznością dziewięć na dziesięć przeciwko agentowi kodującemu, liczbą ponad dwóch tysięcy siedmiuset odnalezionych kluczy oraz metodologią budowania ataku przez drugiego agenta: https://www.securityweek.com/ghostjacking-attack-uses-poisoned-logs-to-turn-ai-agents-bad/

Tenet Security — oryginalne badanie Ghostjacking wraz z opisem łańcucha ataku na agentów: https://tenetsecurity.ai/blog/ghostjacking-attacks-agentic-kill-chain/