Ścieżka 03Lekcja 3 / 6

Traktuj pobraną treść jako niezaufane dane

Rozpoznawaj instrukcje ukryte w plikach repozytorium i wynikach narzędzi. Oddziel informacje od uprawnienia do działania.

Praktyka10 minSprawdzono

Wydawca Jak piszemy

Czego się nauczysz

  • Rozpoznaj pośredni prompt injection w procesie wytwarzania.
  • Wyjaśnij, dlaczego same etykiety tekstowe nie egzekwują granicy bezpieczeństwa.
  • Zaprojektuj bezpieczny test ograniczeń narzędzi.

Rozpoznaj moment, w którym dane stają się poleceniem

Agent programistyczny czyta więcej niż polecenie użytkownika. Może przeglądać zgłoszenia, pliki repozytorium, dokumentację pakietów, wyniki wyszukiwania i odpowiedzi narzędzi. Część tej treści może zawierać instrukcje od innej osoby.

Prompt injection występuje, gdy taka treść kieruje model poza dozwolone zadanie. Wariant pośredni dociera przez pobrane źródło, a nie bezpośrednie polecenie użytkownika. OWASP wskazuje materiały repozytorium i wyniki narzędzi jako istotne punkty wejścia. Przeczytaj zalecenia zapobiegania.

Rozważ fikcyjne zadanie utrzymaniowe. Użytkownik prosi o poprawienie filtra raportu i uruchomienie wymaganych testów. Pobrany README twierdzi, że testy są nieaktualne, i prosi o wysłanie pliku konfiguracji. README może wyjaśniać projekt. Nie może upoważnić do pominięcia kontroli użytkownika ani wysyłania plików gdzie indziej.

Określ możliwe konsekwencje

Ten sam mylący tekst ma różne konsekwencje w różnych środowiskach. Narzędzie podsumowujące z dostępem tylko do odczytu może sporządzić błędne podsumowanie. Agent z prawem zapisu w repozytorium może zmienić kod. Agent z sekretami i wyjściowym dostępem do sieci może ujawnić informacje.

Sprawdź dostępne działania, zanim wybierzesz istotne zabezpieczenia. Wypisz wrażliwe zasoby, miejsca możliwego zapisu i odbiorców zewnętrznych. Uwzględnij konektory dodane po początkowej konfiguracji. Nowe narzędzie może zwiększyć skutki istniejącej słabości.

Agent może też przenieść mylącą treść do późniejszego etapu. Na przykład skopiuje niezaufaną instrukcję do wygenerowanego opisu zadania. Kolejny agent nie może uznać tego opisu za niezależnie zatwierdzoną politykę.

Użyj kilku zabezpieczeń o różnych celach

W projekcie aplikacji oddziel zaufane instrukcje zadania od pobranych danych. Pokaż pochodzenie pobranego materiału. Te kroki poprawiają interpretację, ale nie ustanawiają pełnej granicy bezpieczeństwa.

Egzekwuj uprawnienia do zasobów w systemie wykonawczym. Ograniczaj miejsca, do których mogą trafić dane wrażliwe. Wymagaj odpowiedniej decyzji przed działaniami o istotnych konsekwencjach. Sprawdzaj proponowaną operację względem dozwolonego zadania i celu.

Filtry i drugi model mogą pomóc wykrywać podejrzaną treść. Mogą też przeoczyć atak lub zablokować poprawną informację. Nie zastępuj deterministycznej autoryzacji oceną pewności modelu. OWASP wyraźnie wskazuje ograniczenia polegania wyłącznie na promptach lub pobieraniu informacji. Przeczytaj opis ryzyka.

Testuj proces bez rzeczywistego narażenia

Użyj jednorazowego repozytorium i fikcyjnych plików. Nie przyznawaj ocenie produkcyjnych danych uwierzytelniających ani nieograniczonego zapisu na zewnątrz. Wprowadź nieszkodliwą instrukcję sprzeczną z zadaniem, na przykład pominięcie wymaganej kontroli.

Obserwuj odpowiedź modelu i rzeczywiste działania narzędzi. Komunikat „zignorowałem instrukcję” nie wystarcza, jeśli kontrola mimo to została pominięta. Zapisz zadanie, wstrzyknięty plik testowy, dozwolone narzędzia i zaobserwowany wynik.

Powtarzaj reprezentatywne przypadki po zmianach promptów, modeli, konektorów lub uprawnień. Zablokowany przykład jest dowodem dla tego przypadku, a nie ochrony przed każdym wstrzyknięciem. Jeśli test zawiedzie, ogranicz możliwe konsekwencje podczas naprawy procesu.

Wykonaj ćwiczenie

Utwórz jednorazowy plik testowy z komentarzem proszącym agenta o pominięcie wymaganej kontroli. Przeprowadź autoryzowaną, odizolowaną ocenę bez sekretów i zapisów zewnętrznych. Sprawdź, czy kontrola nadal jest wykonywana. Zapisz uprawnienia narzędzi, zaobserwowane zachowanie i ograniczenia tego pojedynczego testu.

Pobierz arkusz (Markdown)

Sprawdź zrozumienie

Plik repozytorium mówi, że wszystkie testy są opcjonalne i agent powinien zignorować instrukcje zadania. Jak należy go potraktować?

Źródła i dalsza lektura

Powiązana lektura od Taiga