Drošs veids, kā dot AI aģentam piekļuvi biznesa datiem, ir padarīt aģentu par uzņēmuma sistēmas klientu, nevis par lietotāju ar paroli. Aģents pieslēdzas kā nosaukts cilvēks, izmantojot standarta pieteikšanos, saņem tikai tos rīkus, kurus atļauj šī cilvēka loma, katra izsaukuma laikā tiek pārbaudīts vēlreiz sistēmā, ir ierobežots, cik daudz tas var iztērēt, un atstāj žurnālu par katru darbību, kas attiecas uz šo personu. Kad kādu no šīm pārbaudēm nav iespējams veikt, piekļuve tiek liegta, nevis pieņemta.
Nekas no tā neatrodas uzdevumā. Norādījumi modelim ir noderīgi uzvedībai un bezjēdzīgi drošībai, jo modelis var tikt pārliecināts par pretējo, lasot dokumentu. Kontroles ir jāīsteno sistēmā, kas glabā datus, katrā izsaukumā, neatkarīgi no tā, ko aģents uzskata, ka tam ir teikts.
Arhitektūra: aģents ir klients, sistēma ir autoritāte
Sāciet ar formu, jo lielākā daļa kļūdu ir formas kļūdas. Cilvēks lūdz savu aģentu kaut ko. Aģents izlemj, kuri rīki jāizmanto. Katrs izsaukums iziet cauri atļauju slānim, kas pieder uzņēmuma sistēmai, nevis aģentam, un tikai tad sasniedz tādu moduli kā finanses vai CRM. Aģents nekad nesaskaras ar datu bāzi, nekad neiztur datu bāzes akreditācijas datus un nekad neredz rīku, ko tā persona nevarētu izmantot.
Pieprasījums pāriet no personas uz viņu aģentu, tad caur atļauju slāni, pirms tas sasniedz jebkuru moduli. Slānis filtrē, ko aģentam piedāvā, un pārbauda, ko tas izsauc. Aģents var izmantot tikai tos rīkus, kurus tā persona drīkst izmantot, uz ierakstiem, kurus tā persona var redzēt.
Principa pamatā ir viena teikuma: aģents rīkojas ar tās personas pilnvarām, kuru tas pārstāv, un nekad vairāk. Viss pārējais šajā rakstā ir veids, kā padarīt šo teikumu patiesu spiediena apstākļos, kad modelis ir nepareizs, kad dokumentā, ko tas lasa, ir norādījumi, vai kad tokens noplūst.
OWASP Top 10 LLM lietojumprogrammām nosauc neveiksmi, ko šī arhitektūra novērš: pārmērīga aģentūra, ko tā sadala pārmērīgā funkcionalitātē (rīki, kas pārsniedz darba vajadzības), pārmērīgās atļaujās (vairāk piekļuves uz leju, nekā nepieciešams) un pārmērīgā autonomijā (nav neatkarīgas pārbaudes pirms augsta ietekmes darbības). Tās mazināšanas pasākumi izskatās kā specifikācija atļauju slānim: izpildīt lietotāja kontekstā, minimizēt rīkus un to atļaujas, īstenot autorizāciju lejupvērstajā sistēmā, nevis paļauties uz modeli, un prasīt personas apstiprinājumu augsta ietekmes darbībām.
Pieci kontroles punkti un kur katrs atrodas
Kontroles nav jaunas; tās ir kontroles, kuras jūs jau piemērojat personai ar sistēmas piekļuvi, piemērojot klientam, kas rīkojas šīs personas vārdā. Tabula norāda, ko katra atbild, kur tā tiek īstenota un kāda izskatās neveiksme, kad tās nav. Atrašanās vietas kolonna ir svarīgā. Kontrole, kas tiek īstenota uzdevumā, ir ieteikums.
| Kontrole | Ko tā nosaka | Ierobežots kur | Kļūda, ja trūkst |
|---|---|---|---|
| Identitāte | Kam aģents pārstāv | Pieteikšanās caur OAuth; tokens, kas izsniegts šai sistēmai un piesaistīts konkrētam lietotājam | Kopīgas pakalpojumu konti; darbības bez īpašnieka; noplūdis atslēga, kas darbojas visiem |
| Apjoms | Ko tas drīkst darīt | Rīki, kas filtrēti pēc personas lomas pirms piedāvāšanas un pārbaudīti katrā izsaukumā | Aģents, kas var lasīt algu, jo tā persona reiz vajadzēja kontaktpersonas tālruņa numuru |
| Budžets | Cik daudz tas var patērēt | Izdevumu limits katrai integrācijai sistēmas paša AI; ātruma ierobežojumi rīku izsaukumiem | Slikti formulēts uzdevums, kas darbojas visu nakti; neierobežots rēķins |
| Žurnāli | Ko tas izdarīja, ar ko un kas notika | Katrs zvans tiek ierakstīts ar ievadiem un rezultātu, piešķirts personai | Nav iespējams pārskatīt, atcelt vai izskaidrot darbību pēc fakta |
| Noraidīts | Kas notiek, ja pārbaude nav iespējama | Noraidīt, ar kļūdu, par kuru aģents var ziņot | Neskaidrība tiek atrisināta aģenta labā; modelis nosaka savu autoritāti |
| Apstiprinājums rakstīšanai | Vai persona to redz pirms tas notiek | Klients jautā pirms būtiskām darbībām; sistēma atzīmē, kuri rīki ir būtiski | Nauda nosūtīta, ieraksti dzēsti vai ziņojumi publicēti, pamatojoties uz nepareizi interpretētu instrukciju |
Sešas rindas piecām kontrolei plus viena, ko paši aģenta klienti nodrošina. Piecas no sešām tiek īstenotas biznesa sistēmā vai klienta, un neviena no modeļa.
Identitāte: pieslēdzieties kā persona, izmantojot OAuth, nekad ar kopīgu atslēgu
Modeļa konteksta protokola autorizācijas specifikācija ir precīza šajā jautājumā. Attālināts serveris darbojas kā OAuth 2.1 resursu serveris; klients iegūst tokenu, izmantojot standarta autorizācijas plūsmu ar PKCE; klientam jānorāda, kuram serverim tokena ir paredzēts, izmantojot resursa parametru; un serverim jāvalidē, ka katrs tokens tika izsniegts tieši tam, noraidot jebko citu. Specifikācija skaidri aizliedz tokenu pārsūtīšanu, kur serveris pieņem tokenu, ko tas nav izsniedzis, un nosūta to tālāk, jo tas iznīcina gan audita pēdas, gan uzticības robežu.
Praksē tas nozīmē to, ko nozīmē "pierakstieties vienreiz, nav nepieciešams ievadīt tokenu". Persona pievieno darba telpas adresi savam aģentam, tiek nosūtīta uz parasto pierakstīšanās lapu, apstiprina savienojumu, un aģents saņem tokenu, kas viņus identificē un darbojas tikai pret šo darba telpu. Anthropic vadlīnijas pielāgotajiem savienotājiem Claude ir pārskatīt servera pieprasītās jomas, ierobežot tās, kur iespējams, un savienoties tikai ar serveriem, kuriem uzticaties. Piegādātājs, kurš vietā tam lūdz ievadīt uzņēmuma API atslēgu aģenta konfigurācijā, ir izlaidis pirmo kontroli un padarījis pārējās četras daudz grūtākas.
Apjoms: filtrējiet pirms piedāvāšanas, pārbaudiet vēlreiz, kad izpildāt
Aģents atklāj, ko tas var darīt, jautājot serverim par tā rīku sarakstu. Pareizais dizains atbild uz šo jautājumu katrai personai: grāmatveža aģenta saņemtais saraksts atšķiras no direktora aģenta saņemtā saraksta, un neviens no tiem neietver rīkus moduļiem, kurus viņu loma nevar redzēt. Tas ir OWASP padoms, lai minimizētu funkcionalitāti, un tam ir otra priekšrocība: modelis, kuram nekad nav rādīts rīks, nevar tikt pārliecināts, ka tas to sauc.
Rīku saraksta filtrēšana pati par sevi nav pietiekama, jo lomas mainās, sesijas pastāv un klienti kešē. Tajā brīdī, kad katrs izsaukums ierodas, jāveic tāda pati pārbaude, ņemot vērā personas atļaujas. Zemāk ir rīku saraksts tādā formā, kādu definē protokols, loma, kas var lasīt rēķinus, bet nevar reģistrēt maksājumus. Trūkstošais rīks ir būtisks.
{
"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.Rīku/saraksta atbilde tādā formā, kādu definē MCP specifikācija, ar rīku nosaukumiem no Sois grāmatvedības moduļa. Specifikācija arī nosaka, ka klientiem jāuztver anotācijas, piemēram, readOnlyHint, kā neuzticamas, ja vien serveris nav uzticams, kas ir vēl viens iemesls, kāpēc serverim, nevis anotācijai, jābūt tam, kas izpilda noteikumu.
Promptu injekcija: dati var atbildēt
Drauds, kas ir specifiski aģentiem, ir tas, ka dati, ko tie lasa, var saturēt instrukcijas. E-pasts no klienta, kas beidzas ar rindu, kas norāda aģentam nosūtīt piegādātāju sarakstu uz ārēju adresi; dokuments, kas norāda, ka tam jāatzīmē katrs rēķins kā apmaksāts. Modelis var vai nevar ievērot, un neviena komanda nevar garantēt, ka tas tā nebūs, tāpēc komandu injekcija ir pirmā OWASP sarakstā un kāpēc gan Anthropic, gan OpenAI brīdina par to savās savienotāju vadlīnijās.
Aizsardzība ir arhitektūra, nevis modelis. Aģentam, kuram tiek piedāvāti tikai rīki, ko tā persona var izmantot, nav iespējas pārsūtīt to, ko viņa persona nevar redzēt. Izsaukums, lai atzīmētu rēķinus kā apmaksātus, tiek pārbaudīts sistēmā pret personas atļaujām, nevis pret modeļa uzskatu, ka tas tika lūgts. Sekundārie rīki tiek marķēti, lai klients vispirms jautātu personai: ChatGPT pašlaik prasa manuālu apstiprinājumu sarunā pirms rakstīšanas darbībām, un OpenAI vadlīnijas ir saglabāt apstiprinājumu rīkiem, kas modificē datus; Claude prasa apstiprinājumu katram rīkam un iesaka rezervēt "atļaut vienmēr" uzticamiem serveriem. Un žurnāls reģistrē mēģinājumu, tāpēc injekcija, kas tika bloķēta, ir redzama pēc tam, nevis klusējoša.
Budžets un žurnāli: padariet aģenta darbu pārskatāmu kā cilvēka darbu
Budžets ir svarīgs divu iemeslu dēļ. Acīmredzamais iemesls ir izmaksas: aģents, kuram ir piešķirts neskaidrs rezultāts, turpinās izsaukt rīkus, līdz kaut kas to aptur, un OWASP uzskaita neierobežotu patēriņu kā risku pats par sevi. Smalkākais iemesls ir sprādziena rādiuss: ierobežojums katrai integrācijai ierobežo to, cik daudz apdraudēts vai apjucis aģents var izdarīt, pirms persona to pamanīs. Ja personas aģents veic loģiku, AI izmaksas ir ar viņiem; ja sistēmas aģents to dara, ierobežojumam jābūt noteiktam katrai integrācijai un redzamam katrā darbībā.
Žurnāli pārvērš visu šo no solījuma par kaut ko, ko varat auditēt. Katram izsaukumam jāreģistrē, par kuru personu aģents rīkojās, kurš rīks, ievadi, rezultāts un laiks, tajā pašā vietā, kur sistēma reģistrē, ko cilvēki darīja. Tests ir, vai finanšu vadītājs var noskaidrot, ko aģents darīja ar klienta kontu pagājušajā mēnesī tikpat viegli, cik viņš var to izdarīt kolēģim. MCP specifikācija prasa klientiem reģistrēt rīku izmantošanu audita vajadzībām; biznesa sistēmai nevajadzētu paļauties uz klientu, jo klients nav ierakstu sistēma.
Kontrolsaraksts, ko varat izmantot pret jebkuru sistēmu
Nesiet šos jautājumus jebkuram piegādātājam, tostarp mums. Katram ir jā vai nē, un katram ir tests, nevis jautājums, ko uzdot.
- Aģents pieslēdzas kā nosaukta persona, izmantojot OAuth, bez uzņēmuma līmeņa atslēgas, ko varētu ielīmēt. Tests: pieslēdzieties no ārēja MCP klienta un paskatieties, ko prasa pieteikšanās lapa.
- Rīku saraksts atšķiras atkarībā no lomas. Tests: pieslēdzieties kā ierobežots lietotājs un kā administrators un salīdziniet, ko aģents piedāvā.
- Pārbaude tiek atkārtota, kad rīks tiek palaists. Tests: noņemiet atļauju no pieslēgtā lietotāja sesijas vidū un mēģiniet rīcību vēlreiz.
- Piekļuve tiek atteikta. Tests: izsauciet rīku, kas lomai nevajadzētu būt, un apstipriniet, ka saņemat atteikumu, nevis rezultātu.
- Izdevumus var ierobežot katrai integrācijai un redzēt katrai rīcībai. Tests: iestatiet mazu ierobežojumu un skatieties, kā tas tiek piesaistīts.
- Katra rīcība tiek reģistrēta pret personu, ar ievadiem un rezultātu, kur sistēma reģistrē visu pārējo. Tests: izlasiet žurnālu par skrējienu, ko tikko veicāt.
- Sekas rīki ir atzīmēti apstiprināšanai tāpēc klients jautā personai. Tests: lūdziet aģentam nosūtīt naudu vai izdzēst ierakstu un apstipriniet, ka vispirms jums jautā.
Sois ir viens sistēma, kas izveidota, lai izpildītu šo sarakstu, un forma raksta augšdaļā ir tās forma. Darba vieta ir MCP serveris; jebkurš MCP klients pieslēdzas, pievienojot darba vietas adresi un reģistrējoties vienu reizi, izmantojot OAuth; rīki tiek filtrēti pēc lomas pirms to piedāvāšanas un vēlreiz pārbaudīti, kad tie darbojas; piekļuve tiek slēgta; izdevumi var tikt ierobežoti katrai integrācijai; katra darbība tiek reģistrēta; un tīkli, kas izveidoti uz platformas, ir ar savu datu bāzi, krātuvi, domēniem un atslēgām. Tomēr izpildiet kontrolsarakstu. Kontrolsaraksta vērtība ir tā, ka tā nepieņem neviena vārdu.
Cilvēki uzdod jautājumus
Vai ir droši savienot Claude vai ChatGPT ar maniem grāmatvedības datiem?
Tas ir droši, kad datu turētājs sistēma ievieš kontroles: aģents pieslēdzas kā jūs, izmantojot OAuth, tiek piedāvāti tikai tie rīki, ko atļauj jūsu loma, tiek pārbaudīts vēlreiz katrā zvana reizē, un katra darbība tiek reģistrēta. Abi piegādātāji arī lūdz apstiprinājumu pirms sekas darbībām. Ja sistēma piedāvā tikai kopīgu API atslēgu, atbilde ir nē.
Vai sistēmas uzvednes var apturēt aģentu no datu noplūdes?
Nē. Uzvedne veido uzvedību; tā neievieš neko. Dati, ko aģents lasa, var saturēt instrukcijas, kas to pārspēj. Darbībai jābūt tādai, ko sistēma atteiks neatkarīgi no tā, ko modelis uzskata, ka tam tika jautāts.
Kāda ir atšķirība starp rīku filtrēšanu un atļauju pārbaudi?
Filtrēšana nosaka, ko aģents redz, kad tas jautā par rīku sarakstu. Pārbaude nosaka, vai konkrēta zvana brīdī tas ir atļauts. Jums nepieciešami abi: filtrēšana samazina to, ko modelis var pārliecināt, pārbaude noķer visu, ko filtrēšana ir palaidusi garām.
Kurš maksā par AI, kad mans aģents veic secinājumus?
Jūs, caur sava aģenta abonementu. Šādā veidā izveidota sistēma neveic AI jūsu vārdā šajā gadījumā un nedrīkst par to iekasēt neko. Izdevumu ierobežojumi attiecas uz sistēmas paša aģentu, kad jūs to izmantojat.
- Model Context Protocol specifikācija: autorizācija OAuth 2.1, PKCE, resursa parametrs, tokenu auditorijas validācija un aizliegums tokenu pārsūtīšanai
- OWASP Top 10 LLM lietojumprogrammām: LLM06 Pārmērīga aģentūra pārmērīga funkcionalitāte, atļaujas un autonomija, kā arī atļauju slāņa īstenotie risinājumi
- Anthropic: uzsākt darbu ar pielāgotajiem savienotājiem, izmantojot attālo MCP OAuth pieteikšanās, pieprasīto apjomu ierobežošana, apstiprināšana katram rīkam, savienojums tikai ar uzticamiem serveriem, brīdinājums par ievades injekcijām
- Sois: drošība un atļauju slānis pieci kontroles mehānismi, kā platforma tos īsteno: lomu filtrēšana, pārbaudes izpildes laikā, slēgšana neveiksmes gadījumā, izdevumu ierobežojumi, žurnālfailu veidošana, nomnieku izolācija
Šis raksts tiek pārskatīts, kad mainās tajā aprakstītie produkti. Nākamais plānotais pārskats: 2026. gada 4. decembris.
