Chombo cha otomatiki kilichojengwa juu ya Safari MCP kilifunga tab ya dashboard ya msanidi programu wakati ikisomwa. Tukio hili lilifichua kasoro iliyofichika katika mlinzi (guard) ambayo ilipaswa kuizuia AI-driven agents isiguse tab yoyote ambayo haikuwa yao, na linaonyesha kwa nini kategoria za “safe-by-default” zinaweza kuwa mzigo.

Mlinzi aliyefanya kazi—hadi aliposhindwa kufanya hivyo

Chombo hicho huweka alama (tag) kwenye kila tab kinachounda kwa kutumia utambulisho wa ndani. Kabla ya agent kutoa amri yoyote, mlinzi hukagua alama hiyo; ikiwa alama haipo, mlinzi hukataa kuchukua hatua. Katika vitendo, mlinzi aliizuia agent isisome ukurasa ambao haukuifungua—kama ilivyokusudiwa.

Wakati wa kujaza fomu, ukurasa ulihamishiwa (redirected) kwenye domain tofauti. Uhamisho huo uliondoa alama hiyo, na kuacha tab bila lebo. Mlinzi aliona alama haipo na kuripoti, “Siwezi kuthibitisha umiliki, kwa hivyo sitasoma tab hii.” Katika hatua hiyo, ukaguzi wa usalama ulifanya kazi kama ilivyokusudiwa.

Kodi ya usafishaji iliyovuka mipaka

Kufuatia hayo, kulikuja utaratibu wa usafishaji wa mwongozo uliokusudiwa kufunga tab zilizotelekezwa (orphaned tabs)—zile zisizo na alama. Utaratibu huo uliomba chombo “kufunga tab” bila kwanza kuthibitisha umiliki. Kwa sababu mlinzi hakuweza kuthibitisha kuwa tab hiyo ilikuwa yake, chombo kilirudi kwenye hatua ya kawaida (default action): “funga tab ya sasa.” Tab ya sasa ilikuwa dashboard ambayo msanidi programu alikuwa akiisoma, na si tab iliyotelekezwa.

Matokeo yake yalikuwa ni operesheni ya uharibifu iliyochochewa na njia ya usalama ambayo ilipaswa kuwa mwisho wa njia.

Tabaka tatu zilizochukulia “kutokuwa na umiliki” kama ruhusa

  1. Uainishaji wa amri – Orodha iliyokusanya amri iliweka close_tab chini ya kundi pana la “tab management”. Msanidi programu alidhania kuwa kila kitu katika kundi hilo halikuwa na madhara kwa sababu amri nyingine (kama “list tabs”) zinasoma tu habari. Hakuna maelezo ya wazi yaliyoiashiria close_tab kuwa ya uharibifu, hivyo ilichukua usalama uliodhaniwa wa amri zake jirani.
  2. Sera ya kiwango cha extension – Safari extension iliyosimamia vitendo vyote vya kivinjari iliruhusu operesheni yoyote wakati kikao (session) hakikuwa na umiliki wa kitu chochote. Sheria hiyo inafanya kazi kwa vitendo vya kusoma tu, lakini pia ilifungua mlango kwa close_tab kutekelezwa bila ukaguzi wa asili (provenance check).
  3. Kutolingana kwa mantiki – Utaratibu wa usafishaji ulikagua bendera ya umiliki kwenye tab moja lakini kisha uliita kazi ya kufunga (close function) kwenye tab ambayo kivinjari kiliripoti kama “current.” Kutolingana huku kuliwezesha kushindwa kwa mlinzi kupata alama kupita amri ya kufunga na kuielekeza kwenye lengo lisilo sahihi.

Kila tabaka lilidhania kuwa “hakuna umiliki uliorekodiwa” inamaanisha “ni salama kuchukua hatua,” na kwa pamoja ziliunda amri ya kufunga tab ambayo ilitekelezwa bila ushahidi wowote wa uhalali.

Suluhisho: uthibitisho wa umiliki ni lazima kwa vitendo vya uharibifu

Mantiki iliyorekebishwa hutenganisha njia za kusoma tu na zile za uharibifu. Sasa, kabla ya amri ya close_tab kutekelezwa, chombo lazima lionyeshe alama halali kwa tab inayolengwa. Ikiwa alama haipo, amri hiyo hutoa kosa (error) badala ya kurudi kwenye tab ya sasa. Mlinzi hatarudi tena kwenye tawi la jumla la “fanya jambo lolote.”

Mabadiliko haya yanaondoa hali ya utata ambapo alama isiyopo inaweza kusomwa kama “hakuna la kufanya” au “endelea na hatua.” Kwa kulazimisha kushindwa kwa wazi, chombo kinakulinda kazi ya mtumiaji dhidi ya upotevu wa bahati mbaya.

Vile ambavyo wasanidi programu wanapaswa kuzingatia

  • Usiruhusu jina la kategoria liamue usalama – Lebo kama “tab management” haisemi chochote kuhusu athari ya kila amri iliyo ndani yake. Rekodi gharama ya kila operesheni (kusoma dhidi ya kuharibu) karibu na amri yenyewe.
  • Masharti ya mlinzi lazima yalingane na ukali wa kitendo – Ukaguzi unaotosheleza kwa ombi la kusoma hautoshi kwa amri inayoweza kufuta data. Jenga mifumo ya uhakiki (validation pipelines) tofauti kwa kila aina ya athari.
  • Epuka kurudi kwenye hatua za kiotomatiki bila maelezo (implicit fallbacks) – Wakati mlinzi hawezi kuthibitisha umiliki, jibu salama zaidi ni kusitisha, si kuchagua lengo la kawaida. Hatua za kawaida ni chanzo cha kawaida cha hitilafu za kuongeza mamlaka (privilege-escalation bugs).
  • Kagua dhana za ukaribu – Pitia orodha au menyu yoyote ambapo amri zimekaa karibu na nyingine. Amri isiyo na madhara inaweza kurithi uaminifu uliowekwa kwa amri zake jirani ikiwa kodi haitafanya tathmini ya usalama upya kwa wazi.

Hitimisho

Kukosekana kwa mlinzi wa umiliki si hitilafu (bug); ni pengo la usanifu. Chukulia kila amri ya uharibifu kama eneo la usalama lililotengwa linalohitaji ushahidi wa wazi wa mamlaka, na usiruhusu kamwe “hakuna alama” itafsiriwe kama “endelea.” Ni pale tu ambapo zana za otomatiki zinaweza kulinda tab ambazo zimekusudiwa kuzisimamia.