Kazi ya cron iliyotengenezwa na AI ilifuta kila usajili wa Stripe uliokuwa hai katika kampuni changa (startup) ndani ya sekunde kumi, ikipunguza mapato ya kila mwezi ya kampuni (MRR) hadi $38. Tukio hili linaonyesha kuwa hatari ipo kwenye mchakato wa kuweka programu (deployment pipeline), na si kwenye modeli ya lugha iliyoandika kodi hiyo.
Nini kilitokea
Wiki iliyopita, timu ya BridgeMindAI iliamka na kuona dashibodi inayoonyesha mapato ya kila mwezi (MRR) ya dola $38 pekee. Modeli ya AI ilitengeneza mstari mmoja wa kodi ambao ratiba (scheduler) iliutekeleza kiotomatiki. Mstari huo uliita mwisho wa huduma (endpoint) wa kusitisha usajili wa Stripe kwa kila rekodi ya mteja. Ombi hilo lilikamilika ndani ya sekunde saba na kufuta msingi mzima wa wateja.
Skripti hiyo ilisoma vibaya foleni tupu ya kufuta kama ishara ya kufuta kila kitu. Mtindo huo wa “tupu = vyote” umekuwepo kwenye kodi za uzalishaji (production code) tangu miaka ya 1980, muda mrefu kabla ya AI ya kuzalisha (generative AI).
Kwa nini modeli si mhusika
Watu walimlaumu haraka modeli ya AI kwa kutokuwa ya kuaminika. Kubadilisha modeli kusingekuwa kuzuia ufutaji huo kwa sababu hitilafu hiyo ilikuwa ni mantiki iliyoandikwa na binadamu, siyo njozi (hallucination) au upendeleo (bias).
Mapungufu ya kweli yalikuwa ya kimitindo (architectural):
- Skripti ilihifadhi funguo ya Stripe API ya uzalishaji (live production) ambayo ingeweza kusitisha usajili.
- Iliendeshwa bila uangalizi wowote wakati wa utendaji (runtime supervision).
- Hakukuwa na kituo cha uhakiki wa binadamu kati ya uundaji wa kodi na utekelezaji wake.
Mapengo haya yaliwezesha hitilafu moja kuharibu chanzo cha mapato kwa sekunde chache.
Maswali matatu ya usalama kwa mchakato wowote wa kiotomatiki
Ni operesheni zipi zisizoweza kurejeshwa? Kusitisha usajili, kufuta rekodi, au kutoa marejesho (refund) haviwezi kubadilishwa. Vinahitaji ulinzi zaidi kuliko maswali ya kusoma tu (read-only queries).
Ni sifa (credentials) gani ambazo wakala anazo? Kumpa wakala funguo kuu ya Stripe (master Stripe key) huupa uwezo usio na mipaka. Tumia kanuni ya upendeleo mdogo zaidi (least-privilege principle): tumia funguo zenye ukomo (scoped keys) ambazo zinaweza kufanya tu kazi inayohitajika.
Kituo cha uhakiki wa binadamu kiko wapi? Mapitio ya kodi pekee hayatoshi. Weka kizuizi baada ya uundaji wa kodi na kabla ya hatua yoyote ya uharibifu.
Kinga za usalama za vitendo
- Kizuizi cha majaribio (Dry-run gate) – Kabla ya ombi lolote la kufuta au kusitisha, rekodi malengo yaliyokusudiwa. Ikiwa orodha ni tupu au ni kubwa isivyo kawaida, acha na umjulishe binadamu.
- Sifa zenye ukomo (Scoped credentials) – Tumia funguo za kusoma tu (read-only) kama chaguo la kawaida. Wakati kazi inapaswa kusitisha usajili, tengeneza funguo iliyodhibitiwa ambayo inaweza kufanya kazi kwenye kitambulisho kimoja cha mteja kwa wakati mmoja.
- Ujumbe wa binadamu (Human-in-the-loop prompt) – Tuma ujumbe mfupi kwenye chaneli (mfano, Slack) kama vile “Niko karibu kusitisha usajili 47. Thibitisha?” Gharama yake ni ndogo sana; faida ya usalama ni kubwa sana.
Hatua hizi hufanya kazi bila kujali ni modeli gani iliyoandika kodi hiyo kwa sababu zinalinda mazingira ya utekelezaji, siyo kizalishaji.
Orodha ya ukaguzi wa uzalishaji kwa wakala wa kiotomatiki
- Panga kila operesheni kama kusoma, inayoweza kurejeshwa, au isiyoweza kurejeshwa.
- Hitaji idhini ya wazi ya binadamu kwa vitendo vyote visivyoweza kurejeshwa.
- Weka mipaka ya sifa (credentials) kwenye ruhusa za chini kabisa zinazohitajika kwa kazi hiyo.
- Weka mipaka ya ukubwa kwenye mizunguko (loops) inayofuta au kubadilisha rekodi.
- Endesha wakala kwanza katika mazingira ya majaribio (sandbox) yanayoiga data ya uzalishaji; thibitisha matokeo kabla ya kugusa data halisi.
- Rekodi mpango wa wakala kwa lugha rahisi kabla ya utekelezaji ili mkaguzi aweze kuelewa nia kwa haraka.
Kufuata orodha hii ya ukaguzi kunageuza skripti ya “endesha-mara-moja-na-uisahau” kuwa mtiririko wa kazi uliodhibitiwa ambao unaweza kukaguliwa na kusitishwa ikiwa kitu kinaonekana kuwa kibaya.
Somo ni wazi: amini mchakato, siyo modeli.
