
Prompt injection kroz dokument: AI agent ne smije sam odobriti alat

AI agenta koji čita dokumente zaštitite tako da dohvaćeni sadržaj ostane podatak, a svaki predloženi poziv alata prođe provjeru ovlasti u aplikacijskom kodu. Slanje podataka, brisanje i druge rizične radnje zaustavite do odobrenja ovlaštene osobe. OWASP-ove smjernice za prompt injection preporučuju odvajanje nepouzdanog sadržaja, provjeru argumenata i ovlasti izvan modela te odobrenje za konkretne rizične radnje.
Izravni napad stiže u poruci upućenoj agentu; neizravni je skriven u dokumentu, rezultatu alata ili drugom sadržaju koji agent učita tijekom dopuštenog zadatka. NIST-ov opis preuzimanja agenta pokazuje mehanizam neizravnog napada: napadač umeće upute u podatke koji izgledaju kao uobičajen ulaz kako bi agenta skrenuo s korisnikova zadatka.
Dokument daje podatke, ali ne dodjeljuje ovlasti
Prije dohvaćanja zabilježite korisnikov zahtjev i dopušteni opseg rada. Ako korisnik traži sažetak ugovora, dokument može dati činjenice za sažetak, ali ne može proširiti zadatak na slanje e-pošte, otvaranje drugih datoteka ili promjenu zapisa. Isto pravilo primijenite na rezultate pretraživanja, odgovore alata i sadržaj iz povijesti razgovora.
Pri učitavanju dokumentu pridružite podatak o podrijetlu i proslijedite ga modelu kao izdvojen vanjski sadržaj. Rečenica u dokumentu koja traži da agent zanemari korisnika ili pozove alat ostaje dio sadržaja koji se može opisati, a ne nova uputa aplikaciji. Oznaka da je sadržaj nepouzdan pomaže pri obradi, ali sama ne zaustavlja izvršenje: granicu mora provoditi i sustav koji upravlja alatima.
Od dohvaćanja do izvršenja alata
Referentni tijek odvojeno obrađuje čitanje, prijedlog radnje i izvršenje. Model može sastaviti prijedlog poziva, ali prijedlog ne smije imati učinak dok izvršni sloj ne provjeri zadatak, ovlasti i argumente.
- Aplikacija dohvaća dokument za određeni korisnikov zadatak i čuva podatak o njegovu izvoru. Parser izdvaja potreban sadržaj bez pretvaranja rečenica iz dokumenta u sistemske upute.
- Agent sastavlja odgovor ili predlaže strukturirani poziv s nazivom alata, operacijom i argumentima. U toj fazi ništa se ne šalje niti mijenja u vanjskom sustavu.
- Izvršni sloj uspoređuje prijedlog s korisnikovim zahtjevom, njegovim identitetom i pravima te dopuštenom operacijom nad konkretnim resursom. Provjerava i argumente poput primatelja poruke, identifikatora datoteke i odredišne adrese.
- Ako radnja zahtijeva odobrenje, aplikacija ovlaštenoj osobi prikazuje stvarnu operaciju i njezine argumente. Nakon odobrenja izvršni sloj ponovno provjerava iste podatke, poziva alat s potrebnim ovlastima te bilježi odluku i ishod.
U uvjetnom primjeru dokument tvrdi da je administrator već odobrio slanje sadržaja. Izvršni sloj tu rečenicu vidi samo kao sadržaj dokumenta. Odluku o odobrenju uzima iz aplikacije ili povezanog sustava za ovlasti, gdje se može povezati s korisnikom i točno određenom radnjom.
Dopuštenje vrijedi za operaciju, resurs i argumente
Za svaki alat definirajte koje operacije može izvršiti i nad kojim resursima. Agent namijenjen sažimanju dokumenata može dobiti pristup čitanju datoteka kojima korisnik već ima pristup, bez mogućnosti slanja poruka ili brisanja. Ako aplikacija nudi i te funkcije, provjera se mora obaviti pri svakom pozivu, u kontekstu korisnika za kojega agent radi.
Primjer pravila u aplikacijskom kodu: čitanje je dopušteno samo za dokument kojemu korisnik ima pristup, a slanje njegova sadržaja samo primatelju obuhvaćenom korisnikovim zahtjevom, uz potrebno odobrenje. Predloži li model drugi dokument ili vanjskog primatelja, kod odbija poziv čak i ako naziv alata odgovara dopuštenoj funkciji. Provjera samog naziva alata ostavila bi otvoren put za zlouporabu njegovih argumenata.
OWASP-ova analiza prevelike autonomije preporučuje ograničavanje funkcija i ovlasti alata, izvršavanje radnji u kontekstu korisnika, provjeru u sustavu koji radnju provodi te ljudsko odobrenje prije radnji s velikim učinkom. Zato osobi koja odobrava prikažite ciljnu datoteku, primatelja, podatke koji se prenose i samu operaciju. Promijeni li agent nakon potvrde primatelja, sadržaj ili ciljnu datoteku, prethodno odobrenje više ne odgovara predloženoj radnji i izvršenje treba zaustaviti.
Testovima provjerite i zabranu i dopušten zadatak
Testirajte napad u kanalu kojim sadržaj stvarno dolazi. Uputa umetnuta u dokument provjerava granicu između dokumenta i agenta; ista uputa poslana kao korisnička poruka provjerava drugu granicu. Upotrijebite probne podatke i zamjenske alate koji bilježe pokušaje poziva bez stvarnog slanja ili brisanja.
- U korisničku poruku stavite izravnu uputu za radnju izvan dopuštenog opsega. Izvršni sloj treba odbiti poziv bez obzira na to prihvati li model uputu u svojem odgovoru.
- U testni dokument umetnite zahtjev da se njegov sadržaj pošalje nepoznatom primatelju. Poziv mora biti odbijen ili zaustavljen do propisanog odobrenja; zamjenski alat ne smije zabilježiti neovlašteno slanje.
- U odgovor alata umetnite tvrdnju da ima viši prioritet od korisnikova zahtjeva. Agent ga može iskoristiti kao podatak za dopušteni zadatak, ali tvrdnja ne smije promijeniti prava ili otvoriti drugi alat.
- Nakon odobrenja promijenite jedan argument predložene radnje. Izvršenje se mora zaustaviti dok ovlaštena osoba ne vidi i odobri novu radnju.
- Dodajte bezazlen dokument i dopušten zahtjev. Agent treba moći završiti zadatak, kako kontrola ne bi blokirala legitimnu uporabu.
U zapisima odvojeno promatrajte modelov odgovor, odluku o ovlasti i stvarni poziv alata. Pristojno odbijanje u završnoj poruci ne dokazuje zaštitu ako je alat prije toga već izvršio radnju. Mjerilo je vidljiv ishod: zabranjeni učinak izostaje, a dopušteni zadatak ostaje izvediv.
Pročitajte i:
Povezani članci


Kako testirati AI agenta prije produkcije: izlaz nije isto što i ishod

RSA Agent ID zaustavlja rizičan poziv — stiže 16. studenoga

NVIDIA ograđuje AI agente: Sentry obećava reakciju u milisekundama

n8n ili Zapier: kontrola infrastrukture nasuprot 9.000 integracija

AI agent progutao je budžet? Trošak se mjeri po uspješnom zadatku
Pretplatite se na naš newsletter
Primajte najnovije vijesti o Web3-u, AI-ju i kriptovalutama izravno u svoj sandučić.