k0nsult.cloud / ai-truth / ipIII / playbook-prompt-injection
Playbook G · Prompt injection i ataki na AI
Procedura reagowania na wstrzyknięcie instrukcji do modelu lub agenta AI. W systemach agentowych — gdzie prompt przekłada się na realną akcję (wywołanie narzędzia, zapytanie do bazy, wysłanie danych) — prompt injection to nie „ciekawostka", lecz ścieżka od tekstu do skutku. Playbook obejmuje wektor direct (bezpośredni prompt użytkownika) i indirect (wstrzyknięcie przez dokumenty/RAG/treść zewnętrzną).
W systemie agentowym granica między danymi a instrukcją jest granicą bezpieczeństwa — a model domyślnie jej nie widzi.
Poziom 2 (incydenty AI/agentowe). Priorytet P1 w systemach z dostępem do narzędzi, podbijany do P0 gdy injection prowadzi do realnej akcji na danych/systemach lub eksfiltracji. Wyzwalane flagi: AI_ACT_RELEVANT, warunkowo AI_HIGH_RISK, GDPR_PERSONAL_DATA. Ściśle powiązany z playbookiem H (agent hijack) i AI/Agent Security.
Problem — prompt staje się akcją
Model językowy nie rozróżnia z natury „to jest zaufana instrukcja systemowa" od „to jest treść, którą mam tylko przetworzyć". Atakujący wykorzystuje tę lukę, umieszczając instrukcje tam, gdzie system spodziewa się danych.
- Direct prompt injection — użytkownik wprost próbuje nadpisać politykę: „zignoruj poprzednie instrukcje", „ujawnij system prompt", „wywołaj narzędzie X z parametrem Y".
- Indirect prompt injection — instrukcja ukryta w treści, którą model pobiera: dokument w RAG, strona WWW, e-mail, pole rekordu, metadane pliku. Model czyta „dane" i wykonuje ukrytą w nich komendę. To najgroźniejszy wariant — ofiara nie wpisała nic złośliwego.
- Skutki w systemie agentowym — nieautoryzowane wywołanie narzędzia, eksfiltracja danych przez kanał wyjścia (link, e-mail, zapytanie), obejście barier bezpieczeństwa, wykonanie akcji o wysokim ryzyku, ujawnienie sekretów lub system promptu.
- Dlaczego banki — agent z dostępem do danych klienta, systemów transakcyjnych czy narzędzi wewnętrznych zamienia „psucie odpowiedzi" w realne ryzyko operacyjne i prawne.
DETEKCJA INJECTION→IZOLUJ AGENTA→ZATRZYMAJ NARZĘDZIA→USTAL WEKTOR→OCEŃ AKCJE/EKSFILTRACJĘ→ROTUJ SEKRETY→WALIDACJA + RAPORT
2
Wektory
direct + indirect (RAG)
P0/P1
Priorytet
P0 przy realnej akcji/eksfiltracji
4
Warstwy obrony
separacja · firewall · walidacja · sandbox
7
Kroków playbooka
detekcja → raport
Rozwiązanie 1 — Separacja instrukcji (dane ≠ polityka)
Fundament: treść przetwarzana przez model nie może zmieniać jego polityki ani zakresu narzędzi.
- System prompt ≠ dane użytkownika — twarde rozdzielenie kanału instrukcji systemowych od kanału treści; polityka bezpieczeństwa nie jest nadpisywalna przez wejście.
- RAG jako treść niezaufana — wszystko, co model pobiera (dokumenty, wyniki wyszukiwania, strony), traktowane jest jako dane potencjalnie wrogie, nie jako instrukcje. Oznaczanie/ramkowanie kontekstu zewnętrznego.
- Treść dokumentu nie zmienia polityki narzędzi — żaden fragment pobranej treści nie może rozszerzyć allowlisty narzędzi ani podnieść uprawnień agenta.
- Least-context — model dostaje tylko niezbędny kontekst; im mniej niezaufanej treści w oknie, tym mniejsza powierzchnia indirect injection.
Rozwiązanie 2 — Tool firewall (kontrola akcji agenta)
Nawet jeśli injection przejdzie do modelu, nie może zamienić się w dowolną akcję. Bariera między „model chce" a „system wykonuje".
Allowlista narzędzi
Agent może wywołać tylko jawnie dozwolone narzędzia; wszystko poza listą jest odrzucane, nie „domyślnie dozwolone".
Scope per agent
Każdy agent ma minimalny, wydzielony zakres uprawnień i danych — kompromitacja jednego nie otwiera całego systemu.
Limit akcji
Rate limit i limity ilościowe (liczba wywołań, wolumen danych, wartość operacji) — powstrzymuje eksfiltrację i masowe działania.
Human approval dla high-risk
Akcje o wysokim ryzyku (transakcja, usunięcie, wysłanie danych na zewnątrz, zmiana uprawnień) wymagają zatwierdzenia człowieka.
Rozwiązanie 3 — Output validation (walidacja wyjścia)
Kontrola tego, co agent zwraca i wysyła — ostatnia linia obrony przed skutkiem.
- Walidator zgodności — sprawdzenie, czy odpowiedź/akcja mieści się w polityce i oczekiwanym formacie; odrzucenie wyjść poza schematem.
- Detektor sekretów — skan wyjścia pod kątem kluczy, tokenów, danych osobowych, fragmentów system promptu — blokada zanim opuszczą system.
- Walidacja linków i źródeł — kontrola adresów wychodzących (możliwy kanał eksfiltracji przez URL), weryfikacja, że cytowane źródła istnieją i pokrywają twierdzenie.
- claim ≤ proof — twierdzenia bez pokrycia dowodowego są oznaczane jako GAP, nie prezentowane jako fakt. Doktryna systemu przenosi się na warstwę agentową.
Rozwiązanie 4 — Agent sandbox (bezpieczne środowisko)
- Środowisko testowe — nowe agenty/łańcuchy narzędzi uruchamiane najpierw w izolowanej piaskownicy, odseparowanej od produkcji.
- Brak produkcyjnych sekretów — sandbox nie ma dostępu do realnych kluczy, danych klientów ani systemów transakcyjnych.
- Symulacja przed egzekucją — akcje o skutku (dry-run) są symulowane i walidowane, zanim zostaną wykonane na realnych zasobach.
- Red-teaming injection — regularne testy odpornościowe znanymi wzorcami direct/indirect injection przed wdrożeniem i po każdej zmianie.
Zasada głębokiej obrony: żadna pojedyncza warstwa nie zatrzyma prompt injection niezawodnie. Bezpieczeństwo daje ich złożenie — separacja + firewall + walidacja + sandbox. Poleganie tylko na „lepszym system promptcie" to GAP.
Playbook operacyjny — 7 kroków
1. Detekcja — sygnał injection: alert walidatora wyjścia, anomalne wywołanie narzędzia, próba dostępu do sekretów/system promptu, podejrzana treść w RAG. Zarejestruj prompt/kontekst i czas. Zabezpiecz transkrypt sesji jako artefakt (hash + znacznik czasu).
2. Izolacja agenta — odetnij dotkniętego agenta od produkcji: zablokuj sesję/instancję, wstrzymaj dalsze wywołania. Cel: zatrzymać ciąg akcji, zanim ustalisz zasięg.
3. Zatrzymanie narzędzi i kanałów wyjścia — zablokuj tool calls i kanały wychodzące (e-mail, HTTP, zapisy) dla dotkniętego agenta/scope. Powstrzymuje ewentualną eksfiltrację w toku.
4. Ustalenie wektora — direct (prompt użytkownika) czy indirect (treść z RAG/dokumentu/strony)? Zlokalizuj źródło wstrzykniętej instrukcji. Przy indirect — usuń/zablokuj zatruty dokument w indeksie i ustal, kto jeszcze mógł go pobrać.
5. Ocena wykonanych akcji i eksfiltracji — jakie narzędzia zostały wywołane, jakie dane opuściły system, czy ujawniono sekrety/dane osobowe/system prompt. To decyduje o podbiciu do
P0 i o flagach prawnych (
GDPR_PERSONAL_DATA →
playbook E).
6. Eradykacja i rotacja — usuń zatrutą treść, popraw separację/allowlistę/walidator, zrotuj sekrety w zasięgu agenta. Jeśli doszło do przejęcia sterowania agentem z dostępem do narzędzi — eskaluj do
playbooka H (agent hijack).
7. Walidacja, raport i aktualizacja odporności — potwierdź, że wzorzec injection jest blokowany (test regresyjny w sandboxie), skompletuj ślad dowodowy. Ocena AI Act: przy istotnym incydencie w systemie high-risk rozważ AI_SERIOUS_INCIDENT (art. 73). Lessons learned: nowy wzorzec do red-teamu, korekta polityki narzędzi. Poziom odporności +1.
Powiązania systemowe
← Classification Engine
Realna akcja/eksfiltracja podbija P1→P0 i flagi AI Act. Silnik klasyfikacji.
← Evidence Layer
Transkrypt sesji, log tool calls, zatruty dokument — z hashem. Evidence Board.
→ AI/Agent Security
Architektura obrony agentów (separacja, firewall, sandbox). AI/Agent Security.
Uwaga metodyczna: opis wektorów prompt injection i warstw obrony to ramka metodyczna / dobra praktyka bezpieczeństwa AI (norma), nie opis konkretnego naruszenia u odbiorcy. Odwołania do AI Act (art. 73) opierają się na publicznie znanej treści rozporządzenia. Wszelkie wartości liczbowe i scenariusze użyte przykładowo to SYMULACJA (dane demonstracyjne), nie realne incydenty.
Doktryna: incydent prompt injection uznaje się za zamknięty dopiero po potwierdzeniu (testem regresyjnym), że wzorzec jest blokowany, po ocenie wykonanych akcji i eksfiltracji oraz przy kompletnym śladzie dowodowym — zgodnie z zasadą claim ≤ proof.