Acha Kuamini Wakala: Unganisha Idhini na Wito wa Zana Mahususi
Mifumo mingi ya wakala (agentic systems) hulinda vitendo vya hatari kama kuandika faili au kuhamisha pesa kwa idhini rahisi.
Kwa kawaida, idhini hii ni alama ya boolean katika hali ya mfumo (system state).
Mfano: approved: true.
Hili ni kosa. Boolean hukosea kwa njia tatu ambazo wadukuzi huzitumia:
- Flip (Kubadilisha): Mdukuzi anabadilisha hali kutoka
falsekwendatruekupitia prompt injection au kasoro za kodi. - Replay (Kurudia): Unaidhinisha amri salama kama "read file." Mfumo unaona "true" na kuruhusu amri ya pili, ya hatari kama "delete database."
- Argument Drift (Mabadiliko ya Hoja): Unaidhinisha "send $10." Mdukuzi anabadilisha kiasi kuwa $10,000 kabla ya utekelezaji. Alama bado inasema "true."
Tatizo ni kwamba unaifanya idhini kuwa sifa ya kikao chote (entire session). Inapaswa kuwa ushahidi wa wito mmoja mahususi.
Jinsi ya kurekebisha:
Binadamu anapoidhinisha wito, tengeneza lebo salama (secure tag). Lebo hii lazima ifunge mambo haya manne:
- ID ya kipekee ya wito wa zana (tool call ID).
- Hash ya hoja (arguments) mahususi.
- Utambulisho wa mtumiaji.
- Muda wa kumalizika (expiration time).
Hakiki lebo hii wakati kamili wa utekelezaji. Tumia funguo ya siri (secret key) ambayo mfumo pekee unaijua.
Fuata sheria hizi kwa utekelezaji:
- Tumia Canonicalization: Muidhinishaji na mtekelezaji lazima wafanye hash kwa bayti (bytes) zilezile. Tumia RFC 8785 kuhakikisha namba na funguo zinafanana.
- Fail Closed (Feli kwa Kufunga): Ikiwa lebo haipo, imepita muda wake, au ni mbaya, rudisha kosa mahususi la "not approved". Usichukulie kama matokeo ya kawaida ya zana.
- Deny by Default (Kataa kwa Asili): Ruhusu tu zana zinazohitaji idhini ya wazi. Kataa kila kitu kingine.
- Shughulikia Replays: Ikiwa unatumia injini kama Temporal, hakikisha funguo yako ya siri ni deterministic. Ikiwa funguo itabadilika baada ya mfumo kuanza upya, idhini zote zilizopo zitafeli.
Idhini (Authorization) haipaswi kuwa sehemu inayoelea ya hali (state). Lazima iwe bahasha iliyofungwa inayothibitisha: "Mtu huyu mahususi ameidhinisha hoja hizi mahususi kwa zana hii mahususi hadi wakati huu mahususi."
Acha kutumia boolean. Si urahisishaji. Ni hitilafu (bug).
Jumuiya ya kujifunza ya hiari: https://t.me/GyaanSetuAi