Ẹyọ 7 / 11

Atunwo koodu to ni aabo ati Itupalẹ Aimi: Wiwa Awọn ailagbara pẹlu Imọye Oríkĕ

Awọn anfani:

  • Agbara lati lo itetisi atọwọda bi oju keji ati asia OWASP awọn ailagbara kilasi (abẹrẹ, aṣiri lile, iṣakoso iwọle) ninu koodu nipa fifun ọrọ-ọrọ
  • Agbara lati yọkuro awọn idaniloju eke ti a ṣe nipasẹ oye atọwọda pẹlu ipo ati ṣe idiwọ itọju wiwa kọọkan bi ailagbara gidi laisi ifọwọsi
  • Agbara lati ṣe akiyesi pe atunṣe ti a daba nipasẹ itetisi atọwọda le ṣafihan awọn ailagbara / awọn idun tuntun ati kọja alemo kọọkan nipasẹ atunyẹwo ati ẹnu-ọna idanwo

Awọn ailagbara laarin sọfitiwia wa laarin awọn ailagbara gbowolori julọ nitori wọn ti fi sii ninu ọja lati ibẹrẹ ati pinpin si awọn miliọnu awọn olumulo. Atunyẹwo koodu aabo jẹ ilana ti kika laini koodu orisun nipasẹ laini ati mimu awọn ailagbara - abẹrẹ SQL, ailagbara ijẹrisi, ọrọ igbaniwọle ti o ni koodu lile, aṣẹ ti ko tọ - ṣaaju ki wọn lọ sinu iṣelọpọ. Nigbati a ba ṣe pẹlu ọwọ, o lọra ati tiring; O rọrun lati padanu ailagbara kan ni ipilẹ koodu nla kan.

AI jẹ alagbara ni atunyẹwo koodu fun awọn idi meji: koodu tun jẹ ede, ati AI dara ni idanimọ apẹẹrẹ. AI le yara ṣe afihan awọn ilana ti o lewu ni nkan ti koodu kan (fifi titẹ sii olumulo taara sinu ibeere naa, ibi ipamọ data ti a ko sọ di mimọ, afọwọsi titẹ sii ti o padanu), ṣalaye idi ti ọkọọkan jẹ eewu, ati daba atunṣe kan. Ṣugbọn AI ko rii gbogbo ipo iṣẹ ti koodu naa (titẹ sii le jẹ imukuro ni ipele miiran), o le ṣẹda ailagbara ti ko si (rere eke) tabi padanu ailagbara gidi (odi eke), ati ni pataki julọ, “fix” ti o gbero le ṣafihan ailagbara tabi kokoro tuntun. AI jẹ oju keji ati ijuboluwole ni atunyẹwo koodu; Olùgbéejáde ati alamọja aabo pinnu boya wiwa jẹ ailagbara gidi ati boya atunṣe jẹ deede ati ailewu.

Awọn igbesẹ ti koodu awotẹlẹ

  1. Fun dopin ati àrà. Ede wo, iru ilana wo, nibo ni koodu yii n gba titẹ sii, nibo ni o funni ni iṣelọpọ, ni ipele wo ni o ṣiṣẹ? Atunwo koodu laisi ọrọ-ọrọ ṣe agbejade awọn idaniloju eke.
  2. Ṣayẹwo fun awọn ilana ti o lewu. Wa awọn kilasi ailagbara AI ti a mọ (gẹgẹbi OWASP Top 10): abẹrẹ, ijẹrisi, ifihan data ifura, iṣakoso iwọle.
  3. Ṣe wiwa kọọkan lare. Fun asia kọọkan: kini ila, kini kilasi ailagbara, bawo ni a ṣe le lo, kini ẹri naa. Awari ti ko ni idalare ko ni mu ni pataki.
  4. Yọ irokuro rere kuro. Njẹ titẹ sii ti wa ni imukuro nitootọ, jẹ ọna yẹn ni iraye si gaan - ṣayẹwo pẹlu ọrọ-ọrọ.
  5. Ṣe idaniloju atunṣe naa. Jẹrisi pe alemo ti a ṣeduro nipasẹ AI gangan tilekun ailagbara, ko ṣe agbekalẹ awọn ailagbara/awọn idun tuntun, ati pe o ti kọja idanwo.
  6. Ifọwọsi eniyan. Olùgbéejáde + amoye aabo ṣe atunyẹwo wiwa ati ṣatunṣe; Iyẹn ni bi o ṣe n wọle si ibi ipamọ koodu.

Awọn ofin: SAST (Idanwo Aabo Ohun elo Aimi - idanwo aabo aimi ti o ṣe itupalẹ koodu orisun laisi ṣiṣiṣẹ rẹ). DAST (Yidara - idanwo agbara ti o ṣe idanwo ohun elo nṣiṣẹ ni ita). OWASP Top 10 jẹ atokọ boṣewa ti awọn ailagbara ohun elo wẹẹbu ti o wọpọ julọ. Abẹrẹ jẹ ailagbara ti o ṣẹlẹ nipasẹ itumọ titẹ sii olumulo bi aṣẹ/ibeere (fun apẹẹrẹ abẹrẹ SQL). Ibeere paramita jẹ ọna ti o pe ti o ṣe idiwọ abẹrẹ nipa yiyatọ kikọ sii lati koodu naa.

Tabili ti awọn kilasi ailagbara ti o wọpọ

Kilasi palara

Awọn aami aisan (ni koodu)

ọtun ojutu

pakute AI

SQL abẹrẹ

Didapọ titẹ sii sinu ibeere

Ìbéèrè parameterized

Le foju imototo

lile koodu asiri

Ọrọigbaniwọle / bọtini ni koodu

Asiri ailewu (vault), env

Idaduro eke (ayẹwo/idanwo)

Ijeri ailera

Sonu/isakoso ti ko tọ

Alagbara, iṣakoso aarin

padanu àrà

Aṣiṣe wiwọle Iṣakoso

Ko si ayẹwo iwe-aṣẹ

Aṣẹ ẹgbẹ olupin

Ko ye eka sisan

Ifihan data ti o ni imọlara

Ọrọigbaniwọle-ọfẹ ipamọ / wọle

Ìsekóòdù, masking

Ko le mọ lominu

Serialization ti ko ni aabo

Deserialize unreliable data

Asọyewo to ni aabo

Npadanu apẹrẹ toje

mẹta mini igba

Ọran 1 - Mimu abẹrẹ gangan. Olùgbéejáde ni AI ṣe ayẹwo iṣẹ iraye si data kan. AI ṣe aami laini nibiti iye olumuloId lati ọdọ olumulo ti wa ni idapọ taara sinu ọrọ SQL ati sọ pe “eyi jẹ abẹrẹ SQL Ayebaye, yi pada sinu ibeere paramita”; Pese atunṣe ayẹwo. Olùgbéejáde fìdí rẹ̀ múlẹ̀ pé a kò tíì sọ àbáwọlé náà di mímọ́ níbòmíràn, ṣàrídájú pé ó jẹ́ ailagbara gidi, ó ṣe ìbéèrè tí a dábàá, ó sì kọ ìdánwò kan. AI ṣe afihan ailagbara naa; ijerisi ati atunse wa lati awọn Olùgbéejáde.

Case 2 - Eke rere ti o wa titi asiri. AI wo ọrọ igbaniwọle = laini “test1234” ninu faili kan o sọ “lominu ni: ọrọ igbaniwọle ti o ni koodu”. Olùgbéejáde ṣayẹwo ọrọ-ọrọ: eyi jẹ faili idanwo ẹyọkan, data idanwo idin, ko ṣe idasilẹ sinu iṣelọpọ ati kii ṣe gbigbe si eto gidi kan. Wiwa naa jẹ idaniloju eke. Olùgbéejáde ṣe akọsilẹ eyi ṣugbọn ko ṣe iṣe nitori kii ṣe aṣiri gidi kan. Ẹkọ: Ami “aṣiri lile” AI gbọdọ jẹ imukuro nipasẹ ọrọ-ọrọ; Kii ṣe gbogbo okun jẹ asiri.

Ọran 3 - Atunṣe ailagbara tuntun. AI ṣe iṣeduro atunṣe fun XSS kan (akosile aaye-agbelebu) ailagbara; ṣugbọn koodu ti o ni imọran n ṣalaye titẹ sii ni aaye ti ko tọ ati pe o fo fifi koodu jade ni agbegbe miiran; Bi abajade, aafo naa ko ni pipade patapata. Onimọran aabo ṣe atunyẹwo atunṣe, ṣe akiyesi ifaminsi ti o padanu, o si ṣe atunṣe ni ipele ti o pe. Ẹkọ: Patch ti AI ṣeduro ko ni aabo laifọwọyi; Gbogbo atunṣe jẹ atunyẹwo ati idanwo.

Ailagbara kiakia / Alagbara kiakia

Ibere ​​ailagbara:

Ṣe loophole kan wa ninu koodu yii, ṣe atunṣe: [koodu]

Itọkasi yii ko funni ni ọrọ-ọrọ (ede, ilana, orisun titẹ sii), ko beere fun idalare, ko ṣe ibeere rere eke, ati pe o ṣii lati gba afọju atunse ti AI ṣe. Awọn ami idapọpọ AI ti ailagbara gidi mejeeji ati ọkan ti ko si.

Ibere ​​​​ti o lagbara:

Ipa rẹ: oluranlọwọ ti o jẹ OJU KEJI si olupilẹṣẹ ni atunyẹwo koodu aabo. Ṣiṣe ipinnu; ro atunse taara loo. Koodu: [pato ede/framework].Atokun: iṣẹ yii [orisun igbewọle: f.eks. gba [ibeere HTTP ita], kọ si [ibi-ajadejade]. Iṣẹ-ṣiṣe rẹ: (1) ṣe afihan awọn ailagbara pẹlu kilasi OWASP, fun nọmba laini + idi ti o lewu + bi o ṣe le lo nilokulo + ẹri fun ọkọọkan, (2) kọ o kere ju 1 oju iṣẹlẹ rere eke fun wiwa kọọkan (fun apẹẹrẹ ti titẹ sii ba di mimọ ni ipele miiran), (3) daba atunṣe ṣugbọn pẹlu ami “[awotẹlẹ + kọ idanwo]”; Tun ṣe ayẹwo boya atunṣe n ṣafihan awọn ailagbara / awọn idun tuntun. Ṣafikun ailagbara iro kan.[koodu]

Itọkasi ti o lagbara yoo funni ni ọrọ-ọrọ, beere fun kilasi OWASP ati ẹri, awọn ibeere ti o daju eke ati awọn eewu ti atunṣe, fi agbara mu atunyẹwo eniyan.

Awọn awoṣe kiakia idakọ

AWỌWỌRỌ AWỌWỌWỌWỌWỌWỌWỌWỌWỌWỌRỌ AWỌWỌWỌRỌ AWỌWỌWỌRỌ AWỌWỌRỌ AWỌWỌRỌ AWỌWỌRỌ AWỌWỌRỌ AWỌWỌRỌ AWỌWỌRỌ VULNERABILITY SCAN Ayẹwo [ede/framework] koodu fun OWASP Top 10. Fun wiwa kọọkan ti o ṣeeṣe: nọmba laini, kilasi ailagbara, idi ti o fi lewu, ilokulo apẹẹrẹ, agbara ẹri (dajudaju/o ṣeeṣe/ailagbara). Ọrọ: titẹ sii [orisun], àbájade [afojusun]. Nfi awọn awari ti a ṣẹda; Ti o ko ba da ọ loju, tẹ "[gbọdọ jẹridii]". Koodu: [lẹẹ mọ]

Apẹrẹ Imukuro Iro rere Fun wiwa koodu atẹle, ṣe atokọ awọn oju iṣẹlẹ ninu eyiti KO jẹ ailagbara gidi kan: ṣe titẹ sii ti wa ni idasilẹ ni ipele miiran, jẹ ọna yii ni iraye si, jẹ iye yii jẹ idanwo / apẹẹrẹ, ni aabo ilana laifọwọyi. Kọ bi o ṣe le jẹrisi fun ọkọọkan. wiwa: [lẹẹmọ]

FIX Igbelewọn TEMPLATERecommend a fix fun awọn wọnyi palara; lẹhinna ṣofintoto atunṣe ti ara rẹ: (1) ṣe o pa ailagbara naa gaan, (2) ṣe afihan ailagbara / kokoro tuntun, (3) idanwo wo ni MO yẹ ki o kọ (ọran rere ati odi), (4) ipa iṣẹ / ipa iṣẹ. Emi yoo ṣe ayẹwo ati idanwo atunṣe naa. Ailagbara + koodu: [lẹẹmọ]

ÀṢẸ́ ÀṢẸ́ ÌKỌ́Ọ̀ ÀWỌ́ SÍṢẸ́ fún kíláàsì aárùn [f.eks. Abẹrẹ SQL] ni afiwe ṣe afihan ilana titẹ ailewu ati awọn ilana aṣiṣe ti o wọpọ ni ede/ilana yii. Ofin gbogbogbo + fun apẹẹrẹ koodu; ṣugbọn Mo fẹ ki o beere ọrọ-ọrọ ṣaaju ṣiṣe ni koodu mi. Ede/ilana: [kọ]

Awọn aṣiṣe ti o wọpọ

  • Atunwo lai o tọ. Laisi ede, ilana, ati igbewọle / o wu ọrọ, AI ṣe idamu mejeeji awọn awari gidi ati asan; Rii daju lati funni ni ọrọ-ọrọ.
  • Asise gbogbo ami fun gidi ailera. AI ṣe agbejade awọn idaniloju eke (data idanwo, titẹ sii ti mọtoto ni ipele miiran); Sift kọọkan wiwa pẹlu àrà.
  • Ni afọju lilo atunṣe AI. Patch ti a ṣe iṣeduro le ṣafihan awọn ailagbara/awọn idun tuntun; atunwo ki o si kọ igbeyewo.
  • Gbẹkẹle odi eke. Paapaa ti AI ba sọ pe “ko si awọn ailagbara”, ṣayẹwo awọn ọna pataki funrararẹ; Ṣiṣayẹwo aimi ko ṣe awari gbogbo ailagbara.
  • Fifun koodu / asiri si ọpa ita. Koodu ikọkọ ati awọn aṣiri gidi (bọtini, ọrọ igbaniwọle) jẹ ohun-ini ọgbọn ati ailagbara; ṣe ailorukọ tabi lo ajọ, awọn irinṣẹ ti o ya sọtọ.
Imọran: Nigbati o ba ni koodu atunyẹwo AI, àlẹmọ ti o munadoko julọ ni lati beere fun “agbara ẹri” (dajudaju / o ṣeeṣe / alailagbara) fun wiwa kọọkan. Pupọ awọn awari ti a samisi “ailagbara” jẹ awọn idaniloju eke; o pin agbara rẹ si awọn “daju”.
Išọra: Atunṣe aabo ti AI ti daba ko yẹ ki o wọ inu ile itaja laisi idanwo. “Atunṣe” ti ko tọ le mejeeji lọ kuro ni ailagbara ni ṣiṣi ati ja si aṣiṣe iṣẹ ni iṣelọpọ; Gbogbo alemo lọ nipasẹ awọn awotẹlẹ ati igbeyewo ẹnu-bode.

Ni soki

Atunyẹwo koodu aabo jẹ ọna ti o rọrun julọ lati mu awọn ailagbara ṣaaju ki wọn lọ sinu iṣelọpọ, ati pe niwọn igba ti koodu jẹ ede kan, AI di oju keji ti o lagbara nibi: awọn asia awọn ilana ti o lewu, ṣalaye eewu, ṣe imọran awọn atunṣe. Ṣugbọn AI ko rii gbogbo agbegbe iṣẹ, ṣe agbejade awọn rere eke ati awọn odi eke, ati alemo ti o ṣeduro le ṣafihan awọn ailagbara tuntun. Nitorinaa atunyẹwo naa ni awọn igbesẹ mẹfa (ọrọ, ibojuwo, idalare, imukuro rere eke, ijẹrisi atunṣe, ifọwọsi eniyan) ati ipinnu wa pẹlu olupilẹṣẹ ati alamọja aabo. Awọn ipilẹ mẹta: ko si wiwa ti a tumọ laisi ọrọ-ọrọ, gbogbo ami ti yọkuro pẹlu ọrọ-ọrọ, ko si atunṣe ti o lọ sinu ibi ipamọ ti ko ni idanwo. Ati pe koodu / aṣiri ko ni fi fun ohun elo ita laisi ailorukọ.

Ohun elo iṣẹ-ṣiṣe

Mu snippet koodu apẹẹrẹ kan (boya yiyọ awọn ẹya ifura lati koodu tirẹ tabi koodu apẹẹrẹ pẹlu awọn ailagbara). Jẹ ki AI ṣe ayẹwo rẹ pẹlu awoṣe “Ṣawari Ipalara”; Waye awoṣe “Imukuro Rere Irọ” fun wiwa kọọkan ati imukuro awọn ti gidi. Mu atunṣe ti wiwa to ṣe pataki julọ pẹlu awoṣe “Iyẹwo Atunse”, ṣe atunyẹwo funrararẹ ki o kọ ọkan rere + ọran idanwo odi kan. Ṣe akiyesi iye awọn awari ti jẹ awọn idaniloju eke.

akojọ ayẹwo

  • [] Mo ti fun ni ede, ilana ati igbewọle/jade ọrọ ṣaaju ṣiṣe atunwo koodu naa.
  • [] Mo beere fun nọmba laini, kilasi ailagbara, ipa ọna ati ẹri fun wiwa kọọkan.
  • [] Mo ṣe ayẹwo wiwa kọọkan fun awọn idaniloju eke pẹlu ọrọ-ọrọ.
  • [] Emi ko fi afọju lo atunṣe AI; Mo ṣe ayẹwo ati kọ idanwo kan.
  • [] Pelu abajade “Ko si awọn ailagbara”, Mo ṣe ayẹwo awọn ipa ọna to ṣe pataki funrarami.
  • [] Mo sọ koodu naa / awọn aṣiri di aimọ tabi lilo ohun elo ti o ya sọtọ ti ile-iṣẹ.
  • [] Mo ti kọja awari ati ṣatunṣe nipasẹ olupilẹṣẹ + ifọwọsi aabo.