system prompt leakage
| Po angielsku | system prompt leakage |
|---|---|
| Którą formą pisać | po angielsku Polski odpowiednik istnieje, ale w praktyce nikt tak nie pisze. Zostaw angielski, polski trzymaj jako synonim. |
| Inne formy | wyciek promptu systemowego · ujawnienie system promptu · Hidden Context Exposure (nazwa kategorii OWASP 2026) |
| Kategoria | Bezpieczeństwo AI i modeli językowych |
System prompt leakage to ujawnienie instrukcji systemowych, którymi twórca aplikacji steruje chatbotem albo agentem AI. OWASP opisuje tę podatność jako ryzyko, że prompty systemowe, czyli instrukcje kierujące zachowaniem modelu, zawierają informacje wrażliwe, które nie miały zostać odkryte, i że ich ujawnienie ułatwi kolejne ataki [1]. OWASP podkreśla, że prompt systemowy nie powinien być traktowany jako tajemnica ani używany jako mechanizm bezpieczeństwa [1]. W edycji listy OWASP na 2026 rok kategorię zastąpiono szerszą, nazwaną Hidden Context Exposure [2].
Jak działa
Prompt systemowy jest doklejany do każdej rozmowy przed pytaniem użytkownika. Model widzi go jako zwykły tekst w swoim kontekście, więc może go powtórzyć, streścić albo przetłumaczyć, jeśli rozmowa zostanie odpowiednio poprowadzona. Secawa zauważa, że atakujący często próbują wydobyć instrukcje systemowe i zasady działania asystenta, bo te informacje pomagają dopracować kolejne kroki ataku [5].
Zhang, Carlini i Ippolito w pracy z lipca 2023 roku zmierzyli skuteczność takich prób [3]. W eksperymentach z 11 modelami językowymi proste ataki tekstowe ujawniały prompty z wysokim prawdopodobieństwem [3]. Autorzy zauważyli, że firmy często traktują prompty jako tajemnicę, a nawet sprzedają je na giełdach, oraz że wydobycie było możliwe z rzeczywistych systemów, takich jak Claude 3 i ChatGPT, mimo istniejących zabezpieczeń [3].
Groźny jest nie sam wyciek tekstu, lecz to, co w nim zapisano. Przebieg pokazuje schemat poniżej.
OWASP opisuje ten scenariusz: prompt zawiera dane uwierzytelniające do narzędzia, a po wycieku atakujący używa ich w innym celu [1].
Wyciek promptu jest więc zwykle etapem, a nie celem. Według OWASP prawdziwe ryzyko nie polega na tym, że ktoś pozna treść instrukcji, lecz na podatnościach, które ta treść odsłania: nieuprawnionym dostępie, błędnej kontroli uprawnień albo niewłaściwym obchodzeniu się z danymi wrażliwymi [1]. Secawa wymienia ujawnienie informacji o systemie i instrukcji systemowych wśród typowych skutków udanego prompt injection [5]. Aplikacja, która nie trzyma w prompcie niczego poza opisem roli i stylu odpowiedzi, na wycieku traci niewiele.
Co może wyciec
OWASP wymienia cztery typowe rodzaje ryzyka [1].
| Rodzaj | Przykład | Następny krok atakującego |
|---|---|---|
| Wrażliwa funkcjonalność | typ bazy danych, klucze API [1] | ataki celowane, np. SQL injection [1] |
| Reguły wewnętrzne | limity transakcji i kwot [1] | obejście tych limitów [1] |
| Kryteria filtrowania | treść odmowy i lista zakazanych tematów [1] | obejście filtrów [1] |
| Uprawnienia i role | struktura ról w aplikacji [1] | eskalacja uprawnień [1] |
Sekurak tłumaczy zmianę nazwy na 2026 rok tym, że sekret zaszyty w prompcie jest tylko jednym z elementów kontekstu [2]. Nowa kategoria obejmuje także pamięć, pobrane dane, instrukcje, kontekst wewnętrzny i informacje z narzędzi [2]. Wyciek danych innych niż instrukcje opisuje hasło ujawnienie informacji wrażliwych (sensitive information disclosure).
W WordPressie
Wtyczki czatu i asystenci AI na stronach WordPress budują prompt systemowy z ustawień wtyczki: opisu firmy, zasad odpowiadania, czasem listy produktów i reguł rabatowych. Wszystko, co trafia do tego tekstu, trzeba uznać za potencjalnie publiczne [1].
Typowe błędy to:
- wpisanie klucza API innej usługi, na przykład systemu zamówień, do instrukcji, „żeby model mógł go użyć”;
- zapisanie w prompcie reguł dostępu w rodzaju „nie przyznawaj rabatu, chyba że klient poda kod”, które model ma egzekwować sam;
- opisanie w prompcie ról użytkowników i tego, co wolno administratorowi.
Klucz w prompcie to odmiana problemu, który MITRE opisuje jako CWE-798: produkt zawiera zaszyte dane uwierzytelniające, takie jak hasło albo klucz kryptograficzny [6]; zob. zaszyte w kodzie hasło. Klucze do usług zewnętrznych powinien trzymać kod wtyczki, na przykład w konfiguracji serwera, i używać ich sam, zamiast przekazywać je modelowi. Reguły biznesowe i uprawnienia muszą być sprawdzane w kodzie PHP, a nie w instrukcji dla modelu; opisuje to weryfikacja uprawnień.
Jak się bronić
OWASP zaleca cztery środki [1]:
- Oddzielenie danych wrażliwych od promptu. Klucze API, dane uwierzytelniające, nazwy baz danych i struktura uprawnień powinny znajdować się w systemach, do których model nie ma bezpośredniego dostępu [1]. Pomaga w tym zarządzanie sekretami.
- Niepoleganie na prompcie w kontroli zachowania. Ponieważ model jest podatny na prompt injection, wykrywanie niepożądanych treści powinno działać w systemach zewnętrznych [1].
- Niezależne guardrails. Sprawdzanie wyników poza modelem zamiast polegania wyłącznie na jego treningu [1].
- Kontrole poza modelem. Rozdzielenie uprawnień i autoryzacja muszą działać deterministycznie poza modelem [1].
Ukrywanie promptu nie jest zabezpieczeniem, tylko formą security through obscurity. Jeśli klucz już trafił do promptu, należy go unieważnić i wygenerować nowy, zgodnie z zasadami rotacji kluczy, bo nie da się ustalić, kto zdążył go odczytać. Próby wydobycia promptu warto uwzględnić w testach: Microsoft wymienia wydobywanie meta promptu wśród zadań dla specjalistów od bezpieczeństwa w AI red teamingu [4].
Historia i przykłady
Pomiar ataków. Praca Zhang, Carliniego i Ippolito została zgłoszona 13 lipca 2023 roku i poprawiona w sierpniu 2024 roku [3]. Oprócz samych ataków autorzy zaproponowali metodę, która z wysoką precyzją odróżnia prawdziwy wydobyty prompt od halucynacji modelu [3].
Obejście zakazów. OWASP opisuje scenariusz, w którym prompt zakazuje treści obraźliwych, linków zewnętrznych i wykonywania kodu; atakujący wydobywa go, a następnie przez prompt injection omija te ograniczenia i doprowadza do zdalnego wykonania kodu [1]. Ten sam mechanizm leży u podstaw ataków typu jailbreak.
Przypisy
6- [1] LLM07:2025 System Prompt Leakage · OWASP Gen AI Security Project
- [2] Aktualizacja listy OWASP Top 10 dla LLM 2026 – agent AI dostał ręce, klucze i dostęp do firmowych systemów · Sekurak
- [3] Effective Prompt Extraction from Language Models (Zhang, Carlini, Ippolito) · arXiv
- [4] Planning red teaming for large language models (LLMs) and their applications · Microsoft Learn
- [5] Prompt injection – czym jest, dlaczego stanowi ryzyko dla organizacji i jak je ograniczyć · Secawa
- [6] CWE-798: Use of Hard-coded Credentials · MITRE