Msaidizi wako anayeendeshwa na AI hutii maelekezo yake takriban asilimia 99 ya wakati, lakini asilimia hiyo 1 iliyobaki ndipo washambuliaji wanapopata nafasi. Kwa kuingiza prompt iliyoundwa kwa makusudi, mtumiaji mwenye nia mbaya anaweza kuifanya modeli itekeleze kazi (functions) ambazo haipaswi, akibaiba data au kufanya vitendo vya kipekee. Suluhisho si kutumia maneno ya adabu zaidi—ni kuchukulia hitilafu hiyo kama suala la idhini (authorization) na kuondoa zana hatari kutoka kwenye uwezo wa modeli.

Kwa nini prompt injection si tatizo la maneno pekee

Watengenezaji mara nyingi hujaribu kuimarisha mawakala (agents) kwa maonyo ya herufi kubwa, sheria zenye namba, au vifungu vya "usitekeleze kazi za admin". Ulinzi huo unadhani kuwa modeli itatii sentensi inayosema "usifanye X." Kiuhalisia, modeli inaweza kushawishiwa kupuuza maelekezo kwa kubadilisha namna ombi linavyosemwa, kuigiza nafasi ya mtu mwingine, au kwa kuongeza maelezo ya ziada. Mpaka wa lugha ya Kiingereza unaweza kujadiliwa; lakini prompt ya mshambuliaji haina kikomo na haigharimu chochote kuijaribu.

Udhaifu halisi upo kwenye orodha ya zana (tool list) ambayo wakala anapokea. Wakati muundo wa prompt (prompt schema) unajumuisha kazi inayotoa haki za admin, modeli sasa inakuwa na ramani ya uwezo huo. Hata kama prompt inasema "usiitumie kwa wateja," modeli bado inaweza kushawishiwa kuitumia kwa sababu kazi hiyo ipo katika mazingira yake ya utekelezaji. Kwa hivyo, tatizo ni pengo la idhini (authorization gap): mfumo unaweka wazi uwezo wa kipekee kwa mpigaji ombi ambaye hana haki nao.

Kulinda mawakala kwa kupunguza ufikiaji

Njia rahisi zaidi ya kuziba pengo hilo ni kuacha kuipa modeli ufikiaji wa zana ambazo haijaruhusiwa kuzitumia. Fikiria orodha ya zana kama funguo ya API: ikiwa funguo haipo, ombi haliwezi kutekelezwa. Hakuna maneno ya ujanja yanayoweza kuita kazi ambayo haipo katika muktadha wa sasa.

Njia isiyo sahihi

Prompt: “You are an assistant. Do not use the adminDeleteUser function for regular customers.”

Modeli bado inaona adminDeleteUser kwenye sanduku lake la zana na inaweza kudanganywa kuitumia.

Njia sahihi

Prompt schema for a regular customer: { “functions”: [ “searchCatalog”, “placeOrder” ] }

adminDeleteUser haionekani kamwe, hivyo modeli haina njia ya kuitumia.

Kanuni tatu za vitendo kwa watengenezaji

  1. Jenga orodha za zana kwa kila ombi – Tengeneza orodha ya kazi (function catalog) kwa njia ya moja kwa moja (dynamically), kulingana na ruhusa za mpigaji ombi aliyethibitishwa. Mteja huona tu kazi anazohitaji; admin huona seti nzima.
  2. Funga kabla ya kufeli (Fail closed) – Ikiwa utambulisho wa mtumiaji hauwezi kuthibitishwa, rudisha orodha tupu badala ya kutoa jibu la jumla la "zana zote zinapatikana". Hii inahakikisha kwamba ombi lisilothibitishwa halipati uwezo usiotarajiwa kamwe.
  3. Epuka hali ya pamoja (shared state) – Unapohifadhi (caching) maelezo ya zana, usiwahi kuandika data maalum ya mtumiaji kwenye kitu cha pamoja (shared object). Tumia mbinu ya copy-on-write au nakala za kila kikao (per-session copies) ili ruhusa za mtumiaji mmoja zisivuje kwenye ombi la mwingine.

Ikiwa muundo (schema) unaowasilishwa kwa mtumiaji wa kawaida unafanana kabisa na ule unaoonyeshwa kwa admin, mpaka wa usalama bado ni maandishi ya prompt, na prompt si mfumo wa usalama wa kuaminika.

Nini kilitufikisha hapa

Prompt injection ilijitokeza wakati watengenezaji walipoanza kuunganisha mifano mikubwa ya lugha (LLMs) kwenye mifumo ya kazi (production workflows) inayohitaji modeli kuitia API za nje, kuendesha kodi, au kubadilisha kanzi data (databases). "Ufikiri" wa modeli unaongozwa na prompt ambayo pia inajumuisha orodha ya zana zinazopatikana. Mifano ya awali ilidhania kuwa modeli itatii sheria ya lugha ya asili kama vile "usifute rekodi kwa watu ambao si admin." Washambuliaji walionyesha haraka kuwa sentensi chache za ziada zinaweza kupita sheria hizo, na kuifanya modeli itekeleze kazi hiyo hiyo ya kufuta licha ya maelekezo.

Mwitikio wa kwanza wa jamii ulikuwa kuimarisha lugha ya prompt, kuongeza vifungu vya "usifanye X kamwe", au kuweka vichujio vya regex vinavyoondoa alama (tokens) zinazotia shaka. Hatua hizo zilipunguza matumizi mabaya ya bahati mbaya lakini hazikumzuia adui aliyeamua ambaye angeweza tu kubadilisha namna ombi linavyosemwa. Chanzo cha msingi—kuweka wazi kazi za kipekee kwa mpigaji ombi asiyeaminika—kilibaki vilevile.

Nani anashinda, nani anapoteza

Mashirika yanayotumia ukomo wa zana kwa kila ombi (per-request tool scoping) yanapata mpaka ulio wazi na unaoweza kusimamiwa. Mawakala wao wanaweza kutumika kwa kiwango kikubwa bila kuogopa kwamba prompt moja iliyoharibika itafungua uwezo wa admin. Timu za uzingatiaji (compliance teams) pia zinathamini kumbukumbu ya ukaguzi (audit trail): orodha ya kazi zinazotumwa kwa modeli ni kitu halisi kinachoweza kuhifadhiwa na kukaguliwa.

Watengenezaji wanaotegemea ulinzi wa prompt pekee wanaendelea kukabiliana na changamoto inayobadilika kila wakati. Mawakala wao yanaweza kuonekana kufanya kazi vizuri wakati wa majaribio lakini yanaweza kudukuliwa katika matumizi halisi, na kusababisha uvujaji wa data, miamala isiyoruhusiwa, au ukiukaji wa sheria za uzingatiaji. Gharama ya uvujaji ni kubwa zaidi kuliko juhudi za kujenga orodha ya zana inayobadilika (dynamic tool list).

Hoja kinyume: “Prompt bora zinatosha”

Wengine wanahoji kuwa kwa uhandisi wa maelekezo wa kutosha—prompts za tabaka, ujumbe wa mfumo, na kujifunza kwa kuimarishwa kutoka kwa mrejesho wa binadamu—mfano unaweza kufundishwa kuheshimu vifungu vya "usifanye". Ukweli ni kwamba mifano ya lugha ni vizalishaji vya uwezekano; huhesabu mwendelezo wenye uwezekano mkubwa zaidi, badala ya kufuata sheria kali ya usalama. Hata kukiwa na vizuizi (guardrails) vilivyoboreshwa, usemi mpya unaweza kupenya, hasa wakati mshambuliaji anapoweza kujaribu mbinu mbalimbali bila kikomo na bila gharama yoyote. Vizuizi ni muhimu kwa ajili ya kupunguza kelele lakini havipaswi kuwa ulinzi wa pekee.

Nini cha kufuatilia baadaye

  • Mifumo (Frameworks) inayowasilisha ukomo wa zana (tool scoping) kama API ya kwanza – Tarajia maktaba mpya zinazokuruhusu kutangaza uwezo wa kila mtumiaji na kupunguza orodha ya kazi (function list) kiotomatiki kabla ya prompt kutengenezwa.
  • "Function manifests" zilizosanifishwa – Vikundi vya viwanda vinaweza kufafanua JSON schema inayotenganisha kazi za umma na zile za upendeleo (privileged functions), na kufanya iwe rahisi kutengeneza manifest mahususi kwa ombi husika.
  • Utekelezaji wa wakati wa utendaji (Runtime enforcement) – Baadhi ya majukwaa yanajaribu utendaji wa sandboxed unaokagua token ya mwombaji dhidi ya kazi inayotumiwa, na kuongeza tabaka la pili zaidi ya ukomo wa prompt.

Funzo ni wazi: chukulia prompt injection kama hitilafu ya idhini (authorization flaw). Kwa kuondoa zana zisizoidhinishwa kutoka kwenye sanduku la zana la mfano, unaondoa eneo la shambulio (attack surface) ambalo prompt iliyoundwa kwa ustadi inajaribu kulitumia. Prompts zinaweza kuongoza tabia; haziwezi kuchukua nafasi ya udhibiti sahihi wa ufikiaji (access control).