Kitengo 7 / 11

Uhakiki Salama wa Msimbo na Uchanganuzi Tuli: Kutafuta Athari za Athari kwa kutumia Akili Bandia

Faida:

  • Uwezo wa kutumia akili ya bandia kama jicho la pili na kuashiria udhaifu wa darasa la OWASP (sindano, siri ngumu, udhibiti wa ufikiaji) katika msimbo kwa kutoa muktadha.
  • Uwezo wa kuondoa chanya za uwongo zinazozalishwa na akili ya bandia na muktadha na kuzuia kutibu kila utaftaji kama hatari ya kweli bila kuidhinisha.
  • Uwezo wa kutambua kuwa urekebishaji unaopendekezwa na akili bandia unaweza kuanzisha udhaifu/ hitilafu mpya na kupitisha kila sehemu kwenye lango la ukaguzi na majaribio.

Udhaifu ndani ya programu ni miongoni mwa udhaifu wa gharama kubwa zaidi kwa sababu umepachikwa kwenye bidhaa tangu mwanzo na kusambazwa kwa mamilioni ya watumiaji. Ukaguzi salama wa msimbo ni mchakato wa kusoma msimbo wa chanzo mstari baada ya mstari na kupata udhaifu - sindano ya SQL, uwezekano wa kuathiriwa na uthibitishaji, nenosiri lenye msimbo mgumu, uidhinishaji usio sahihi - kabla ya kuanza uzalishaji. Inapofanywa kwa mkono, ni polepole na inachosha; Ni rahisi kukosa athari katika msingi mkubwa wa msimbo.

AI ina nguvu katika ukaguzi wa msimbo kwa sababu mbili: msimbo pia ni lugha, na AI ni nzuri katika utambuzi wa muundo. AI inaweza kuripoti mifumo hatari kwa haraka katika kipande cha msimbo (kuweka ingizo la mtumiaji moja kwa moja kwenye hoja, hifadhi ya data ambayo haijasimbwa, kukosa uthibitishaji wa ingizo), kueleza kwa nini kila moja ni hatari, na kupendekeza kurekebisha. Lakini AI haioni muktadha mzima wa uendeshaji wa msimbo (ingizo linaweza kusafishwa kwenye safu nyingine), inaweza kuvumbua athari ambayo haipo (chanya ya uwongo) au kukosa athari halisi (hasi ya uwongo), na muhimu zaidi, "rekebisha" inayopendekeza inaweza kuanzisha athari mpya au hitilafu. AI ni jicho la pili na pointer katika ukaguzi wa kanuni; Msanidi na mtaalam wa usalama huamua ikiwa matokeo ni hatari ya kweli na ikiwa marekebisho ni sahihi na salama.

Hatua za ukaguzi wa kanuni

  1. Toa upeo na muktadha. Lugha gani, mfumo gani, nambari hii inachukua wapi ingizo, inatoa wapi pato, inafanya kazi katika safu gani? Uhakiki wa msimbo bila muktadha hutoa chanya za uwongo.
  2. Changanua kwa mifumo hatari. Tafuta aina zinazojulikana za uwezekano wa AI (kama vile OWASP Top 10): sindano, uthibitishaji, ufichuzi nyeti wa data, udhibiti wa ufikiaji.
  3. Acha kila matokeo yawe sawa. Kwa kila bendera: ni mstari gani, ni aina gani ya mazingira magumu, inawezaje kutumiwa vibaya, ni ushahidi gani. Ugunduzi usio na msingi hauchukuliwi kwa uzito.
  4. Ondoa chanya ya uwongo. Je! ingizo linasafishwa, je, njia hiyo inapatikana kweli - angalia na muktadha.
  5. Thibitisha kurekebisha. Thibitisha kuwa kiraka kinachopendekezwa na AI hufunga uwezekano wa kuathiriwa, hakionyeshi udhaifu/ hitilafu mpya, na kimepita majaribio.
  6. Idhini ya kibinadamu. Msanidi programu + mtaalam wa usalama hukagua utafutaji na kurekebisha; Ndivyo inavyoingia kwenye hazina ya msimbo.

Masharti: SAST (Jaribio Tuli la Usalama la Programu - jaribio la usalama tuli ambalo huchanganua msimbo wa chanzo bila kuiendesha). DAST (Dynamic — jaribio linalobadilika ambalo hujaribu programu inayoendeshwa nje). OWASP Top 10 ndiyo orodha ya kawaida ya udhaifu wa kawaida wa programu ya wavuti. Sindano ni hatari inayosababishwa na kufasiri ingizo la mtumiaji kama amri/hoja (k.m. sindano ya SQL). Hoja iliyoainishwa ni njia sahihi inayozuia sindano kwa kutenganisha ingizo kutoka kwa msimbo.

Jedwali la madarasa ya kawaida ya mazingira magumu

Darasa la mazingira magumu

Dalili (katika kanuni)

suluhisho sahihi

Mtego wa AI

Sindano ya SQL

Kuunganisha kwenye hoja

Hoja yenye vigezo

Inaweza kupuuza usafishaji

siri ngumu

Nenosiri/ufunguo katika msimbo

Siri salama (vault), env

Chanya ya uwongo (sampuli/jaribio)

Uthibitishaji dhaifu

Kidhibiti kinakosekana/sio sahihi

Nguvu, udhibiti wa kati

inakosa muktadha

Udhibiti wa ufikiaji usiofaa

Hakuna ukaguzi wa idhini

Uidhinishaji wa upande wa seva

Haielewi mtiririko changamano

Ufumbuzi nyeti wa data

Hifadhi/ukataji bila nenosiri

Usimbaji fiche, masking

Huwezi kujua umakinifu

Usanifu usio salama

Ondoa data isiyoaminika

Uchanganuzi salama

Inakosa muundo adimu

kesi tatu ndogo

Kesi 1 - Kukamata sindano halisi. Msanidi programu ana AI inachunguza kipengele cha ufikiaji wa data. AI huashiria mstari ambapo thamani ya Id ya mtumiaji kutoka kwa mtumiaji imeunganishwa moja kwa moja kwenye maandishi ya SQL na kusema "hii ni sindano ya SQL ya kawaida, igeuze kuwa hoja yenye vigezo"; Inatoa marekebisho ya sampuli. Msanidi programu anathibitisha kuwa ingizo halijasafishwa kwingine, anathibitisha kuwa ni hatari halisi, atatekeleza hoja iliyopendekezwa ya vigezo na anaandika jaribio. AI ilionyesha kuathirika; upimaji wa uthibitishaji na urekebishaji ulitoka kwa msanidi programu.

Kesi ya 2 - Siri isiyobadilika chanya ya uwongo. AI inaona neno la siri = "test1234" kwenye faili na inasema "muhimu: nenosiri ngumu". Msanidi hukagua muktadha: hii ni faili ya majaribio ya kitengo, data ya jaribio la dummy, haijatolewa katika uzalishaji na haijatumwa kwa mfumo halisi. Ugunduzi huo ni chanya ya uwongo. Msanidi anaweka hati hii lakini hachukui hatua kwa sababu sio siri halisi. Somo: Ishara ya "siri ngumu" ya AI lazima iondolewe na muktadha; Sio kila kamba ni siri.

Kesi ya 3 - Marekebisho mapya ya athari. AI inapendekeza kurekebisha uwezekano wa kuathiriwa kwa XSS (uandikaji wa tovuti mbalimbali); lakini msimbo anaopendekeza husafisha pembejeo mahali pasipofaa na kuruka usimbaji wa matokeo katika eneo lingine; Matokeo yake, pengo haifungi kabisa. Mtaalamu wa usalama hukagua urekebishaji, huona usimbaji unaokosekana, na kuurekebisha katika safu sahihi. Somo: Kiraka ambacho AI inapendekeza si salama kiotomatiki; Kila marekebisho yanakaguliwa na kujaribiwa.

Mwongozo dhaifu / Mwongozo thabiti

Agizo dhaifu:

Kuna mwanya katika nambari hii, irekebishe: [code]

Kidokezo hiki hakitoi muktadha (lugha, mfumo, chanzo cha ingizo), hauulizi uhalali, hauhoji chanya ya uwongo, na iko tayari kukubali kwa upofu masahihisho yanayotolewa na AI. AI ilichanganya ishara za kuathirika kwa kweli na moja isiyokuwepo.

Agizo lenye nguvu:

Jukumu lako: msaidizi ambaye ni JICHO LA PILI kwa msanidi programu katika ukaguzi salama wa msimbo. Kufanya maamuzi; fikiria marekebisho yaliyotumika moja kwa moja. Msimbo: [taja lugha/mfumo].Muktadha: kazi hii [chanzo cha pembejeo: k.m. inapokea [ombi la HTTP la nje], huandikia [mahali pa kutoa]. Jukumu lako: (1) kuripoti udhaifu unaowezekana na darasa la OWASP, toa nambari ya mstari + kwa nini ni hatari + jinsi ya kutumia + ushahidi kwa kila moja, (2) andika angalau hali 1 chanya ya uwongo kwa kila matokeo (k.m. ikiwa ingizo limesafishwa katika safu nyingine), (3) pendekeza kurekebisha lakini kwa ishara "[kagua + andika mtihani]"; Pia tathmini ikiwa urekebishaji unaleta udhaifu/ hitilafu mpya. Kuongeza uwezekano wa kuathiriwa bandia.[code]

Uhakika wenye nguvu unatoa muktadha, unauliza darasa la OWASP na ushahidi, unahoji chanya za uwongo na hatari za urekebishaji, hulazimisha ukaguzi wa kibinadamu.

Violezo vya haraka vinavyoweza kunakiliwa

KIOLEZO CHA UCHANGANUZI WA UDHAIFU Chunguza msimbo wa [lugha/mfumo] wa OWASP Juu 10. Kwa kila upataji unaowezekana: nambari ya mstari, darasa la mazingira magumu, kwa nini ni hatari, matumizi ya sampuli, nguvu ya ushahidi (hakika/inawezekana/dhaifu). Muktadha: ingizo [chanzo], pato [lengwa]. Kuongeza matokeo yaliyotengenezwa; Ikiwa huna uhakika, andika "[lazima ithibitishwe]". Msimbo: [bandika]

MTINDO WA UWONGO WA KUONDOA CHANYA Kwa upataji wa msimbo ufuatao, orodhesha matukio ambayo HAKUNA udhaifu wa kweli: ingizo linaweza kufutwa kwenye safu nyingine, je njia hii inafikiwa, je thamani hii ni jaribio/sampuli, ni mfumo unaolindwa kiotomatiki. Andika jinsi ya kuthibitisha kwa kila mmoja. Tafuta: [bandika]

REKEBISHA TATHMINI TEMPLATERPendekeza kurekebisha kwa athari zifuatazo; kisha ukosoa urekebishaji wako mwenyewe: (1) je, inafunga uwezekano wa kuathiriwa, (2) je, inatanguliza athari/mdudu mpya, (3) ni mtihani gani ninaopaswa kuandika (kesi chanya na hasi), (4) athari ya utendaji/utendakazi. Nitahakiki na kujaribu kurekebisha. Athari + msimbo: [bandika]

KIOLEZO CHA KUFUNDISHIA KWA MFANO SALAMA kwa darasa la mazingira magumu [k.m. SQL injection] kwa kulinganisha inaonyesha muundo salama wa kuandika na mifumo yenye makosa ya kawaida katika lugha/mfumo huu. Kanuni ya jumla + toa msimbo mfano; lakini nataka uulize muktadha kabla ya kuutekeleza katika nambari yangu. Lugha/mfumo: [andika]

Makosa ya kawaida

  • Kagua bila muktadha. Bila lugha, mfumo, na muktadha wa ingizo/towe, AI inachanganya matokeo halisi na ya uwongo; Hakikisha kutoa muktadha.
  • Kukosea kila ishara kwa udhaifu halisi. AI hutoa chanya za uwongo (data ya mtihani, pembejeo iliyosafishwa kwenye safu nyingine); Pepeta kila utafutaji na muktadha.
  • Kwa kutumia upofu masahihisho ya AI. Kiraka kinachopendekezwa kinaweza kuanzisha udhaifu/mende mpya; pitia na uandike vipimo.
  • Kuamini hasi ya uwongo. Hata kama AI inasema "hakuna udhaifu", chunguza njia muhimu mwenyewe; Uchanganuzi tuli hautambui kila athari.
  • Kutoa nambari / siri kwa zana ya nje. Nambari ya kibinafsi na siri halisi (ufunguo, nenosiri) ni mali ya kiakili na hatari; ficha jina au utumie zana za ushirika, zilizotengwa.
Kidokezo: Unapokuwa na msimbo wa ukaguzi wa AI, kichujio kinachofaa zaidi ni kuuliza "uwezo wa ushahidi" (hakika/uwezekano/dhaifu) kwa kila matokeo. Matokeo mengi yaliyowekwa alama "dhaifu" ni chanya za uwongo; unatenga nishati yako kwa wale "wa uhakika".
Tahadhari: Marekebisho ya usalama yaliyopendekezwa na AI haipaswi kuingia kwenye ghala bila kujaribiwa. "Rekebisho" lisilo sahihi linaweza kuacha uwezekano wazi na kusababisha hitilafu ya utendaji katika uzalishaji; Kila kiraka hupitia lango la ukaguzi na majaribio.

Kwa muhtasari

Ukaguzi salama wa msimbo ndiyo njia ya bei nafuu zaidi ya kupata athari kabla ya kuanza uzalishaji, na kwa kuwa msimbo ni lugha, AI inakuwa jicho la pili lenye nguvu hapa: huripoti mifumo hatari, inaelezea hatari, inapendekeza marekebisho. Lakini AI haioni muktadha mzima wa uendeshaji, hutoa chanya za uwongo na hasi za uwongo, na kiraka kinachopendekeza kinaweza kutambulisha udhaifu mpya. Kwa hivyo ukaguzi una hatua sita (muktadha, uchunguzi, uhalalishaji, uondoaji chanya wa uwongo, uthibitishaji wa kurekebisha, uidhinishaji wa kibinadamu) na uamuzi ni wa msanidi programu na mtaalamu wa usalama. Kanuni tatu: hakuna kutafuta kunafasiriwa bila muktadha, kila ishara huondolewa na muktadha, hakuna urekebishaji unaoingia kwenye hifadhi bila kufanyiwa majaribio. Na nambari / siri haipewi kwa zana ya nje bila kutokujulikana.

Jukumu la maombi

Chukua sampuli ya kijisehemu cha msimbo (ama ukiondoa sehemu nyeti kwenye msimbo wako mwenyewe au sampuli ya msimbo yenye udhaifu). Ifanye AI ichunguze kwa kiolezo cha "Uchanganuzi wa Athari"; Tumia kiolezo cha "Kuondoa Chanya kwa Uongo" kwa kila utafutaji na uondoe halisi. Chukua masahihisho ya matokeo mazito zaidi kwa kutumia kiolezo cha "Tathmini ya Urekebishaji", kihakiki mwenyewe na uandike kisa kimoja chanya + kimoja hasi. Kumbuka ni matokeo mangapi yalikuwa chanya za uwongo.

orodha ya ukaguzi

  • [ ] Nilitoa lugha, mfumo na muktadha wa ingizo/towe kabla ya kukagua msimbo.
  • [ ] Niliuliza nambari ya mstari, darasa la mazingira magumu, njia ya unyonyaji na ushahidi kwa kila matokeo.
  • [ ] Nilikagua kila utaftaji ili kupata chanya za uwongo na muktadha.
  • [ ] Sikutekeleza kwa upofu masahihisho ya AI; Nilipitia na kuandika mtihani.
  • [ ] Licha ya matokeo ya "Hakuna udhaifu", nilikagua njia muhimu mwenyewe.
  • [ ] Nilificha msimbo/siri au nilitumia zana za shirika zilizotengwa.
  • [ ] Nimepitisha ugunduzi na kurekebisha kupitia msanidi + idhini ya usalama.