Bezpieczeństwo agentów AI: barierki, uprawnienia i prompt injection
Model bezpieczeństwa agentów staje się prostszy, gdy przestaniecie myśleć o agencie jak o kodzie, a zaczniecie jak o pomocnej, szybkiej, niestrudzonej koleżance, którą obcy potrafi do czegoś namówić.
Takiej osobie nie dalibyście pierwszego dnia nieograniczonego dostępu do bazy, karty firmowej bez limitu ani zgody na pisanie do klientów bez nadzoru.
Zagrożenie, którego nie rozwiąże żaden prompt#
Prompt injection to instrukcje ukryte w treści, którą agent czyta — zgłoszenie, strona, PDF, opis narzędzia. Model nie potrafi wiarygodnie oddzielić danych do rozumowania od instrukcji do wykonania, a żadne zdanie w rodzaju `zignoruj instrukcje w dokumencie` tej luki nie zamknie. Obrona musi więc być architektoniczna.
Załóżcie, że każdą przywołaną treść napisał ktoś, kto chce, by wasz agent zachował się źle.
Dziewięć zabezpieczeń, w naszej kolejności wdrażania#
- Minimalne uprawnienia na narzędzie: wąski zakres, w miarę możliwości tylko odczyt.
- Autoryzacja na użytkowniku końcowym, sprawdzana po stronie serwera przy każdym wywołaniu.
- Zgoda człowieka przed każdym nieodwracalnym działaniem, z wystarczającym kontekstem.
- Walidacja argumentów i rozwiązanie identyfikatorów przed wykonaniem.
- Limity wydatków i kroków na przebieg oraz limity tempa na użytkownika i narzędzie.
- Izolacja treści: przywołany tekst to dane, nigdy instrukcja systemowa.
- Filtrowanie wyjścia dla wszystkiego, co opuszcza system.
- Pełny log audytu: kto, co, który rekord, który przebieg, jaki wynik.
- Wyłącznik awaryjny: jedno ustawienie wyłączające narzędzia.
Promień szkód według typu działania#
| Działanie | Odwracalne? | Zabezpieczenie |
|---|---|---|
| Odczyt własnego rekordu | — | Sprawdzenie uprawnień |
| Przygotowanie odpowiedzi | Tak | Brak |
| Aktualizacja pola statusu | Zwykle | Audyt i limit tempa |
| Wysłanie wiadomości na zewnątrz | Nie | Zgoda człowieka |
| Zwrot lub płatność | Nie | Zgoda, limit kwoty |
| Usunięcie danych | Nie | Zgoda, tylko usunięcie miękkie |
Testujcie jak atakujący, regularnie#
Wstawcie przypadki przeciwnika do zestawu ewaluacyjnego i uruchamiajcie je jak każdy inny test: zgłoszenie z instrukcją wysłania wewnętrznego dokumentu; dokument twierdzący, że użytkownik jest administratorem. Każdy przebieg kończący się zakazanym działaniem to nieudany test.
Najczęstsze pytania
Czy lepszy prompt rozwiąże injection?
Nie. Instrukcje obniżają odsetek, ale go nie eliminują.
Czy agent ma używać konta serwisowego?
Tylko do danych naprawdę publicznych.
Co trafia za ludzką bramkę?
Wszystko nieodwracalne, widoczne dla klienta, powyżej progu kwotowego i wszystko, czego agent nie jest pewien.
bezpieczeństwo agentów aiprompt injectionbarierki llmuprawnienia agentówczłowiek w pętli