
Prompt injection ei ratkea suodattimella – rajaa agentin oikeudet

Suojaa tekoälyagentti niin, että ulkoinen sisältö on sille käsiteltävää tietoa eikä lupa muuttaa tehtävää tai käyttää työkaluja. Eristä verkkosivut, asiakirjat, sähköpostit ja työkalujen vastaukset epäluotettavaksi aineistoksi. Rajaa työkalujen oikeudet tehtävän mukaan, tarkista kutsut sovelluksen omassa koodissa ja vaadi riskialttiille toimille erillinen hyväksyntä.
Haitallisia ilmauksia etsivä suodatin voi vähentää yrityksiä, mutta sen varaan ei voi rakentaa toimintaoikeuksien rajaa. NCSC:n analyysin mukaan kielimalli ei erota ohjeita ja dataa yhtä luotettavasti kuin tietokanta erottaa parametrisoidun kyselyn rakenteen sen arvoista. Siksi myös oikein muotoillun ulkoisen tekstin jälkeen suorittavan palvelun on voitava estää agentin ehdottama luvaton toimi.
Eristä ulkoinen sisältö ennen käsittelyä
Merkitse syötteen alkuperä ennen kuin se liitetään agentin kontekstiin. Käyttäjän varsinainen pyyntö, sovelluksen toimintaohjeet ja haetun sivun teksti ovat eri asemassa, vaikka ne päätyisivät samaan käsittelyketjuun. OWASP:n agenttiturvallisuuden tarkistuslista käsittelee ulkoisia dokumentteja, sähköposteja ja rajapintojen vastauksia epäluotettavana datana sekä tunnistaa työkalujen väärinkäytön ja muistin saastuttamisen erillisiksi riskeiksi.
Jos tehtävä on poimia asiakirjasta määräpäivä, erillinen lukuvaihe voi palauttaa agentille vain tarpeelliset kentät ja tiedon niiden alkuperästä. Lukuvaiheelle ei tarvitse antaa viestien lähetys- tai tietojen muokkausoikeutta. Sama periaate koskee hakutulosta ja työkalun vastausta: aiemman työkalun tuottama teksti ei muutu luotetuksi ohjeeksi siksi, että se saapuu sovelluksen sisäisen rajapinnan kautta.
Sisällön rajaaminen ja epäilyttävän merkinnän poistaminen pienentävät hyökkäyspintaa, mutta käsittelyyn jäävä teksti voi silti sisältää mallia ohjaavan pyynnön. Siksi syötteen puhdistus on varhainen suoja, ei valtuutuspäätös. Valtuutus ratkaistaan vasta siinä komponentissa, joka todella käyttää työkalua.
Anna työkaluille vain tehtävän vaatimat oikeudet
Määritä työkalukohtaiset oikeudet ennen kuin agentti saa pääsyn ulkoiseen aineistoon. Asiakirjaa tiivistävä agentti voi tarvita lukuoikeuden nimettyyn kokoelmaan, mutta yleinen kirjoitusoikeus tai vapaa verkkopyyntö laajentaisi vahingon mahdollisuutta. Erota lukeminen, muuttaminen ja lähettäminen toisistaan sekä rajaa oikeus nimettyihin resursseihin.
Toteuta rajaus työkalun suorittavassa palvelussa ja sen käyttämissä tunnuksissa. Jos malli pyytää sallittua laajempaa kohdetta, palvelu hylkää kutsun riippumatta mallin perustelusta. Myös käyttäjän oikeudet on tarkistettava: agentin oma tekninen tunnus ei saa antaa käyttäjälle pääsyä aineistoon, jota tämä ei muuten voisi käsitellä.
Vähimmät oikeudet rajoittavat seurauksia, jos ulkoinen teksti onnistuu ohjaamaan agenttia. Ne eivät kuitenkaan ratkaise tilannetta, jossa väärä toimi mahtuu jo sallittuun oikeuteen. Esimerkiksi käyttäjän puolesta sallittu sähköpostin lähetys tarvitsee vielä erillisen tarkistuksen vastaanottajasta, sisällöstä ja tehtävän tarkoituksesta.
Pidä muisti käyttäjän ja istunnon rajojen sisällä
Agentin muisti voi säilyttää ulkoisesta aineistosta poimitun ohjeen myöhempää tehtävää varten. Tallenna pysyvään muistiin vain erikseen hyväksytyt tiedot ja liitä merkintä oikeaan käyttäjään, tehtävään ja istuntoon. Määritä muistille myös säilytysaika ja poistoehto, sillä keskustelun päättyminen ei välttämättä poista sovelluksen tallentamaa merkintää.
Jos haettu dokumentti väittää käyttäjän muuttaneen pysyviä asetuksiaan, väitettä ei pidä tallentaa käyttäjän antamana ohjeena. Tallennusvaiheessa on tarkistettava sekä tiedon alkuperä että se, onko tieto tarkoitettu muistettavaksi. Käyttäjien ja istuntojen eristys estää yhden käsittelyketjun sisällön kulkeutumista toiseen, mutta saman istunnon sisällä agentti voi edelleen tehdä virheellisen päätelmän.
Validoi työkalukutsu ennen suoritusta
Käsittele mallin tuottamaa työkalukutsua ehdotuksena. Suorittava palvelu tarkistaa työkalun nimen, parametrien muodon, sallitun kohteen, käyttäjän oikeuden ja yhteyden alkuperäiseen tehtävään ennen kuin kutsu lähtee eteenpäin. OWASP:n prompt injectionin torjuntaohje suosittelee vertaamaan agentin työkalukutsuja käyttäjän oikeuksiin ja istunnon kontekstiin sekä validoimaan parametrit työkalukohtaisesti.
Oletetaan, että käyttäjä pyytää tiivistämään saapuneet viestit ja yksi viesti käskee agenttia lähettämään koko postilaatikon ulkopuoliseen osoitteeseen. Lähetyskutsu on hylättävä, vaikka vastaanottajan osoite ja viestin rakenne olisivat teknisesti kelvollisia: tiivistämistehtävä ei valtuuta tällaista luovutusta. Skeeman tarkistus paljastaa virheellisen kutsun muodon, kun taas tehtävään sidottu valtuutustarkistus pysäyttää oikein muodostetun mutta asiaankuulumattoman kutsun.
Tarkista kohde myös työkalun omasta näkökulmasta. Jos agentti saa pyytää tiedostoa tai verkko-osoitetta, pelkkä parametrin oikea tietotyyppi ei kerro, kuuluuko kyseinen tiedosto tai osoite sallittuun joukkoon. Sovelluksen määrittämä sallittujen kohteiden luettelo tekee tästä päätöksestä riippumattoman mallin tuottamasta tekstistä.
Sido hyväksyntä täsmälliseen toimeen
Pidä ulospäin näkyvät, peruuttamattomat ja laajoja tietomääriä koskevat toimet erillisen hyväksynnän takana. Sähköpostin lähetyksestä näytetään hyväksyjälle vastaanottaja ja lähetettävä sisältö; tietojen poistosta näytetään tarkka kohde ja muutoksen laajuus. Agentti saa ehdottaa toimea, mutta suorittava palvelu ratkaisee itsenäisesti, täyttyvätkö valtuutuksen ja hyväksynnän ehdot.
Sido hyväksyntä käyttäjään, työkaluun, kohteeseen ja niihin parametreihin, jotka hyväksyjä näki. Jos agentti vaihtaa vastaanottajan tai poiston kohteen hyväksynnän jälkeen, vanha päätös ei kelpaa uuteen toimeen. Hyväksynnälle tarvitaan myös vanhenemisaika, jotta aiempaa päätöstä ei voi käyttää myöhemmin eri tilanteessa.
Hyväksyntä ei anna käyttäjälle puuttuvaa oikeutta. Palvelun on edelleen tarkistettava, saako käyttäjä lähettää viestin kyseisestä tilistä tai muuttaa kyseistä resurssia. Hyväksyntä auttaa vain, jos pyyntö on riittävän täsmällinen arvioitavaksi; epämääräinen kuvaus peittää juuri sen kohteen tai seurauksen, josta päätös pitäisi tehdä.
Lokita päätökset ja testaa suojarajat
Tallenna työkalukutsusta tehtävä ja istunto, käytetty työkalu, kohde, valtuutuspäätös, mahdollinen hyväksyntä sekä suorituksen tulos. Näin estettyä kutsua voi verrata siihen pyyntöön, jota agentti oli toteuttamassa. Suojaa lokista salaisuudet ja tarpeettomat henkilötiedot; hyödyllinen tapahtumamerkintä ei edellytä koko sähköpostin tai asiakirjan kopioimista lokiin.
Lokitus auttaa selvittämään tapahtumia, mutta jo suoritettua väärää toimea se ei pysäytä. Testaa siksi ennen käyttöönottoa ja olennaisten muutosten jälkeen syötteitä, joissa verkkosivu, asiakirja tai sähköposti yrittää vaihtaa tehtävän, kutsua luvatonta työkalua tai jättää ohjeen muistiin. Tarkista suorittavan palvelun lopputulos: kielletty kutsu estyy, riskialtis toimi jää odottamaan juuri sitä koskevaa hyväksyntää ja päätöksestä jää käyttökelpoinen lokimerkintä.
Lue myös:
Aiheeseen liittyvät artikkelit


Nvidia eristää karanneen tekoälyagentin millisekunneissa – mutta sääntö ratkaisee

Yhdysvallat nimesi tekoälyn uusiksi – laki ei silti muuttunut

MCP vai A2A? Työkalu ja agentti tarvitsevat eri protokollan

GitHubin tietoturvakorjaus muistaa vanhat ratkaisut – tieto säilyy 28 päivää

Claude Code vai Codex? Valinta ratkeaa työnkulkuun, ei yhteen testiin
Tilaa uutiskirjeemme
Saat tuoreimmat Web3-, tekoäly- ja kryptouutiset suoraan sähköpostiisi.