Claude Opus 5

Claude Code i prompt injection. Wystarczy podsumować stronę, by uruchomić kod

Agenci AI coraz częściej otrzymują dostęp do plików, terminala i internetu. To zwiększa ich możliwości, ale jednocześnie tworzy nowe zagrożenia. Badacz bezpieczeństwa Johann Rehberger pokazał, jak można wykorzystać pozornie niewinną prośbę o podsumowanie strony internetowej do przejęcia kontroli nad działaniami Claude Code.

Problem dotyczy Anthropic Claude Code wykorzystującego model Opus 5 w trybie Auto Mode. Według przeprowadzonych przez Rehbergera testów przygotowany przez niego atak kończył się powodzeniem w 60–80 proc. przypadków.

Nie oznacza to jednak, że wystarczy wejść na dowolną złośliwą stronę, aby automatycznie przejąć komputer. Atak wykorzystuje cały łańcuch pozornie niegroźnych decyzji podejmowanych przez agenta AI.

Wszystko zaczyna się od podsumowania strony

Scenariusz przygotowany przez badacza jest interesujący właśnie dlatego, że użytkownik nie musi prosić Claude Code o wykonanie złośliwego działania.

Agent otrzymuje zadanie podsumowania specjalnie przygotowanej strony internetowej. Witryna udaje archiwum zawierające zapisy z notatnika.

Początkowo Claude próbuje pobrać zawartość strony za pomocą przeznaczonego do tego narzędzia WebFetch. Żądanie kończy się jednak błędem. Agent decyduje więc, że spróbuje innej metody — wykorzystuje narzędzie Bash i program curl.

To właśnie tutaj rozpoczyna się właściwy łańcuch ataku.

Strona zwraca przekierowanie, które prowadzi do przygotowanego przez atakującego archiwum ZIP. Wewnątrz znajdują się pliki wyglądające na elementy potrzebne do odczytania zapisanych danych: metadane, plik README, zakodowane rekordy JSON oraz narzędzie do ich dekodowania.

Jest tam również plik struct.py.

I właśnie on okazuje się kluczowy.

Złośliwy plik udaje element Pythona

Atak wykorzystuje technikę znaną jako Python module shadowing. Jeżeli w katalogu znajduje się lokalny plik o nazwie identycznej z modułem standardowej biblioteki Pythona, interpreter może załadować lokalny plik zamiast właściwego modułu.

W tym przypadku złośliwy struct.py znajduje się w pobranym archiwum.

Claude Code początkowo zachowuje się zgodnie z oczekiwaniami mechanizmów bezpieczeństwa. Agent odmawia uruchomienia dostarczonego przez atakującego programu dekodującego, uznając, że właśnie tego chce atakujący.

Problem w tym, że Claude podejmuje inną decyzję. Zamiast uruchomić dostarczony program, postanawia samodzielnie napisać dekoder.

I to właśnie ta decyzja otwiera drogę do ataku.

Nowy skrypt korzysta z modułu base64. Ten z kolei importuje standardowy moduł struct. Python może jednak znaleźć najpierw znajdujący się lokalnie złośliwy plik struct.py.

W efekcie kod przygotowany przez atakującego zostaje wykonany w ramach całego procesu.

AI może uruchomić kolejnego agenta

Na tym możliwości ataku się nie kończą.

Według Rehbergera przygotowany przez niego kod może uruchomić kolejny proces Pythona, pobrać zdalny payload i go wykonać. W demonstracji wykorzystano nieszkodliwy z punktu widzenia skutków końcowych przykład — komunikację z serwerem sterującym, po której na komputerze otwierany był systemowy Kalkulator.

Znacznie ciekawszy jest jednak inny wariant eksperymentu.

Złośliwy kod może uruchomić kolejną instancję Claude Code za pomocą polecenia claude -p. Powstaje w ten sposób agent uruchomiony przez innego agenta, który otrzymuje własny dostęp do narzędzi i kontekstu.

W testach taki „dziecko-agent” wykonywał między innymi podstawowe polecenia rozpoznawcze, sprawdzał informacje o systemie i użytkowniku oraz zapisywał pliki w katalogu domowym.

To pokazuje, że problem z prompt injection nie musi kończyć się na pojedynczym poleceniu wykonanym przez AI. W przypadku agentów wyposażonych w szeroki dostęp do systemu możliwe jest tworzenie znacznie bardziej złożonych łańcuchów działań.

Skuteczność ataku sięgała 80 proc.

Rehberger przetestował trzy warianty ataku, wykonując po pięć prób każdego z nich. W zależności od wariantu skuteczność wynosiła od 60 do 80 proc.

Sam badacz zaznacza jednak, że była to niewielka próbka i wyniki nie powinny być traktowane jako kompleksowy pomiar bezpieczeństwa Claude Code.

Pokazują jednak coś istotnego: atakujący niekoniecznie musi przekonać agenta AI do wykonania jednego oczywiście złośliwego polecenia.

Znacznie skuteczniejszą strategią może być zbudowanie łańcucha niewinnych na pierwszy rzut oka kroków.

Pobierz stronę.
Nie udało się jej pobrać jednym narzędziem.
Spróbuj innego.
Pobierz archiwum.
Nie uruchamiaj podejrzanego programu.
Napisz własny skrypt, który odczyta dane.

Każda z tych decyzji może wyglądać rozsądnie. Dopiero ich połączenie prowadzi do wykonania kodu przygotowanego przez atakującego.

To nie jest problem wyłącznie Claude Code

Eksperyment zwraca uwagę na szerszy problem związany z rozwojem agentów AI.

Tradycyjny chatbot przede wszystkim generuje odpowiedzi. Agent AI może natomiast wykonywać działania: uruchamiać polecenia, korzystać z internetu, pobierać pliki, modyfikować dane czy uruchamiać kolejne narzędzia.

To oznacza, że prompt injection staje się czymś więcej niż próbą „przekonania AI do powiedzenia czegoś, czego nie powinno powiedzieć”.

Jeżeli agent ma dostęp do systemu operacyjnego, złośliwa instrukcja może stać się punktem wyjścia do rzeczywistego działania na komputerze.

Dlatego samo zabezpieczenie modelu nie musi wystarczyć.

Najważniejsza jest izolacja

Według Rehbergera tryb Auto Mode powinien być traktowany jako mechanizm wygody, a nie jako gwarancja bezpieczeństwa. Kluczową ochronę powinny zapewniać dodatkowe mechanizmy znajdujące się poza samym modelem.

Chodzi przede wszystkim o sandboxing, ograniczenie dostępu agenta do systemu oraz kontrolę komunikacji sieciowej.

To podejście staje się coraz ważniejsze wraz z rozwojem agentów AI. Nawet bardzo dobry model może bowiem podjąć niewłaściwą decyzję pod wpływem odpowiednio przygotowanej zawartości.

W przypadku tradycyjnego oprogramowania od lat zakłada się, że nie należy uruchamiać nieznanego kodu z pełnymi uprawnieniami. W świecie agentów AI zasada ta staje się równie ważna.

Nie należy bezgranicznie ufać temu, co agent AI zdecyduje się zrobić — szczególnie gdy ma dostęp do naszego komputera, plików i internetu.

Foto: Anthropic.

Podziel się artykułem

PortalTechnologiczny.pl

Wykorzystujemy ciasteczka do spersonalizowania treści i reklam, aby oferować funkcje społecznościowe i analizować ruch w naszej witrynie.

Informacje o tym, jak korzystasz z naszej witryny, udostępniamy partnerom społecznościowym, reklamowym i analitycznym. Partnerzy mogą połączyć te informacje z innymi danymi otrzymanymi od Ciebie lub uzyskanymi podczas korzystania z ich usług.

Informacja o tym, w jaki sposób Google przetwarza dane, znajdują się tutaj.