Audyt indirect prompt injection w systemach agentowych

0 wyświetleńOpublikowano: 2026-06-30
AI agenciBezpieczeństwo

Jak i kiedy użyć

Użyj tej checklisty podczas projektowania albo audytu agenta, który czyta treści spoza Twojego systemu i może wykonywać akcje. Wklej opis architektury, listę źródeł danych, narzędzia, uprawnienia, typowe akcje oraz przykłady wejść, które agent czyta. Przejdź punkt po punkcie i oznacz miejsca, w których nieufna treść może trafić do kontekstu modelu. Najważniejsze są przepływy, w których agent najpierw czyta mail, stronę, dokument albo komentarz, a potem wysyła wiadomość, zmienia rekord, uruchamia narzędzie, wykonuje płatność, publikuje treść albo przekazuje dane dalej.

Czy ta checklista była pomocna? Twoja ocena pomoże układać najlepsze i trendujące zasoby.

Checklista

Mapa źródeł nieufnej treści

  1. Masz listę wszystkich miejsc, z których agent czyta treść spoza kontrolowanego systemu.
  2. Oddzielasz treści od użytkownika, treści z internetu, wyniki narzędzi, załączniki, komentarze, maile i dane z integracji.
  3. Dla każdego źródła oznaczasz, czy tekst może zawierać instrukcje próbujące sterować modelem.
  4. Traktujesz nieufną treść jako dane do analizy, a nie jako instrukcje dla agenta.
  5. Masz przykłady wejść testowych, w których nieufna treść próbuje zmienić cel zadania albo ujawnić dane.

Minimalizacja kontekstu

  1. Agent dostaje tylko te fragmenty treści, które są potrzebne do bieżącego zadania.
  2. Nie doklejasz pełnych maili, stron, historii rozmów i wyników wyszukiwania, jeśli wystarczy wycinek.
  3. Przed przekazaniem treści do modelu usuwasz albo streszczasz fragmenty ewidentnie niezwiązane z zadaniem.
  4. Długie dokumenty są dzielone na fragmenty z jasnym opisem źródła i poziomu zaufania.
  5. Nie mieszacie w jednym kontekście prywatnych danych, instrukcji systemowych i nieufnej treści bez wyraźnych granic.

Rozdzielenie danych od instrukcji

  1. Prompt systemowy jasno mówi, że tekst z maili, stron, dokumentów i narzędzi jest danymi, nie instrukcjami.
  2. Agent ma osobne pola na cel zadania, zaufane instrukcje, nieufną treść oraz wynik analizy.
  3. Przy zapisie danych nie przechowujesz ukrytych instrukcji razem z przyszłymi poleceniami dla modelu.
  4. Przy odczycie danych agent widzi informację, z jakiego źródła pochodzi treść i jaki ma poziom zaufania.
  5. W odpowiedziach po analizie nieufnej treści agent najpierw raportuje wnioski, a dopiero potem proponuje akcje.

Ograniczanie możliwości agenta

  1. Agent nie może samodzielnie wykonywać akcji wysokiego ryzyka po przeczytaniu nieufnej treści.
  2. Wysyłka maila, publikacja, płatność, zmiana danych i udostępnienie pliku wymagają osobnego potwierdzenia człowieka.
  3. Narzędzia agenta mają minimalne uprawnienia potrzebne do zadania.
  4. Agent nie ma jednocześnie szerokiego odczytu prywatnych danych i szerokiego zapisu do systemów zewnętrznych.
  5. Każda akcja zmieniająca stan pokazuje człowiekowi źródło informacji, plan działania i treść wyniku przed wykonaniem.

Monitoring i reakcja

  1. Logujesz przypadki, w których agent czyta nieufną treść i zaraz potem próbuje wykonać akcję zmieniającą stan.
  2. Monitorujesz nietypowe prośby o ujawnienie instrukcji, tokenów, danych klientów albo konfiguracji narzędzi.
  3. Masz test regresji z przykładowymi próbami indirect prompt injection dla najważniejszych przepływów.
  4. Wiesz, kto sprawdza alerty i jak szybko blokuje wadliwy przepływ.
  5. Po incydencie dopisujesz brakujący guard do promptu, walidatora, uprawnień albo interfejsu potwierdzenia.

Priorytet audytu

  1. Najpierw sprawdzasz przepływy, w których agent czyta maile, strony albo dokumenty i może wysłać wiadomość.
  2. Drugim priorytetem są przepływy z narzędziami administracyjnymi, CRM, plikami, płatnościami i publikacją treści.
  3. Trzecim priorytetem są długie konteksty, pamięć agenta i ponowne użycie streszczeń z nieufnych źródeł.
  4. Nie zakładasz, że filtr słów kluczowych wystarczy, bo atak może być opisowy, pośredni albo rozbity na kilka fragmentów.
  5. Za gotowy uznajesz dopiero przepływ, w którym model może przeczytać złośliwą treść, ale nie może sam wykonać szkodliwej akcji.

Najczęstsze pytania

Czym jest indirect prompt injection?

Indirect prompt injection to sytuacja, w której model czyta zewnętrzną treść, na przykład maila, stronę albo dokument, a ukryta w niej instrukcja próbuje zmienić zachowanie agenta. Atak nie przychodzi bezpośrednio od operatora, tylko przez dane, które agent ma przeanalizować.

Dlaczego to ryzyko jest ważne w systemach agentowych?

System agentowy nie tylko generuje tekst, ale często używa narzędzi, czyta pliki, wysyła wiadomości i zmienia dane. Jeśli nieufna treść wpłynie na decyzję modelu, zwykła analiza może zamienić się w niechcianą akcję w realnym systemie.

Czy wystarczy dopisać do promptu, żeby ignorować złe instrukcje?

Nie. Instrukcja w prompcie pomaga, ale nie jest pełną ochroną. Potrzebujesz także minimalizacji kontekstu, oznaczania poziomu zaufania danych, ograniczonych uprawnień narzędzi, potwierdzeń człowieka i monitoringu przepływów wysokiego ryzyka.

Które przepływy warto sprawdzić jako pierwsze?

Najpierw sprawdź przepływy, w których agent czyta mail, stronę, załącznik, komentarz albo zgłoszenie, a potem może wysłać wiadomość, opublikować treść, zmienić rekord, udostępnić plik albo wywołać narzędzie administracyjne.

Jak wygląda dobra kontrola człowieka w takim systemie?

Dobra kontrola pokazuje człowiekowi źródło informacji, wykrytą intencję, proponowaną akcję oraz dokładną treść, która ma zostać wysłana albo zapisana. Potwierdzenie nie powinno być ukryte w tym samym kroku, w którym model czyta nieufną treść.

Źródła i odniesienia

Ten zasób jest autorskim opracowaniem praktycznym. Poniższe pozycje pokazują inspiracje i ramy, do których jawnie się odnosimy.