Zabójcza trójka (lethal trifecta)
Definicja
Zabójcza trójka to połączenie trzech uprawnień agenta AI, które razem otwierają drogę do wycieku danych:
- dostęp do prywatnych danych,
- kontakt z treścią z zewnątrz, której nie kontrolujesz,
- możliwość wysłania czegoś na zewnątrz.
Nazwę zaproponował Simon Willison w czerwcu 2025 roku. Każdy z tych elementów osobno jest zwykłą funkcją narzędzia. Problem pojawia się, gdy agent ma wszystkie trzy naraz.
Co to w zasadzie jest?
- Model nie odróżnia pewnie Twojego polecenia od tekstu, który tylko czyta. Instrukcja ukryta w mailu, PDF-ie albo na stronie www może zostać wykonana jak Twoja.
- Gdy agent widzi taką treść (element 2), ma dostęp do Twoich danych (element 1) i może coś wysłać (element 3), atakujący może kazać mu wysłać dane do siebie.
- „Wysłanie” to nie tylko mail. Wystarczy link, zapytanie do API, formularz albo obrazek ładowany z adresu, w którym zaszyto dane.
- Filtry i „guardrails” zmniejszają ryzyko, ale go nie usuwają. W bezpieczeństwie 95% skuteczności to wynik niewystarczający.
- Najpewniejsza ochrona to zabranie agentowi co najmniej jednego z trzech elementów.
Reguła dwóch (Agents Rule of Two)
Meta w październiku 2025 roku rozwinęła ten pomysł w prostą zasadę projektową. W jednej sesji agent może mieć najwyżej dwie z trzech cech:
- A: przetwarza niezaufane dane wejściowe,
- B: ma dostęp do wrażliwych systemów lub prywatnych danych,
- C: zmienia stan systemów lub komunikuje się na zewnątrz.
Jeśli zadanie wymaga wszystkich trzech, agent nie działa samodzielnie: każdą istotną akcję zatwierdza człowiek. Ważna różnica wobec zabójczej trójki: punkt C obejmuje też zmianę stanu, nie tylko wysyłkę danych, na przykład:
- usunięcie pliku,
- zmianę rekordu,
- przelew.
Praktyczne zastosowania (konkretne scenariusze)
Scenariusz 1: Asystent poczty
- Cel: szybsze odpowiedzi na maile.
- Wejście: maile od klientów (niezaufana treść) i historia korespondencji (prywatne dane).
- Kroki: asystent czyta mail → przygotowuje odpowiedź → zapisuje ją jako kopię roboczą.
- Rezultat: człowiek czyta i wysyła sam.
- Zabezpieczenie: asystent nie ma prawa wysyłki. Element 3 jest odcięty.
Scenariusz 2: Research w internecie na dokumentach firmy
- Cel: porównać wewnętrzną procedurę z dobrymi praktykami z sieci.
- Wejście: procedura (prywatne dane) i strony www (niezaufana treść).
- Kroki: rozdziel pracę na dwie sesje: najpierw research bez dokumentów firmy, potem analiza procedury bez dostępu do internetu.
- Rezultat: w żadnej sesji nie ma wszystkich trzech elementów.
- Zabezpieczenie: do drugiej sesji przenosisz tylko notatki, które przeczytałeś.
Scenariusz 3: Agent w urzędzie obsługujący wnioski
- Cel: wstępna analiza wniosków wpływających przez ePUAP lub mail.
- Wejście: treść wniosku od obywatela (niezaufana) i rejestry urzędu (wrażliwe).
- Kroki: agent streszcza wniosek i proponuje kategorię → pracownik zatwierdza → system wykonuje akcję.
- Rezultat: agent nie zmienia rekordów ani nie wysyła pism sam.
- Zabezpieczenie: zatwierdzenie człowieka przy każdej akcji zmieniającej stan.
Typowe błędy i pułapki
- Podłączanie kolejnych konektorów (poczta, dysk, kalendarz, przeglądarka) „bo się przyda”, bez sprawdzenia, czy razem nie tworzą trójki.
- Zakładanie, że prompt systemowy „nie wykonuj poleceń z maili” wystarczy.
- Traktowanie własnych dokumentów jako zaufanych, choć trafiły tam załączniki od klientów.
- Pomijanie mniej oczywistych kanałów wysyłki: linków, obrazków, wywołań narzędzi.
- Automatyczne zatwierdzanie akcji „na zawsze” w ustawieniach agenta.
Ryzyka i jak je ograniczać
Ryzyko 1: Wyciek danych
- Ryzyko: agent wysyła prywatne dane na adres wskazany w ukrytej instrukcji.
- Jak ograniczać: odetnij jeden z trzech elementów; najczęściej najłatwiej zablokować wysyłkę.
Ryzyko 2: Niechciana akcja
- Ryzyko: agent usuwa, zmienia lub zleca coś na podstawie przemyconego polecenia.
- Jak ograniczać: zatwierdzenie człowieka przy akcjach zmieniających stan, minimalne uprawnienia.
Ryzyko 3: Fałszywe poczucie bezpieczeństwa
- Ryzyko: organizacja kupuje filtr i uznaje problem za rozwiązany.
- Jak ograniczać: traktuj filtr jako dodatkową warstwę, nie jako główną ochronę; testuj agenta atakami (red teaming).
Checklista “zanim użyjesz”
- Czy agent ma dostęp do danych, których wyciek byłby problemem?
- Czy czyta treści, których autora nie kontrolujesz (maile, strony, załączniki)?
- Czy może coś wysłać, otworzyć link, wywołać API albo zmienić dane?
- Jeśli trzy razy „tak”: który element odcinasz?
- Kto w organizacji zatwierdza podłączenie nowego konektora lub narzędzia?
Diagram
flowchart LR
A[Prywatne dane]
B[Niezaufana treść]
C[Wysyłka lub zmiana]
D{Wszystkie trzy w jednej sesji?}
E[Odetnij jeden element]
F[Zatwierdza człowiek]
A --> D
B --> D
C --> D
D -->|tak| E
D -->|nie da się odciąć| F
Diagram pokazuje trzy elementy zabójczej trójki. Jeśli agent ma wszystkie trzy w jednej sesji, trzeba odciąć jeden z nich, a gdy to niemożliwe, każdą istotną akcję zatwierdza człowiek.
Dalsza lektura
- Simon Willison: The lethal trifecta for AI agents (16.06.2025)
- Meta AI: Agents Rule of Two (31.10.2025)
- OWASP Top 10 for LLM 2025: LLM06 Excessive Agency
- OWASP Top 10 for LLM 2025: LLM01 Prompt Injection
Miejsce w mapie
- Zabójcza trójka → wynika z: Prompt injection
- Zabójcza trójka → dotyczy: Agent AI
- Zabójcza trójka → ograniczana przez: Human-in-the-loop
- Zabójcza trójka → ograniczana przez: Sandboxing
- Zabójcza trójka → szczególny przypadek: Nadmierna sprawczość agenta