Nie da się zapobiec prompt injection. Co zatem robić?
Przestań próbować budować idealną wiadomość systemową (system message). Przestań czekać, aż lepsza wersja modelu rozwiąże problemy z bezpieczeństwem.
Prompt injection i tak nastąpi. Żaden model nie odmawia niezawodnie wykonania złośliwych instrukcji, gdy wyglądają one jak polecenia. Jeśli zaprojektujesz swoje zabezpieczenia w oparciu o założenie o doskonałości modeli, poniesiesz porażkę.
Zmień podejście. Nie pytaj, jak zapobiec wstrzyknięciu. Zapytaj, co Twój agent może zrobić, gdy wstrzyknięcie zakończy się sukcesem.
Stosuj się do tych zasad, aby ograniczyć szkody:
- Używaj poświadczeń o ograniczonym zakresie uprawnień (capability-scoped credentials). Nadaj swojemu agentowi tylko te uprawnienia, których potrzebuje do bieżącego zadania. Agent z dostępem tylko do odczytu wyrządzi mniejszą szkodę niż agent z kluczem administratora.
- Kontroluj działania niszczycielskie. Wymagaj drugiego czynnika uwierzytelnienia lub ręcznej weryfikacji dla działań takich jak usuwanie, płatności czy przyznawanie dostępu. Nie pozwól modelowi decydować, czy te działania są bezpieczne.
- Traktuj wszystkie dane wejściowe z zewnątrz jako niepewne. Dotyczy to wiadomości użytkowników, stron internetowych, wyników narzędzi i dokumentów. Dane często stają się instrukcjami w momencie wejścia do okna kontekstowego (context window).
- Monitoruj wyniki narzędzi. Wiele frameworków przekazuje logi narzędzi bezpośrednio do kontekstu modelu. Badanie 17 022 umiejętności agentów wykazało, że w 73,5% przypadków poświadczenia wyciekały poprzez logi debugowania. Usuwaj poufne dane z wyników narzędzi, zanim trafią do modelu.
- Monitoruj zachowanie, a nie tylko jakość. Przejęty agent generuje wysokiej jakości tekst, wykonując jednocześnie nieautoryzowane działania. Musisz ustalić wzorzec (baseline) normalnych sekwencji działań i otrzymywać alerty w przypadku odchyleń.
Zastosuj te trzy poziomy monitorowania zachowań:
- Reguły statyczne: Wykrywaj oczywiste zmiany, np. gdy agent nagle zaczyna wysyłać e-maile.
- Wzorce sekwencji: Oznaczaj działania, które nie pasują do typowego schematu pracy agenta.
- Niezależna weryfikacja: Użyj drugiego modelu do oceny głównego agenta.
Jeśli Twój agent korzysta z pamięci, dbaj o jej czystość. Pojedyncze wstrzyknięcie może zapisać „zatrute” fakty, które będą powtarzać się w każdej sesji. Ograniczaj zakres pamięci do konkretnej instancji i śledź pochodzenie każdej informacji.
Gdyby agent został przejęty w tej chwili, czy zauważyłbyś to w swoich logach? Czy lecisz po omacku?
Source: https://dev.to/brennhill/you-cant-prevent-prompt-injection-so-what-do-you-actually-do-1d37
Optional learning community: https://t.me/GyaanSetuAi
