Turvallisin tapa antaa AI-agentille pääsy liiketoimintatietoihin on tehdä agentista liiketoimintajärjestelmän asiakas sen sijaan, että se olisi käyttäjä salasanalla. Agentti yhdistää nimettynä henkilönä standardin kirjautumisen kautta, saa vain ne työkalut, jotka henkilön rooli sallii, jokainen kutsu tarkistetaan uudelleen järjestelmän toimesta sen suorittaessa, sen kulut rajoitetaan ja se jättää lokin jokaisesta toiminnasta, joka on liitetty kyseiseen henkilöön. Kun mitään näistä tarkistuksista ei voida tehdä, pääsy evätään sen sijaan, että se oletettaisiin.
Mikään siitä ei elä kehotteessa. Ohjeet mallille ovat hyödyllisiä käyttäytymiselle ja hyödyttömiä turvallisuudelle, koska mallia voidaan väittää niiden ulkopuolelle lukemalla asiakirjaa. Kontrollien on oltava voimassa datan hallitsevassa järjestelmässä jokaisessa kutsussa, riippumatta siitä, mitä agentti uskoo sille kerrotun.
Arkkitehtuuri: agentti on asiakas, järjestelmä on valtuus
Aloita muodosta, koska suurin osa virheistä on muotoon liittyviä virheitä. Henkilö pyytää agentiltaan jotakin. Agentti päättää, mitä työkaluja kutsua. Jokainen kutsu kulkee liiketoimintajärjestelmälle kuuluvan käyttöoikeuskerroksen läpi, ei agentille, ja vain sitten se saavuttaa moduulin, kuten talous tai CRM. Agentti ei koskaan kosketa tietokantaa, ei koskaan pidä tietokannan käyttöoikeustietoja, eikä koskaan näe työkalua, jota sen henkilö ei voisi käyttää.
Pyyntö siirtyy henkilöltä agentilleen, sitten käyttöoikeuskerroksen läpi, ennen kuin se saavuttaa minkään moduulin. Kerros suodattaa, mitä agentille tarjotaan, ja tarkistaa, mitä se kutsuu. Agentti voi käyttää vain niitä työkaluja, joita sen henkilö saa käyttää, niillä tiedoilla, joita sen henkilö voi nähdä.
Kuvan alla oleva periaate on yksi lause: agentti toimii sen henkilön valtuudella, jota se edustaa, eikä koskaan enempää. Kaikki muu tässä artikkelissa on tapa tehdä tuosta lauseesta totta paineen alla, kun malli on väärässä, kun asiakirja, jota se lukee, sisältää ohjeita tai kun token vuotaa.
OWASP Top 10 LLM-sovelluksille nimeää epäonnistumisen, jonka tämä arkkitehtuuri estää: liiallinen valtuutus, joka jakautuu liialliseen toiminnallisuuteen (työkalut, joita työ ei tarvitse), liiallisiin käyttöoikeuksiin (enemmän pääsyä alavirtaan kuin tarpeen) ja liialliseen autonomiaan (ei itsenäistä tarkistusta ennen suurivaikutteista toimintoa). Sen lieventämiset luetaan käyttöoikeuskerroksen spesifikaatioksi: suorita käyttäjän kontekstissa, minimoi työkalut ja niiden käyttöoikeudet, valvo valtuutusta alavirran järjestelmässä sen sijaan, että luotettaisiin malliin, ja vaadi henkilön hyväksyntä suurivaikutteisille toiminnoille.
Viisi kontrollia ja missä kukin sijaitsee
Kontrollit eivät ole uusia; ne ovat kontrollit, joita jo sovellat henkilöön, jolla on järjestelmäpääsy, sovellettuna asiakkaaseen, joka toimii kyseisen henkilön puolesta. Taulukko kertoo, mitä kukin vastaa, missä se on voimassa ja miltä epäonnistuminen näyttää, kun se puuttuu. Sijaintisarakkeessa on tärkeä osa. Kehotteessa voimassa oleva kontrolli on ehdotus.
| Kontrolli | Mitä se ratkaisee | Voimassa missä | Epäonnistuminen, kun se puuttuu |
|---|---|---|---|
| Henkilöllisyys | Kenen puolesta agentti toimii | Kirjautuminen OAuthin kautta; järjestelmälle myönnetty token, joka on sidottu nimettyyn käyttäjään | Jaetut palvelutilit; toimet ilman omistajaa; vuotanut avain, joka toimii kaikille |
| Laajuus | Mitä se saa tehdä | Työkalut suodatetaan henkilön roolin mukaan ennen tarjontaa, ja tarkistetaan uudelleen jokaisessa kutsussa | Agentti, joka voi lukea palkkatietoja, koska sen henkilö tarvitsi kerran kontaktin puhelinnumeroa |
| Budjetti | Kuinka paljon se voi kuluttaa | Kulutuksen yläraja jokaiselle integraatiolle järjestelmän omassa tekoälyssä; nopeusrajoitukset työkalukutsuissa | Huonosti määritelty tehtävä, joka pyörii koko yön; rajaton lasku |
| Lokit | Mitä se teki, millä ja mitä tapahtui | Jokainen puhelu tallennetaan syötteineen ja tuloksineen, ja se liitetään henkilöön | Ei mahdollisuutta tarkistaa, kumota tai selittää toimintoa jälkikäteen |
| Sulje epäonnistuminen | Mitä tapahtuu, kun tarkistusta ei voida tehdä | Hylkää, virheellä, josta agentti voi raportoida | Epäselvyys ratkaistaan agentin eduksi; malli päättää omasta valtuudestaan |
| Vahvistus kirjoituksille | Näkeekö henkilö sen ennen kuin se tapahtuu | Asiakas kysyy ennen merkittäviä toimia; järjestelmä merkitsee, mitkä työkalut ovat merkittäviä | Rahaa lähetetty, tietueet poistettu tai viestejä julkaistu virheellisesti luetun ohjeen perusteella |
Kuusi riviä viidelle kontrollille plus yksi, jonka agentin asiakkaat itse tarjoavat. Viisi kuudesta toteutetaan liiketoimintajärjestelmän tai asiakkaan toimesta, eikä mikään mallin toimesta.
Henkilöllisyys: yhdistä henkilönä, OAuthin kautta, ei koskaan jaetulla avaimella
Mallin kontekstiprotokollan valtuutusmäärittely on tarkka tämän suhteen. Etäpalvelin toimii OAuth 2.1 -resurssipalvelimena; asiakas saa tokenin standardin valtuutusprosessin kautta PKCE:llä; asiakkaan on ilmoitettava, mihin palvelimeen token on tarkoitettu resurssiparametrin avulla; ja palvelimen on vahvistettava, että jokainen token on myönnetty nimenomaan sille, hyläten kaikki muut. Määrittely kieltää nimenomaisesti tokenin siirtämisen, jossa palvelin hyväksyy tokenin, jota se ei ole myöntänyt, ja välittää sen eteenpäin, koska se tuhoaa sekä tarkastuspolun että luottamuksen rajan.
Käytännössä tämä tarkoittaa, että "kirjaudu sisään kerran, ei liitettävää tokenia". Henkilö lisää työtilan osoitteen agenttiinsa, siirtyy normaalille kirjautumissivulle, hyväksyy yhteyden ja agentti saa tokenin, joka nimeää heidät ja toimii vain kyseisessä työtilassa. Anthropicin ohjeet mukautetuille liittimille Claude:ssa ovat tarkistaa palvelimen pyytämät laajuudet, rajoittaa niitä mahdollisuuksien mukaan ja yhdistää vain luotettaviin palvelimiin. Myyjä, joka sen sijaan pyytää sinua liittämään yrityksen laajuisen API-avaimen agentin kokoonpanoon, on ohittanut ensimmäisen valvonnan ja tehnyt muut neljä paljon vaikeammiksi.
Laajuus: suodata ennen tarjoamista, tarkista uudelleen käytön aikana
Agentti selvittää, mitä se voi tehdä kysymällä palvelimelta työkalulistaa. Oikea suunnittelu vastaa tähän kysymykseen henkilön mukaan: kirjanpitäjän agentti saa erilaisen listan kuin johtajan agentti, eikä kumpikaan sisällä työkaluja moduuleille, joita heidän roolinsa ei voi nähdä. Tämä on OWASP:n neuvo toiminnallisuuden minimoinnista käytännössä, ja sillä on toinen etu: mallia, jolle ei koskaan näytetä työkalua, ei voida väittää kutsuvan sitä.
Listan suodattaminen ei riitä yksinään, koska roolit muuttuvat, istunnot jatkuvat ja asiakkaat välimuistittavat. Sama tarkistus on suoritettava uudelleen, kun jokainen kutsu saapuu, henkilön oikeuksia vastaan tuona hetkenä. Alla on työkalulista protokollan määrittelemässä muodossa, roolille, joka voi lukea laskuja mutta ei kirjata maksuja. Poissa oleva työkalu on se, mikä on tärkeää.
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"tools": [
{ "name": "searchInvoices",
"description": "Search invoices by number, reference, contact, amount, status, date range.",
"inputSchema": { "type": "object", "properties": { "query": { "type": "string" }, "outstanding_only": { "type": "boolean" } } },
"annotations": { "readOnlyHint": true } },
{ "name": "getInvoice",
"description": "Read one invoice in full: status, totals, dates, contact and lines.",
"inputSchema": { "type": "object", "properties": { "invoice_id": { "type": "string" } }, "required": ["invoice_id"] },
"annotations": { "readOnlyHint": true } }
]
}
}
// recordPayment, sendInvoiceReminders and deleteInvoice exist in the system.
// They are not in this list because this person's role cannot use them.
// If the agent calls one anyway, the server answers with a permission error.Työkalujen/listan vastaus MCP-määrittelyn mukaisessa muodossa, Sois-tilinpidon moduulin työkalujen nimillä. Määrittelyssä sanotaan myös, että asiakkaiden on käsiteltävä merkintöjä, kuten readOnlyHint, epäluotettavina, ellei palvelin ole luotettava, mikä on yksi syy lisää siihen, että palvelimen, ei merkinnän, on oltava se, joka valvoo sääntöä.
Prompt-injektio: tiedot voivat vastata
Agentteihin liittyvä uhka on se, että lukemansa tiedot voivat sisältää ohjeita. Sähköposti asiakkaalta, joka päättyy lauseeseen, joka käskee agenttia välittämään toimittajalistan ulkoiseen osoitteeseen; asiakirja, joka käskee merkitsemään jokaisen laskun maksetuksi. Malli voi noudattaa tai olla noudattamatta, eikä mikään kehotus voi taata, että se ei niin tee, minkä vuoksi kehotusinjektio on ensimmäisenä OWASP-listalla ja miksi sekä Anthropic että OpenAI varoittavat siitä liitinohjeissaan.
Puolustus on arkkitehtuuri, ei malli. Agentille, jolle tarjotaan vain työkaluja, joita hänen henkilönsä voi käyttää, ei voi välittää sellaista, mitä hänen henkilönsä ei voi nähdä. Kutsu merkitä laskut maksetuiksi tarkistetaan järjestelmässä henkilön oikeuksia vastaan, ei mallin uskomusta, että sitä pyydettiin. Seuraamustyökalut merkitään siten, että asiakas kysyy ensin henkilöltä: ChatGPT vaatii tällä hetkellä manuaalista vahvistusta keskustelussa ennen kirjoitustoimia, ja OpenAI:n ohje on pitää hyväksyntä päällä työkaluissa, jotka muokkaavat tietoja; Claude pyytää hyväksyntää työkalukohtaisesti ja neuvoo varaamaan "salli aina" luotettaville palvelimille. Ja loki tallentaa yrityksen, joten estetty injektio on näkyvissä jälkeenpäin eikä hiljaa.
Budjetti ja lokit: tee agentin työ tarkastettavaksi kuin henkilön
Budjetilla on merkitystä kahdesta syystä. Ilmeinen syy on kustannus: epämääräisen tuloksen saanut agentti jatkaa työkalujen kutsumista, kunnes jokin pysäyttää sen, ja OWASP listaa rajattoman kulutuksen omaksi riskikseen. Hienovaraisempi syy on räjähdysalue: integraatiokohtainen yläraja rajoittaa, kuinka paljon vaarantunut tai hämmentynyt agentti voi tehdä ennen kuin henkilö huomaa. Kun henkilön oma agentti tekee päättelyä, AI-kustannus on heidän kanssaan; kun järjestelmän oma agentti tekee sen, yläraja tulisi asettaa integraatiokohtaisesti ja näkyä toimenpiteittäin.
Lokit muuttavat kaiken tämän lupauksen auditoitavaksi asiaksi. Jokaisen kutsun tulisi tallentaa, kenen puolesta agentti toimi, mikä työkalu, syötteet, tulos ja aika, samassa paikassa, jossa järjestelmä tallentaa, mitä ihmiset tekivät. Testi on, voiko talousjohtaja selvittää, mitä agentti teki asiakkaan tilille viime kuussa yhtä helposti kuin kollegalle. MCP-määrittely pyytää asiakkaita kirjaamaan työkalujen käytön auditointia varten; liiketoimintajärjestelmän ei tulisi luottaa asiakkaaseen tässä asiassa, koska asiakas ei ole rekisterijärjestelmä.
Tarkistuslista, jota voit käyttää minkä tahansa järjestelmän kanssa.
Vie nämä mihin tahansa myyjään, mukaan lukien meihin. Jokainen on kyllä tai ei, ja jokaisella on testi kysymyksen sijaan.
- Agentti yhdistää nimettynä henkilönä OAuth:n kautta.ei yrityskohtaisia avaimia liitettäväksi. Testi: yhdistä ulkoisesta MCP-asiakkaasta ja katso, mitä kirjautumissivulla kysytään.
- Työkalulista vaihtelee roolin mukaan. Testi: yhdistä rajoitetun käyttäjänä ja järjestelmänvalvojana ja vertaa, mitä agentille tarjotaan.
- Tarkistus toistuu, kun työkalu käynnistetään. Testi: poista lupa yhdistetystä käyttäjästä kesken istunnon ja yritä toimintoa uudelleen.
- Pääsy epäonnistuu suljettuna. Testi: kutsu työkalua, jota roolilla ei pitäisi olla, ja varmista, että saat kieltävän vastauksen, ei tulosta.
- Kulut voidaan rajoittaa per integraatio ja nähtävissä per toiminto. Testi: aseta pieni raja ja katso, kuinka se sitoutuu.
- Jokainen toiminto kirjataan henkilön mukaan, syötteiden ja tuloksen kanssa, jossa järjestelmä kirjaa kaiken muun. Testi: lue loki juuri suorittamastasi ajosta.
- Seuraamustyökalut merkitään vahvistusta varten asiakas kysyy henkilöltä. Testi: pyydä agenttia lähettämään rahaa tai poistamaan tietue ja varmista, että sinulta kysytään ensin.
Sois on yksi järjestelmä, joka on rakennettu tämän luettelon läpiviemiseksi, ja artikkelin yläosassa oleva muoto on sen muoto. Työtila on MCP-palvelin; mikä tahansa MCP-asiakas yhdistää lisäämällä työtilan osoitteen ja kirjautumalla sisään kerran OAuthin kautta; työkalut suodatetaan roolin mukaan ennen kuin ne tarjotaan ja tarkistetaan uudelleen, kun ne toimivat; pääsy epäonnistuu suljetusti; kulut voidaan rajoittaa integraatiokohtaisesti; jokainen toiminto kirjataan; ja alustalle rakennetut verkot omaavat oman tietokannan, tallennustilan, verkkotunnukset ja avaimet. Suorita tarkistuslista sen mukaan kuitenkin. Tarkistuslistan arvo on, että se ei perustu kenenkään sanaan.
Kysymyksiä, joita ihmiset kysyvät
Onko turvallista yhdistää Claude tai ChatGPT kirjanpitotietoihini?
Se on turvallista, kun tietoja hallitseva järjestelmä valvoo kontrollit: agentti kirjautuu sisään puolestasi OAuthin kautta, hänelle tarjotaan vain roolisi sallimia työkaluja, häntä tarkistetaan uudelleen jokaisella kutsulla, ja jokainen toiminto kirjataan. Molemmat toimittajat pyytävät myös vahvistusta ennen merkittäviä toimia. Jos järjestelmä tarjoaa vain jaetun API-avaimen, vastaus on ei.
Voiko järjestelmän kehotus estää agenttia vuotamasta tietoja?
Ei. Kehotus muokkaa käyttäytymistä; se ei valvo mitään. Agentin lukemat tiedot voivat sisältää ohjeita, jotka ohittavat sen. Toiminnan on oltava sellainen, jota järjestelmä kieltäytyy hyväksymästä riippumatta siitä, mitä malli uskoo sen olevan pyydetty.
Mikä on ero työkalujen suodattamisen ja oikeuksien tarkistamisen välillä?
Suodatus päättää, mitä agentille näytetään, kun se pyytää työkalulistaa. Tarkistus päättää, onko tietty kutsu sallittu sillä hetkellä, kun se saapuu. Tarvitset molemmat: suodatus vähentää sitä, mihin mallia voidaan puhua, tarkistus nappaa kaiken, mitä suodatus on jättänyt huomiotta.
Kuka maksaa tekoälystä, kun oma agenttini tekee päättelyn?
Sinä maksat, agenttiliittymäsi kautta. Tällaisella tavalla rakennettu järjestelmä ei suorita tekoälyä puolestasi tuossa tapauksessa eikä sen pitäisi veloittaa siitä mitään. Kulurajoitukset koskevat järjestelmän omaa agenttia, kun käytät sitä sen sijaan.
- Model Context Protocol -määrittely: valtuutus OAuth 2.1, PKCE, resurssiparametri, tokenin kohdeyleisön vahvistaminen ja tokenin läpiviennin kielto
- OWASP Top 10 LLM-sovelluksille: LLM06 Liiallinen valtuutus liiallinen toiminnallisuus, käyttöoikeudet ja autonomia sekä käyttöoikeuskerroksen toteuttamat lieventämistoimenpiteet
- Anthropic: aloittaminen mukautettujen liittimien kanssa etä-MCP:n avulla OAuth-kirjautuminen, pyydettyjen laajuuksien rajoittaminen, työkalukohtainen hyväksyntä, yhteys vain luotettaviin palvelimiin, syötteen injektoinnin varoitus
- Sois: turvallisuus ja käyttöoikeuskerros viisi hallintoa, kuten alusta toteuttaa: roolisuodatus, tarkistukset ajonaikaisesti, sulje epäonnistumiset, kulurajat, lokitus, vuokralaiseristys
Tätä artikkelia tarkastellaan, kun sen kuvaamat tuotteet muuttuvat. Seuraava tarkastusaika: 4. joulukuuta 2026.
