Faida:
- Uwezo wa kuthibitisha pato la AI katika tabaka tatu: usahihi, usalama na chanzo/leseni
- Uwezo wa kufunika hatari kama vile sindano, vifurushi vya kuona na siri zilizozikwa na molds salama na zana
- Uwezo wa kuwasilisha msimbo muhimu wa usalama kwa idhini ya mhandisi mwenye uwezo na kuelewa kutohamishwa kwa wajibu.
Kuzalisha msimbo wa AI ni rahisi; Kumwamini ni ghali. Madhumuni pekee ya kitengo hiki ni kubadilisha kanuni ya "thibitisha", ambayo tumerudia katika vitengo vyote vya awali, kuwa taaluma ya uhandisi ya utaratibu. Kwa sababu msimbo unaotolewa na AI, hata kama inaonekana kuwa sahihi kwa mtazamo wa kwanza, hubeba hatari tatu tofauti: kutofanya kazi/sio sahihi (hallucination), kutokuwa na usalama (udhaifu) na kubeba hatari za kisheria/leseni. Kujua haya matatu na kuanzisha mlango kwa kila mmoja wao hukufanya kuwa mtaalamu.
Hapa tunazingatia "uthibitishaji" katika tabaka tatu: usahihi (je msimbo unafanya kazi kweli?), usalama (je, unastahimili ingizo hasidi?), na uthibitisho/leseni (Je, nina haki ya kutumia msimbo huu?). Kila safu ina njia zake za udhibiti, na hakuna hata mmoja wao anayeweza kupitishwa na "hivyo ndivyo AI ilisema."
Tabaka Tatu za Hatari
1. Hatari ya usahihi (hallucination). Mfano huo unaweza kuita kazi isiyokuwepo, kutumia vibaya API, kupita kimya kesi ya makali. Nambari hiyo inaonekana "ya busara" lakini sio sawa. Makata: mkusanyiko, upimaji, uchambuzi tuli na ukaguzi wa kuona.
2. Hatari ya usalama. AI inaweza kurudia mifumo isiyo salama katika data ya mafunzo: hoja inaweza kuathiriwa na sindano ya SQL, ingizo la mtumiaji ambalo halijaidhinishwa, usimbaji fiche dhaifu, kutoweka salama, uelekezaji wazi. Nambari hii inafanya kazi lakini inaweza kushambuliwa. Dawa: ukaguzi unaozingatia usalama, vichanganuzi otomatiki (SAST), na kuweka mifumo salama inayojulikana.
3. Hatari ya chanzo/leseni. AI inaweza kutoa matokeo ambayo yanafanana kwa karibu na msimbo wenye leseni yenye hakimiliki au vikwazo, au inaweza kupendekeza utegemezi wenye leseni isiyofaa. Dawa: kukagua utegemezi na leseni, kuangalia uhalisi, sera ya shirika.
Tahadhari: Hatari iliyofichika zaidi kati ya hizi tatu ni usalama; kwa sababu msimbo unaweza kupitisha majaribio, kufanya kazi kwa urahisi katika toleo la umma, na uwezekano wa kuathiriwa hufichuliwa tu mvamizi anapoupata. "Kufanya kazi" si sawa na "salama."
Hatua kwa Hatua: Lango la Uthibitishaji la Tabaka
- Soma kwa ufahamu. Ielewe vizuri kanuni kabla ya kuikubali; Usiunganishe nambari ya kuthibitisha usiyoielewa. Ikiwa huwezi kueleza "kwa nini inafanya kazi", haijathibitishwa bado.
- Thibitisha kuwa ipo. Thibitisha kuwa kila chaguo la kukokotoa, API na kifurushi kinachotumika kipo na kinatumika kwa usahihi (lango la kuona maono).
- Endesha zana za kiotomatiki. Kikusanya, linter (kichanganuzi cha mtindo/hitilafu), kikagua chapa, majaribio ya vipimo, na ikiwezekana SAST (Jaribio la Usalama la Programu Isiyobadilika - zana inayochanganua msimbo wa chanzo kwa udhaifu).
- Iangalie kwa mtazamo wa usalama. Je, ingizo limethibitishwa? Je, swali limewekewa vigezo? Je, siri imezikwa? Je, kuna udhibiti wa idhini?
- Angalia chanzo na leseni. Je, wategemezi wapya wamepewa leseni? Matokeo yanaonekana sawa na codebase inayojulikana?
- Ikiwa ni muhimu kwa usalama, omba idhini ya mtaalamu. Ukaguzi wa kujitegemea wa mhandisi mwenye uwezo katika maeneo kama vile uthibitishaji, malipo, cryptography, udhibiti wa ufikiaji ni wa lazima.
Kesi Tatu Ndogo
Kesi ya 1 - Sindano ya SQL imenaswa kwenye lango la ukaguzi. Msimbo unaozalishwa wa AI unaoambatanisha ingizo la mtumiaji moja kwa moja kwenye hoja ya SQL kwa sehemu ya mwisho ya utafutaji ("... WHERE name = '" + q + "'"). Kanuni ilikuwa ikifanya kazi na kupita mtihani. Ukaguzi unaozingatia usalama na utambazaji wa SAST ulipata hii; Ilibadilishwa kuwa hoja yenye vigezo (taarifa iliyotayarishwa). Ikiwa haikukamatwa, ingekuwa hatari ya kawaida ya uvujaji wa data.
Kesi ya 2 - kifurushi cha kudanganya. AI ilipendekeza kifurushi kisichokuwepo cha npm (haraka-salama-changanua) kwa kazi. Wakati msanidi alijaribu kuiweka, kifurushi hakikupatikana. Mbaya zaidi: katika hali nyingine, washambuliaji wanaweza kujaza majina ya kifurushi kama hicho cha "ghost" na vifurushi halisi, hasidi (mkanganyiko wa utegemezi). Somo: thibitisha kila kifurushi kilichopendekezwa dhidi ya sajili rasmi na historia ya upakuaji/utunzaji.
Kesi ya 3 - Kutopatana kwa leseni. Maktaba shirikishi ya nifty iliyopendekezwa na AI ilikuwa na leseni dhabiti ya kunakili ambayo haioani na leseni ya bidhaa ya taasisi. Uchambuzi wa leseni ya utegemezi uliripoti hivi; Timu ilibadilisha leseni na kuweka mbadala inayofaa. Bila uthibitishaji, mzigo wa kisheria ungetokea katika usambazaji wa bidhaa.
Violezo Vinne Vinakiliwa
Jiangalie kabla ya kuingia:
Kabla ya kukubali nambari ifuatayo inayotokana na AI, angalia: 1) Je, kila kazi/API/kifurushi kinachotumia kipo kweli? Ripoti washukiwa.2) Je, kuna ingizo lolote ambalo halijaidhinishwa, uunganishaji wa SQL/amri, siri iliyofichwa, usiri dhaifu?3) Je, ni hitilafu/kesi zipi ambazo hazijashughulikiwa?Weka kila matokeo lebo kama "hakika / yanawezekana" na upendekeze marekebisho.{{code}}
Ukaguzi unaozingatia usalama:
Chunguza nambari hii kwa jicho la usalama. Tafuta udhaifu wa kawaida wa mtindo wa OWASP: sindano, uthibitishaji/uidhinishaji uliovunjwa, ufichuaji nyeti wa data, kukataliwa kwa usalama, uelekezaji upya ambao haujaidhinishwa. Kwa kila matokeo: hatari, hali ya unyonyaji, urekebishaji. Huu ni uchunguzi wa awali; rejelea matokeo muhimu kwa ukaguzi wa usalama wa binadamu.{{code}}
Utegemezi na ukaguzi wa leseni:
Orodhesha vitegemezi vilivyoongezwa/vilivyopendekezwa na msimbo huu. Kwa kila moja: je, kifurushi kipo kweli, kinatunzwa, leseni yake ya kawaida inaweza kuwa nini (LAZIMA ITHIBITIWE), na ni kweli inahitajika kwa mradi au inaweza kufanywa kwa zana iliyopo?{{code au orodha ya utegemezi}}
Uwekaji wa formwork salama (katika uzalishaji):
Andika msimbo wa {{task}}. SHERIA ZA LAZIMA za usalama:- Thibitisha/safisha ingizo zote za nje.- Tumia tu hoja yenye vigezo katika ufikiaji wa hifadhidata.- Usipachike siri katika msimbo; kudhani mabadiliko ya mazingira/siri meneja - Usimeze makosa; Ifikirie kwa maana. Eleza jinsi kanuni inavyokubaliana na sheria hizi katika vipengele 3.
Agizo dhaifu / Ukumbusho thabiti
Dhaifu: "Andika swali ambalo hutafuta kwa jina la mtumiaji." (Msimbo ulio katika hatari ya kudungwa unaweza kutokea.)
Imara: "Andika kipengele cha kukokotoa ambacho kinatafuta kwa jina la mtumiaji. Usiunganishe kamwe ingizo la mtumiaji kwenye hoja kama mfuatano; tumia hoja iliyo na vigezo (taarifa iliyotayarishwa). Thibitisha ingizo la urefu na herufi. Eleza katika sentensi 2 kwa nini msimbo umefungwa kwa kudunga."
Toleo la nguvu linaweka muundo salama tangu mwanzo; Kwa hivyo, inahakikisha kuwa udhaifu hautokei kabisa, badala ya kuupata baadaye. Walakini, ni muhimu kupitisha nambari iliyotengenezwa kupitia milango ya uthibitishaji.
Safu ya uthibitishaji
Chombo/mbinu
Je, "AI alisema" inatosha?
usahihi
Mkusanyiko, upimaji, ukaguzi wa kuona
hapana
API/ukweli wa kifurushi
Udhibiti rasmi wa hati/rekodi
hapana
Usalama
SAST, ukaguzi wa usalama
hapana
Leseni/chanzo
Ukaguzi wa utegemezi na leseni
hapana
Mantiki muhimu ya usalama
Idhini ya mhandisi wa kitaalam
Sivyo kabisa
Wajibu Hauwezi Kuhamishwa
Wajibu wa makosa, udhaifu au ukiukaji unaotokana na msimbo unaozalishwa na zana ya AI ni wa timu inayokusanya na kusambaza msimbo huo, si kwa mtoaji wa zana. Huu ni ukweli wa kitaalamu na pia wa kisheria: unatia sahihi. Kwa hivyo "AI iliizalisha" sio kisingizio, lakini uhalali wa tahadhari ya ziada. Hasa katika mifumo muhimu ya usalama, matokeo ya AI si mbadala wa kukaguliwa na kuidhinishwa na mhandisi aliyehitimu chini ya hali yoyote; Kwa kiwango kikubwa, AI hutoa mchoro unaoharakisha mhandisi huyo.
Kidokezo: Unda orodha fupi ya ukaguzi kwenye timu yako unayoita "lango la uthibitishaji la msimbo unaozalishwa na AI" (build + test + usalama scan + visual inspection). Mara lango hili linapokuwa tabia, upotezaji wa kasi ni mdogo na upunguzaji wa hatari ni wa juu.
Makosa ya kawaida
- Kuchanganya "kazi" na "salama". Msimbo unaopitisha majaribio unaweza kuwa hatarini kushambuliwa.
- Kutumia kifurushi/API bila kukithibitisha. Vifurushi vya ukumbi vinaharibika na kusababisha hatari ya usalama.
- Kukwepa zana za kiotomatiki. Linter, kikagua chapa na SAST hukamata kwa bei nafuu kile ambacho wanadamu wanakosa.
- Kupuuza leseni. Utegemezi usiofaa wenye leseni huleta mzigo wa kisheria kwa usambazaji.
- Kuweka jukumu kwenye gari. Timu inawajibika kwa kanuni katika uzalishaji; "AI nilifanya" sio kisingizio.
Kwa muhtasari
Kukubali matokeo ya AI kunahitaji safu tatu za uthibitishaji: usahihi (kukusanya, jaribio, ukaguzi wa kuona), usalama (SAST na ukaguzi unaozingatia usalama), na chanzo/leseni (ukaguzi wa utegemezi). Thibitisha kuwa kila kifurushi na API inayotumika ipo, tekeleza mifumo salama tangu mwanzo, na uwasilishe nambari muhimu ya usalama ili kuidhinishwa na mhandisi aliyehitimu. "Kazi" haimaanishi kuwa salama, na "AI inayozalishwa" haiondoi dhima. Lango la uhakiki ni bei ya taaluma, sio kasi.
Jukumu la maombi
Ipe AI kwa makusudi kazi nyeti kwa usalama (k.m. "kitendakazi ambacho hutafuta hifadhidata kwa ingizo la mtumiaji"), wakati huu bila kuweka muundo salama. Pitisha nambari ya kuthibitisha inayoingia kupitia violezo vya "ukaguzi wa kabla ya kuandikishwa" na "ukaguzi unaozingatia usalama": je, kuna sindano yoyote, siri iliyofichwa, pakiti iliyoibiwa, au ingizo ambalo halijaidhinishwa? Kisha uulize kazi sawa tena na kiolezo cha "weka muundo salama" na ulinganishe matokeo mawili. Ikiwezekana, endesha chombo cha linter/SAST na ulinganishe matokeo na udhibiti wa AI.
orodha ya ukaguzi
- [ ] Ninathibitisha matokeo ya AI katika tabaka tatu: usahihi, usalama na leseni.
- [ ] Ninathibitisha kuwa kila chaguo la kukokotoa, API na kifurushi kinachotumika kipo.
- [ ] Ninaendesha mkusanyiko, majaribio, linter na, ikiwezekana, zana za SAST.
- [ ] Ninaweka mifumo salama (hoja yenye vigezo, uthibitishaji wa ingizo, usimamizi wa siri) tangu mwanzo.
- [ ] Ninaangalia utoaji leseni na mahitaji ya vitegemezi vipya.
- [ ] Ninawasilisha nambari muhimu ya usalama ili kuidhinishwa na mhandisi stadi na ninaelewa kuwa ninawajibika.