Qazanclar:
- Süni intellektdən ikinci göz kimi istifadə etmək və kontekst verməklə kodda OWASP sinif zəifliklərini (injection, hard secret, access control) qeyd etmək bacarığı
- Süni intellektin yaratdığı yanlış pozitivləri kontekstlə aradan qaldırmaq və hər bir tapıntını təsdiq etmədən real zəiflik kimi qəbul etməyin qarşısını almaq bacarığı
- Süni intellektin təklif etdiyi düzəlişin yeni zəifliklər/baqlar təqdim edə biləcəyini və hər bir yamağı nəzərdən keçirmə və sınaq qapısından keçirə biləcəyini başa düşmək bacarığı
Proqram təminatı daxilindəki boşluqlar ən bahalı zəifliklər sırasındadır, çünki onlar məhsula əvvəldən daxil edilir və milyonlarla istifadəçiyə paylanır. Təhlükəsiz kodun nəzərdən keçirilməsi mənbə kodunun sətir-sətir oxunması və istehsala başlamazdan əvvəl zəifliklərin - SQL inyeksiyası, autentifikasiya zəifliyi, sərt kodlu parol, səhv avtorizasiyanın tutulması prosesidir. Əl ilə edildikdə yavaş və yorucu olur; Böyük kod bazasında zəifliyi qaçırmaq asandır.
AI kodun nəzərdən keçirilməsində iki səbəbə görə güclüdür: kod həm də bir dildir və AI nümunənin tanınmasında yaxşıdır. Süni intellekt bir kod parçasındakı təhlükəli nümunələri tez bir zamanda qeyd edə bilər (istifadəçi girişini birbaşa sorğuya yerləşdirmək, şifrələnməmiş məlumat saxlama, daxiletmənin yoxlanılması), hər birinin niyə riskli olduğunu izah edə və düzəliş təklif edə bilər. Lakin AI kodun bütün əməliyyat kontekstini görmür (giriş başqa təbəqədə silinə bilər), o, mövcud olmayan zəifliyi icad edə bilər (yalan pozitiv) və ya real zəifliyi əldən verə bilər (yalan mənfi) və ən əsası, onun təklif etdiyi "düzəliş" yeni zəiflik və ya səhv təqdim edə bilər. AI kodun nəzərdən keçirilməsində ikinci göz və göstəricidir; Tərtibatçı və təhlükəsizlik mütəxəssisi tapıntının real zəiflik olub-olmadığına və düzəlişin düzgün və təhlükəsiz olub olmadığına qərar verir.
Kodun nəzərdən keçirilməsi addımları
- Sahə və kontekst verin. Hansı dildə, hansı çərçivədə, bu kod girişi harada qəbul edir, harada çıxış verir, hansı təbəqədə işləyir? Kontekstsiz kodun nəzərdən keçirilməsi yanlış müsbət nəticələr verir.
- Təhlükəli nümunələri axtarın. Məlum AI zəiflik siniflərini axtarın (məsələn, OWASP Top 10): inyeksiya, autentifikasiya, həssas məlumatların açıqlanması, girişə nəzarət.
- Hər tapıntını əsaslandırın. Hər bir bayraq üçün: hansı xətt, hansı zəiflik sinfi, ondan necə istifadə etmək olar, sübut nədir. Əsassız tapıntı ciddi qəbul edilmir.
- Yanlış müsbəti aradan qaldırın. Giriş həqiqətən təmizlənirmi, bu yol həqiqətən əlçatandırmı - kontekstlə yoxlayın.
- Düzəltməni yoxlayın. Süni intellekt tərəfindən tövsiyə edilən yamağın həqiqətən zəifliyi bağladığını, yeni zəifliklər/baqlar təqdim etmədiyini və sınaqdan keçdiyini təsdiq edin.
- İnsan razılığı. Developer + təhlükəsizlik eksperti tapıntı və düzəlişləri nəzərdən keçirir; Beləliklə, kod anbarına daxil olur.
Şərtlər: SAST (Static Application Security Testing — mənbə kodunu işə salmadan təhlil edən statik təhlükəsizlik testi). DAST (Dinamik — işləyən tətbiqi xaricdən yoxlayan dinamik sınaq). OWASP Top 10 ən çox yayılmış veb proqram zəifliklərinin standart siyahısıdır. Injection istifadəçi daxiletməsinin əmr/sorğu kimi şərh edilməsi nəticəsində yaranan zəiflikdir (məsələn, SQL inyeksiyası). Parametrləşdirilmiş sorğu, girişi koddan ayıraraq inyeksiyanın qarşısını alan düzgün üsuldur.
Ümumi zəiflik siniflərinin cədvəli
Zəiflik sinfi
Simptom (kodda)
düzgün həll
AI-nin tələsi
SQL inyeksiyası
Daxiletmənin sorğuya qoşulması
Parametrləşdirilmiş sorğu
Sanitasiyaya məhəl qoymamaq olar
sərt kodlu sirr
Şifrə/kodda açar
Gizli seyf (qeyf), env
Yanlış müsbət (nümunə/test)
Zəif autentifikasiya
Çatışmayan/yanlış nəzarət
Güclü, mərkəzləşdirilmiş nəzarət
konteksti qaçırır
Səhv giriş nəzarəti
İcazə yoxlanışı yoxdur
Server tərəfinin icazəsi
Mürəkkəb axını başa düşmür
Həssas məlumatların açıqlanması
Parolsuz saxlama/giriş
Şifrələmə, maskalama
Tənqidi bilmir
Təhlükəsiz seriallaşdırma
Etibarsız məlumatları sıradan çıxarın
Təhlükəsiz təhlil
Nadir nümunəni qaçırır
üç mini qutu
Hal 1 - Həqiqi inyeksiyanın tutulması. Tərtibatçının süni intellekt verilənlərə giriş funksiyasını yoxlayır. Süni intellekt istifadəçidən gələn userId dəyərinin birbaşa SQL mətninə birləşdirildiyi xətti qeyd edir və "bu, klassik SQL inyeksiyasıdır, onu parametrləşdirilmiş sorğuya çevir" deyir; Nümunə korreksiyasını təmin edir. Tərtibatçı daxiletmənin başqa yerdə dezinfeksiya edilmədiyini təsdiqləyir, onun real zəiflik olduğunu yoxlayır, təklif olunan parametrləşdirilmiş sorğunu həyata keçirir və test yazır. AI zəifliyi vurğuladı; yoxlama və korreksiya testi tərtibatçıdan gəldi.
2-ci hal - Yanlış müsbət sabit sirr. Süni intellekt faylda parol = "test1234" sətrini görür və "kritik: sərt kodlu parol" deyir. Tərtibatçı konteksti yoxlayır: bu, vahid test faylıdır, istehsala buraxılmayan və real sistemə ötürülməyən dummy test məlumatlarıdır. Tapıntı yanlış müsbətdir. Tərtibatçı bunu sənədləşdirir, lakin real sirr olmadığı üçün tədbir görmür. Dərs: AI-nin "sərt sirr" işarəsi kontekstlə aradan qaldırılmalıdır; Hər sim bir sirr deyil.
3-cü vəziyyət - Yeni zəifliyin düzəldilməsi. AI XSS (saytlar arası skript) zəifliyi üçün düzəliş təklif edir; lakin onun təklif etdiyi kod girişi yanlış yerdə təmizləyir və başqa sahədə çıxış kodlamasını atlayır; Nəticədə boşluq tamamilə bağlanmır. Təhlükəsizlik eksperti düzəlişi nəzərdən keçirir, çatışmayan kodlaşdırmaya diqqət yetirir və düzgün təbəqədə düzəldir. Dərs: AI-nin tövsiyə etdiyi yamaq avtomatik olaraq təhlükəsiz deyil; Hər bir düzəliş nəzərdən keçirilir və sınaqdan keçirilir.
Zəif məlumat / Güclü göstəriş
Zəif çağırış:
Bu kodda boşluq varmı, onu düzəldin: [kod]
Bu göstəriş heç bir kontekst (dil, çərçivə, giriş mənbəyi) vermir, əsaslandırma tələb etmir, yalançı müsbəti şübhə altına almır və AI tərəfindən hazırlanmış korreksiyanı kor-koranə qəbul etməyə açıqdır. Süni intellekt həm real zəifliyin, həm də mövcud olmayanın əlamətlərini qarışdırdı.
Güclü göstəriş:
Sizin rolunuz: təhlükəsiz kodun nəzərdən keçirilməsində tərtibatçının İKİNCİ GÖZÜ olan köməkçi. Qərar qəbulu; bilavasitə tətbiq olunan düzəlişi nəzərdən keçirin. Kod: [dil/çərçivəni göstərin].Kontekst: bu funksiya [giriş mənbəyi: məs. [xarici HTTP sorğusu] qəbul edir, [çıxış təyinatına] yazır. Tapşırığınız: (1) OWASP sinfi ilə mümkün zəiflikləri qeyd edin, sətir nömrəsini verin + niyə risklidir + necə istifadə edilməlidir + hər biri üçün sübut, (2) hər tapıntı üçün ən azı 1 yanlış müsbət ssenari yazın (məsələn, giriş başqa təbəqədə təmizlənibsə), (3) "[nəzərdən keçirin + test yazın]" işarəsi ilə düzəliş təklif edin; Həmçinin düzəlişin yeni zəifliklər/baqlar təqdim edib etmədiyini qiymətləndirin. Saxta zəifliyin əlavə edilməsi.[kod]
Güclü göstəriş kontekst verir, OWASP sinfi və sübut tələb edir, yalan pozitiv və düzəliş riskləri ilə bağlı suallar verir, insanları nəzərdən keçirməyə məcbur edir.
Kopyalana bilən sorğu şablonları
GÖZƏTLİLİK SCAN ŞABLANI OWASP Top 10 üçün [dil/çərçivə] kodunu araşdırın. Hər bir mümkün tapıntı üçün: sətir nömrəsi, zəiflik sinfi, bunun niyə riskli olması, nümunə istismarı, sübutun gücü (müəyyən/ehtimal/zəif). Kontekst: giriş [mənbə], çıxış [hədəf]. Uydurma tapıntıların əlavə edilməsi; Əmin deyilsinizsə, "[təsdiq edilməlidir]" yazın. Kod: [yapışdırın]
YANLIŞ MÜSBƏT LƏMƏ EDİLMƏ NÜMUNÜ Aşağıdakı kodun tapılması üçün real zəifliyin OLMAYAN ssenarilərini sadalayın: giriş başqa bir təbəqədə təmizlənə bilərmi, bu yol əlçatandırmı, bu dəyər test/nümunədirmi, çərçivə avtomatik olaraq qorunur. Hər biri üçün necə təsdiq olunacağını yazın. Tapma: [yapışdırın]
QİYMƏTLƏNDİRİLMƏ ŞABLONUNU DÜZƏLƏYİNAşağıdakı zəiflik üçün düzəliş tövsiyə edin; sonra öz düzəlişinizi tənqid edin: (1) həqiqətən zəifliyi bağlayırmı, (2) yeni zəiflik/baq təqdim edirmi, (3) hansı testi yazmalıyam (müsbət və mənfi hal), (4) performans/funksional təsir. Düzəlişi nəzərdən keçirəcəyəm və sınaqdan keçirəcəyəm. Zəiflik + kod: [yapışdırın]
Zəiflik sinfi üçün TƏHLÜKƏSİZ NƏXMİN TƏDRİS ŞABLONU [məs. SQL injection] bu dildə/çərçivədə təhlükəsiz yazma nümunəsini və ümumi səhv nümunələri müqayisəli şəkildə göstərir. Ümumi qayda + kod nümunəsi verin; amma kodumda tətbiq etməzdən əvvəl konteksti soruşmağınızı istəyirəm. Dil/çərçivə: [yazmaq]
Ümumi səhvlər
- Kontekstsiz nəzərdən keçirin. Dil, çərçivə və giriş/çıxış konteksti olmadan AI həm real, həm də saxta tapıntıları qarışdırır; Kontekst verdiyinizə əmin olun.
- Hər işarəni əsl zəiflik kimi qəbul etmək. AI yanlış pozitivlər yaradır (test məlumatları, başqa bir təbəqədə təmizlənmiş giriş); Hər tapıntını kontekstlə süzün.
- AI-nin korreksiyasını kor-koranə tətbiq etmək. Tövsiyə olunan yamaq yeni zəifliklər/baqlar təqdim edə bilər; testləri nəzərdən keçirin və yazın.
- Yalan mənfiyə güvənmək. AI "heç bir zəiflik" desə belə, kritik yolları özünüz araşdırın; Statik skanlama hər zəifliyi aşkar etmir.
- Xarici alətə kodun/sirrin verilməsi. Şəxsi kod və real sirlər (açar, parol) əqli mülkiyyətdir və zəiflikdir; anonimləşdirin və ya korporativ, təcrid olunmuş alətlərdən istifadə edin.
İpucu: AI nəzərdən keçirmə koduna sahib olduqda, ən səmərəli filtr hər bir tapıntı üçün "sübutun gücü" (müəyyən/ehtimal/zəif) istəməkdir. “Zəif” olaraq qeyd olunan tapıntıların əksəriyyəti yanlış müsbətdir; enerjinizi "əmin" olanlara ayırırsınız.
Diqqət: AI-nin təklif etdiyi təhlükəsizlik düzəlişi sınaqdan keçirilmədən anbara daxil olmamalıdır. Yanlış "düzəliş" həm zəifliyi açıq qoya, həm də istehsalda funksional xətaya səbəb ola bilər; Hər bir yamaq baxış və sınaq qapısından keçir.
Xülasə
Təhlükəsiz kodun nəzərdən keçirilməsi zəiflikləri istehsala başlamazdan əvvəl aşkar etməyin ən ucuz yoludur və kod bir dil olduğundan, AI burada güclü ikinci gözə çevrilir: təhlükəli nümunələri qeyd edir, riski izah edir, düzəlişlər təklif edir. Lakin süni intellekt bütün əməliyyat kontekstini görmür, yalan pozitivlər və yalan neqativlər yaradır və onun tövsiyə etdiyi yamaq yeni zəifliklər yarada bilər. Beləliklə, nəzərdən keçirmə altı addımdan ibarətdir (kontekst, yoxlama, əsaslandırma, yanlış müsbət aradan qaldırılması, düzəlişin yoxlanılması, insanların təsdiqi) və qərar tərtibatçı və təhlükəsizlik eksperti tərəfindən verilir. Üç prinsip: heç bir tapıntı kontekstsiz şərh edilmir, hər bir işarə kontekstlə aradan qaldırılır, heç bir düzəliş yoxlanılmamış yaddaşa daxil edilmir. Və kod/sirr heç vaxt anonimləşdirmədən kənar alətə verilmir.
Tətbiq tapşırığı
Nümunə kod parçasını götürün (yaxud öz kodunuzdan həssas hissələri silməklə, ya da zəiflikləri olan nümunə kodu). Süni intellekt onu “Zəifliyin Skanlanması” şablonu ilə yoxlamalıdır; Hər bir tapıntı üçün "Yanlış Müsbət Eliminasiya" şablonunu tətbiq edin və həqiqi olanları aradan qaldırın. "Remediasiya Qiymətləndirməsi" şablonu ilə ən ciddi tapıntının düzəlişini aparın, onu özünüz nəzərdən keçirin və bir müsbət + bir mənfi test işi yazın. Nə qədər tapıntının yanlış müsbət olduğuna diqqət yetirin.
yoxlama siyahısı
- [ ] Mən kodu nəzərdən keçirməzdən əvvəl dil, çərçivə və giriş/çıxış kontekstini verdim.
- [ ] Mən hər bir tapıntı üçün sətir nömrəsi, zəiflik sinfi, istismar yolu və sübut istədim.
- [ ] Mən hər bir tapıntını kontekstlə yanlış pozitivlər üçün yoxladım.
- [ ] Mən AI-nin korreksiyasını kor-koranə tətbiq etməmişəm; Mən nəzərdən keçirdim və test yazdım.
- [ ] "Zəiflik yoxdur" çıxışına baxmayaraq, kritik yolları özüm araşdırdım.
- [ ] Mən kodu/sirləri anonimləşdirdim və ya korporativ təcrid olunmuş alətlərdən istifadə etdim.
- [ ] Tərtibatçı + təhlükəsizlik təsdiqi vasitəsilə kəşf və düzəlişdən keçdim.