Varna pot do dostopa AI agenta do poslovnih podatkov je, da agenta obravnavate kot stranko poslovnega sistema, namesto kot uporabnika s geslom. Agent se poveže kot imenovana oseba preko standardnega prijavnega postopka, dobi le orodja, ki jih dovoljuje vloga te osebe, vsaka klic se ponovno preveri s sistemom, ko se izvede, je omejen na to, koliko lahko porabi, in pusti dnevnik vsakega dejanja, pripisanega tej osebi. Ko katerega koli od teh preverjanj ni mogoče izvesti, je dostop zavrnjen, namesto da bi bil predpostavljen.
Nič od tega ne živi v pozivu. Navodila modelu so uporabna za vedenje in neuporabna za varnost, ker se model lahko iz njih izpodbija s dokumentom, ki ga prebere. Kontrole morajo biti uveljavljene s sistemom, ki hrani podatke, pri vsakem klicu, ne glede na to, kar agent verjame, da mu je bilo rečeno.
Arhitektura: agent je odjemalec, sistem je avtoriteta
Začnite s strukturo, ker so večina napak napake v strukturi. Oseba prosi svojega agenta za nekaj. Agent odloči, katera orodja poklicati. Vsak klic preide skozi plast dovoljenj, ki pripada poslovnemu sistemu, ne agentu, in šele nato doseže modul, kot je finance ali CRM. Agent nikoli ne dotika baze podatkov, nikoli ne drži poverilnice za bazo podatkov in nikoli ne vidi orodja, ki ga njegova oseba ne bi mogla uporabiti.
Zahteva preide od osebe do njenega agenta, nato skozi plast dovoljenj, preden doseže kateri koli modul. Plast filtrira, kaj je agentu ponujeno, in preverja, kaj kliče. Agent lahko uporablja le orodja, ki jih njegova oseba sme uporabljati, na zapisih, ki jih njegova oseba lahko vidi.
Načelo, ki stoji za sliko, je ena poved: agent deluje z avtoriteto osebe, ki jo predstavlja, in nikoli več. Vse drugo v tem članku je način, kako to poved bo resnično pod pritiskom, ko je model napačen, ko dokument, ki ga prebere, vsebuje navodila, ali ko pride do uhajanja žetona.
OWASP Top 10 za LLM aplikacije imenuje neuspeh, ki ga ta arhitektura preprečuje: pretirana avtonomija, ki jo razdeli na pretirano funkcionalnost (orodja, ki presegajo potrebe dela), pretirana dovoljenja (več dostopa navzdol, kot je potrebno) in pretirano avtonomijo (brez neodvisnega preverjanja pred dejanjem z visokim vplivom). Njegove omilitve se berejo kot specifikacija za plast dovoljenj: izvajanje v kontekstu uporabnika, minimiziranje orodij in njihovih dovoljenj, uveljavitev avtorizacije v sistemu navzdol namesto zanašanja na model, in zahteva odobritev osebe za dejanja z visokim vplivom.
Pet kontrol in kje se vsaka nahaja
Kontrole niso nove; so kontrole, ki jih že uporabljate za osebo z dostopom do sistema, uporabljene za stranko, ki deluje v imenu te osebe. Tabela navaja, kaj vsak odgovor, kje se uveljavlja in kako izgleda neuspeh, ko ga ni. Stolpec lokacije je pomemben. Kontrola, uveljavljena v pozivu, je predlog.
| Kontrola | Kaj določa | Uveljavlja se kje | Napaka, ko manjka |
|---|---|---|---|
| Identiteta | Za koga deluje agent | Prijava preko OAuth; žeton, izdan za ta sistem in vezan na določenega uporabnika | Skupni računi storitev; dejanja brez lastnika; uhajeni ključ, ki deluje za vse |
| Obseg | Kaj je dovoljeno | Orodja, filtrirana glede na vlogo osebe, preden so ponujena, in ponovno preverjena ob vsakem klicu | Agent, ki lahko bere plače, ker je njegova oseba nekoč potrebovala telefonsko številko stika |
| Proračun | Koliko lahko porabi | Omejitev porabe na integracijo na lastni AI sistema; omejitve hitrosti pri klicih orodij | Slabo opredeljena naloga, ki teče celo noč; neomejen račun |
| Zapiski | Kaj je naredil, s čim in kaj se je zgodilo | Vsak klic je zabeležen z vnosi in rezultatom, pripisan osebi | Ni možnosti, da bi pregledali, obrnili ali razložili dejanje po dejstvu |
| Zavrnitev dostopa | Kaj se zgodi, ko preverjanje ni mogoče | Zavrni, z napako, ki jo lahko agent prijavi | Nejasnosti rešene v korist agenta; model odloča o svoji avtoriteti |
| Potrditev pri zapisih | Ali oseba to vidi pred tem, ko se zgodi | Stranka vpraša pred pomembnimi dejanji; sistem označi, kateri orodja so pomembna | Denar poslan, zapisi izbrisani ali sporočila objavljena na podlagi napačno razumljene navodila |
Šest vrstic za pet kontrol plus eno, ki jo zagotavljajo sami agenti. Pet od šestih je uveljavljenih s strani poslovnega sistema ali stranke, nobena pa s strani modela.
Identiteta: povežite se kot oseba, preko OAuth, nikoli z deljenim ključem
Specifikacija avtorizacije Model Context Protocol je natančna glede tega. Oddaljeni strežnik deluje kot OAuth 2.1 strežnik virov; odjemalec pridobi žeton preko standardnega avtorizacijskega toka s PKCE; odjemalec mora navesti, za kateri strežnik je žeton, z uporabo parametra virov; in strežnik mora potrditi, da je bil vsak žeton izdan posebej zanj, zavrniti vse drugo. Specifikacija izrecno prepoveduje posredovanje žetonov, kjer strežnik sprejme žeton, ki ga ni izdal, in ga posreduje naprej, ker uniči tako revizijsko sled kot tudi mejo zaupanja.
V praksi to pomeni, da "se prijavite enkrat, brez nalepke za prilepiti". Oseba doda naslov delovnega prostora svojemu agentu, je preusmerjena na običajno stran za prijavo, odobri povezavo in agent prejme žeton, ki jih imenuje in deluje samo proti temu delovnemu prostoru. Navodila podjetja Anthropic za prilagojene povezovalnike v Claude so, da pregledate obsege, ki jih strežnik zahteva, jih omejite, kjer je to mogoče, in se povežite samo s strežniki, ki jim zaupate. Dobavitelj, ki namesto tega zahteva, da prilepite API ključ za celotno podjetje v konfiguracijo agenta, je preskočil prvo kontrolo in otežil preostalih štiri.
Obseg: filtrirajte pred ponudbo, ponovno preverite pri izvajanju
Agent odkrije, kaj lahko stori, tako da strežniku postavi vprašanje o seznamu orodij. Pravi dizajn odgovori na to vprašanje za vsako osebo: seznam, ki ga prejme agent računovodje, se razlikuje od seznama, ki ga prejme agent direktorja, in nobeden ne vključuje orodij za module, ki jih njihova vloga ne more videti. To je nasvet OWASP za zmanjšanje funkcionalnosti, ki je konkretiziran, in ima drugo prednost: model, ki mu nikoli ne pokažejo orodja, ne more biti prepričan, da ga bo klical.
Filtriranje seznama samo po sebi ni dovolj, saj se vloge spreminjajo, seje trajajo, in stranke shranjujejo podatke v predpomnilnik. Enako preverjanje se mora izvesti znova ob vsakem klicu, glede na dovoljenja osebe v tistem trenutku. Spodaj je seznam orodij v obliki, ki jo določa protokol, za vlogo, ki lahko bere račune, vendar ne more beležiti plačil. Odsotno orodje je ključnega pomena.
{
"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.Odgovor na seznam orodij v obliki, ki jo določa specifikacija MCP, z imeni orodij iz računovodskega modula Sois. Specifikacija prav tako navaja, da morajo stranke obravnavati opombe, kot je readOnlyHint, kot nezanesljive, razen če je strežnik zaupanja vreden, kar je še en razlog, da mora biti strežnik, ne opomba, tisto, kar uveljavlja pravilo.
Vstavljanje pozivov: podatki se lahko odzovejo
Grožnja, specifična za agente, je, da lahko podatki, ki jih berejo, vsebujejo navodila. E-pošta stranke, ki se konča z vrstico, ki agentu naroča, naj posreduje seznam dobaviteljev na zunanji naslov; dokument, ki mu naroča, naj označi vsako plačano fakturo. Model se morda ne bo držal navodil, in nobeno sporočilo ne more zagotoviti, da se ne bo, kar je razlog, da je injiciranje sporočil na prvem mestu na OWASP seznamu in zakaj tako Anthropic kot OpenAI opozarjata na to v svojih smernicah za povezovalnike.
Obrambo je arhitektura, ne model. Agent, ki mu so na voljo le orodja, ki jih lahko uporablja njegova oseba, ne more posredovati tistega, česar njegova oseba ne more videti. Klic za označitev plačanih računov preveri sistem glede na dovoljenja osebe, ne glede na prepričanje modela, da je bilo to zahtevano. Posledična orodja so označena tako, da stranka najprej vpraša osebo: ChatGPT trenutno zahteva ročno potrditev v pogovoru pred pisanjem, OpenAI pa svetuje, da se odobritev ohrani za orodja, ki spreminjajo podatke; Claude zahteva odobritev za vsako orodje in svetuje, da se "dovoli vedno" rezervira za zaupanja vredne strežnike. In dnevnik beleži poskus, tako da je blokirana injekcija vidna kasneje, namesto da bi bila tiha.
Proračun in dnevniki: naredite delo agenta pregledno kot delo osebe.
Proračun je pomemben iz dveh razlogov. Očitna je cena: agent, ki dobi nejasen izid, bo nenehno klical orodja, dokler ga nekaj ne ustavi, OWASP pa navaja neomejeno porabo kot tveganje samo po sebi. Bolj subtilen razlog je obseg škode: omejitev na integracijo omejuje, koliko lahko kompromitiran ali zmeden agent stori, preden oseba opazi. Kjer razmišljanje opravi lastni agent osebe, strošek AI nosi ona; kjer to stori agent sistema, bi morala biti omejitev nastavljena na integracijo in vidna pri vsaki akciji.
Dnevniki vse to spremenijo iz obljube v nekaj, kar lahko preverite. Vsak klic bi moral zabeležiti, za koga je agent deloval, kateri orodje, vhodne podatke, rezultat in čas, na istem mestu, kjer sistem beleži, kaj so ljudje počeli. Preizkus je, ali lahko vodja financ ugotovi, kaj je agent prejšnji mesec storil na računu stranke, tako enostavno, kot lahko to stori za sodelavca. Specifikacija MCP zahteva, da stranke beležijo uporabo orodij za revizijo; poslovni sistem se ne sme zanašati na stranko za to, ker stranka ni sistem evidenc.
Seznam opravil, ki ga lahko uporabite za kateri koli sistem.
Vzemite to k kateremu koli dobavitelju, vključno z nami. Vsak je da ali ne, in vsak ima test namesto vprašanja, ki ga je treba postaviti.
- Agent se poveže kot imenovana oseba preko OAuth, brez ključa za celotno podjetje, ki bi ga lahko prilepili. Preizkusite: povežite se iz zunanjega MCP odjemalca in poglejte, kaj zahteva stran za prijavo.
- Seznam orodij se razlikuje glede na vlogo. Test: povežite se kot omejen uporabnik in kot skrbnik ter primerjajte, kaj je agentu ponujeno.
- Preverjanje se ponovi, ko se orodje zažene. Test: odstranite dovoljenje povezanemu uporabniku med sejo in poskusite dejanje znova.
- Dostop se zaključi neuspešno. Test: pokličite orodje, ki ga vloga ne bi smela imeti, in potrdite, da dobite zavrnitev, ne rezultata.
- Poraba je lahko omejena na integracijo in vidna na podlagi dejanja. Test: nastavite majhno omejitev in opazujte, kako se veže.
- Vsako dejanje je zabeleženo na osebo, z vnosi in rezultatom, kjer sistem beleži vse ostalo. Preizkus: preberite dnevnik za zagon, ki ste ga pravkar izvedli.
- Orodja z posledicami so označena za potrditev torej stranka vpraša osebo. Test: prosite agenta, da pošlje denar ali izbriše zapis in potrdite, da ste najprej vprašani.
Sois je en sistem, zgrajen za prenos tega seznama, oblika na vrhu članka pa je njegova oblika. Delovno okolje je MCP strežnik; vsak MCP odjemalec se poveže tako, da doda naslov delovnega okolja in se enkrat prijavi preko OAuth; orodja so filtrirana glede na vlogo, preden so ponujena, in ponovno preverjena, ko se izvajajo; dostop se zapre; poraba je lahko omejena na integracijo; vsaka akcija je zabeležena; in omrežja, zgrajena na platformi, imajo svojo bazo podatkov, shrambo, domene in ključe. Kljub temu preizkusite kontrolni seznam. Vrednost kontrolnega seznama je, da ne vzame besede nikogar.
Vprašanja, ki jih ljudje postavljajo
Ali je varno povezati Claude ali ChatGPT z mojimi računovodskimi podatki?
Varno je, ko sistem, ki hrani podatke, izvaja nadzore: agent se prijavi kot vi preko OAuth, ponujena so mu le orodja, ki jih dovoljuje vaša vloga, ponovno se preveri ob vsakem klicu, in vsaka akcija je zabeležena. Obe podjetji prav tako zahtevata potrditev pred akcijami z posledicami. Če sistem ponuja le skupni API ključ, je odgovor ne.
Ali lahko sistemski poziv prepreči agentu, da bi razkril podatke?
Ne. Poziv oblikuje vedenje; ne izvršuje ničesar. Podatki, ki jih agent prebere, lahko vsebujejo navodila, ki jih prekličejo. Akcija mora biti taka, da bi jo sistem zavrnil ne glede na to, kaj model meni, da je bilo zahtevano.
Kakšna je razlika med filtriranjem orodij in preverjanjem dovoljenj?
Filtriranje odloča, kaj se agentu prikaže, ko prosi za seznam orodij. Preverjanje odloča, ali je določen klic dovoljen v trenutku, ko prispe. Potrebujete oboje: filtriranje zmanjšuje, v kar se model lahko prepriča, preverjanje ujame vse, kar je filtriranje spregledalo.
Kdo plača za AI, ko moj lastni agent izvaja razmišljanje?
Vi, preko naročnine na agenta. Sistem, zgrajen na ta način, v tem primeru ne izvaja AI v vašem imenu in ne bi smel zaračunavati ničesar za to. Omejitve porabe veljajo za lastnega agenta sistema, ko ga uporabite namesto tega.
- Model Context Protocol specifikacija: avtorizacija OAuth 2.1, PKCE, parameter virov, preverjanje občinstva žetonov in prepoved prenosa žetonov
- OWASP Top 10 za LLM aplikacije: LLM06 Prekomerna avtonomija prekomerna funkcionalnost, dovoljenja in avtonomija ter ukrepi, ki jih izvaja plast dovoljenj
- Anthropic: začnite z uporabo prilagojenih povezav z oddaljenim MCP OAuth prijava, omejevanje zahtevanih obsegov, odobritev po orodjih, povezovanje le s zaupanja vrednimi strežniki, opozorilo o vbrizgavanju pozivov
- Sois: varnost in plast dovoljenj pet kontrol, kot jih platforma izvaja: filtriranje vlog, preverjanje med izvajanjem, zapiranje ob napaki, omejitve porabe, beleženje, izolacija najemnikov
Ta članek se pregleda, ko se izdelki, ki jih opisuje, spremenijo. Naslednji načrtovani pregled: 4. december 2026.
