Vahid 11 / 12

Kod Yoxlanışı, Zəifliklər və AI Çıxışının Riskləri

Qazanclar:

  • AI çıxışını üç səviyyədə yoxlamaq imkanı: dəqiqlik, təhlükəsizlik və mənbə/lisenziya
  • Güvənli qəliblər və alətlərlə inyeksiya, halüsinasiya paketləri və basdırılmış sirlər kimi riskləri örtmək bacarığı
  • Təhlükəsizliyin kritik kodunu səlahiyyətli bir mühəndisin təsdiqinə təqdim etmək və məsuliyyətin ötürülməzliyini başa düşmək bacarığı

AI kodu yaratmaq asandır; Ona güvənmək bahadır. Bu bölmənin yeganə məqsədi əvvəlki bütün bölmələrdə təkrar etdiyimiz “yoxlamaq” prinsipini sistemli mühəndislik intizamına çevirməkdir. Çünki AI tərəfindən hazırlanan kod, ilk baxışdan düzgün görünsə də, üç ayrı təhlükə daşıyır: işləməyən/yanlış (hallüsinasiya), etibarsızlıq (zəiflik) və hüquqi/lisenziya riskləri daşıyır. Bu üçünü bilmək və hər biri üçün bir qapı qurmaq sizi peşəkar edir.

Burada biz “təsdiqləməni” üç səviyyədə nəzərdən keçiririk: düzgünlük (kod həqiqətən işi görürmü?), təhlükəsizlik (zərərli girişə tab gətirirmi?) və mənşə/lisenziya (bu kodu istifadə etmək hüququm varmı?). Hər təbəqənin özünəməxsus nəzarət vasitələri var və onların heç biri “Süni intellekt belə demişdi” ilə yan keçə bilməz.

Riskin üç qatı

1. Dəqiqlik riski (hallüsinasiya). Model mövcud olmayan bir funksiyaya zəng edə, API-dən sui-istifadə edə, səssizcə kənar qutunu keçə bilər. Kod "məqbul" görünür, lakin səhvdir. Antidot: tərtib, sınaq, statik analiz və vizual yoxlama.

2. Təhlükəsizlik riski. Süni intellekt təlim məlumatlarında etibarlı olmayan nümunələri təkrarlaya bilər: SQL inyeksiyasına həssas olan sorğu, autentifikasiya edilməmiş istifadəçi girişi, zəif şifrələmə, etibarlı olmayan seriyadan çıxarma, açıq yönləndirmə. Kod işləyir, lakin hücuma qarşı həssasdır. Antidot: təhlükəsizlik yönümlü baxış, avtomatlaşdırılmış skanerlər (SAST) və məlum təhlükəsiz nümunələri tətbiq etmək.

3. Mənbə/lisenziya riski. Süni intellekt müəllif hüququ ilə qorunan və ya məhdudlaşdırıcı lisenziyalı koda yaxından bənzəyən məhsul istehsal edə bilər və ya qeyri-adekvat lisenziyalı asılılığı təklif edə bilər. Antidot: asılılıq və lisenziya yoxlanışı, orijinallığın yoxlanılması, korporativ siyasət.

Diqqət: Bu üç riskdən ən məkrlisi təhlükəsizlikdir; çünki kod sınaqdan keçə bilər, istehsalda rəvan işləyə bilər və zəiflik yalnız təcavüzkar onu tapdıqda aşkarlanır. "İşləmək" "təhlükəsiz" ilə eyni deyil.

Addım-addım: Layered Authentication Gate

  1. Anlayaraq oxuyun. Kodu qəbul etməzdən əvvəl onu həqiqətən dərk edin; Başa düşmədiyiniz kodu birləşdirməyin. "Niyə işlədiyini" izah edə bilmirsinizsə, hələ təsdiqlənməyib.
  2. Mövcud olduğunu yoxlayın. İstifadə olunan hər bir funksiyanın, API-nin və paketin həqiqətən mövcud olduğunu və düzgün istifadə edildiyini (hallüsinasiya qapısı) təsdiqləyin.
  3. Avtomatlaşdırılmış alətləri işə salın. Kompilyator, linter (üslub/səhv skaneri), tip yoxlayıcısı, vahid testləri və mümkünsə SAST (Statik Tətbiq Təhlükəsizlik Testi — zəifliklər üçün mənbə kodunu skan edən alət).
  4. Buna təhlükəsizlik baxımından baxın. Daxiletmə təsdiqlənibmi? Sorğu parametrlidir? Sirr dəfn olunub? Avtorizasiya nəzarəti varmı?
  5. Mənbə və lisenziyanı yoxlayın. Yeni asılılıqlar lisenziyalıdırmı? Çıxış məlum kod bazasına həddən artıq bənzəyirmi?
  6. Əgər o, təhlükəsizlik baxımından kritikdirsə, ekspert təsdiqini tələb edin. Autentifikasiya, ödəniş, kriptoqrafiya, girişə nəzarət kimi sahələrdə səlahiyyətli mühəndis tərəfindən müstəqil yoxlama məcburidir.

Üç mini qutu

Case 1 - SQL inyeksiyası yoxlama qapısında tutuldu. İstifadəçi daxiletməsini axtarışın son nöqtəsi üçün birbaşa SQL sorğusuna birləşdirən AI tərəfindən yaradılan kod ("... WHERE name = '" + q + "'"). Kod işləyirdi və sınaqdan keçdi. Təhlükəsizlik yönümlü yoxlama və SAST taraması bunu tutdu; Parametrləşdirilmiş sorğuya çevrildi (hazırlanmış bəyanat). Əgər tutulmasaydı, bu, klassik məlumat sızması zəifliyi olardı.

2-ci hal - Halüsinasiya paketi. AI bir tapşırıq üçün mövcud olmayan npm paketini (sürətli-təhlükəsiz-parse) təklif etdi. Tərtibatçı onu quraşdırmaq istəyəndə paket tapılmadı. Daha da pisi: bəzi hallarda təcavüzkarlar belə “xəyal” paket adlarını real, zərərli paketlərlə doldura bilər (asılılıq çaşqınlığı). Dərs: hər tövsiyə olunan paketi rəsmi reyestr və yükləmə/xidmət tarixçəsi ilə yoxlayın.

3-cü hal – Lisenziya uyğunsuzluğu. Süni intellekt tərəfindən təklif edilən yaxşı köməkçi kitabxana, qurumun məhsul lisenziyası ilə uyğun gəlməyən güclü copyleft lisenziyasına malik idi. Asılılıq lisenziyasının skanı bu barədə məlumat verdi; Komanda lisenziyanı uyğun alternativlə əvəz etdi. Doğrulama olmadan məhsulun paylanmasında hüquqi yük yaranacaq.

Dörd Kopyalana bilən Şablon

Qəbuldan əvvəl özünü yoxlama:

Aşağıdakı AI tərəfindən yaradılan kodu qəbul etməzdən əvvəl yoxlayın: 1) İstifadə etdiyi hər bir funksiya/API/paket həqiqətən mövcuddurmu? Şübhəliləri qeyd edin.2) Təsdiq edilməmiş daxiletmə, SQL/əmr birləşməsi, gizli gizli, zəif kriptovalyuta varmı?3) Ünvanlanmamış səhvlər/kənar hallar hansılardır?Hər bir tapıntını "müəyyən/ehtimal" kimi etiketləyin və düzəlişlər təklif edin.{{kod}}

Təhlükəsizlik yönümlü baxış:

Bu kodu təhlükəsizlik gözü ilə yoxlayın. Ümumi OWASP üslub zəifliklərini axtarın: inyeksiya, pozulmuş autentifikasiya/avtorizasiya, həssas məlumatların açıqlanması, etibarsız seriyasızlaşdırma, təsdiqlənməmiş yönləndirmə. Hər bir tapıntı üçün: risk, istismar ssenarisi, remediasiya. Bu ilkin yoxlamadır; kritik tapıntıları insan təhlükəsizliyi araşdırmasına istinad edin.{{code}}

Asılılıq və lisenziya yoxlanışı:

Bu kodla əlavə edilmiş/təklif edilən asılılıqları sadalayın. Hər biri üçün: paket həqiqətən mövcuddurmu, saxlanılırmı, onun tipik lisenziyası nədən ibarət olmalıdır (YOXLANILMALIDIR) və o, layihə üçün həqiqətən lazımdırmı və ya mövcud alətlə edilə bilərmi?{{kod və ya asılılıq siyahısı}}

Təhlükəsiz qəliblərin quraşdırılması (istehsalda):

{{task}} üçün kod yazın. MƏCBURİ təhlükəsizlik qaydaları:- Bütün xarici daxiletmələri yoxlayın/sanitarlaşdırın.- Verilənlər bazasına girişdə yalnız parametrləşdirilmiş sorğudan istifadə edin.- Koda sirləri daxil etməyin; mühit dəyişənini/gizli menecerini qəbul et - Səhvləri udma; Mənalı şəkildə düşünün. Kodun bu qaydalara necə uyğun gəldiyini 3 maddədə izah edin.

Zəif məlumat / Güclü göstəriş

Zəif: "İstifadəçi adı ilə axtarış edən sorğu yazın." (İnyeksiyaya qarşı həssas kod yarana bilər.)
Güclü: "İstifadəçi adı ilə axtarış edən funksiya yazın. Heç vaxt istifadəçi daxiletməsini sorğuya sətir kimi birləşdirməyin; parametrləşdirilmiş sorğudan (hazırlanmış bəyanatdan) istifadə edin. Uzunluq və xarakter üçün daxiletməni təsdiqləyin. Kodun niyə inyeksiyaya qapalı olduğunu 2 cümlə ilə izah edin."

Güclü versiya əvvəldən təhlükəsiz nümunəni tətbiq edir; Beləliklə, zəifliyi sonradan tutmaq əvəzinə, ümumiyyətlə baş verməməsini təmin edir. Bununla belə, yaradılan kodu yoxlama qapılarından keçmək vacibdir.

Doğrulama təbəqəsi

Alət/metod

"AI dedi" kifayətdirmi?

dəqiqlik

Kompilyasiya, sınaq, vizual yoxlama

yox

API/paket reallığı

Rəsmi sənəd / qeyd nəzarəti

yox

Təhlükəsizlik

SAST, təhlükəsizlik baxışı

yox

Lisenziya/mənbə

Asılılıq və lisenziya yoxlanışı

yox

Təhlükəsizlik-kritik məntiq

Ekspert mühəndisin təsdiqi

Qətiyyən yox

Məsuliyyət ötürülə bilməz

Süni intellekt aləti tərəfindən yaradılan koddan yaranan səhvlər, zəifliklər və ya pozuntulara görə məsuliyyət alət təminatçısına deyil, həmin kodu toplayan və paylayan komandaya məxsusdur. Bu, həm peşəkar, həm də hüquqi faktdır: imzalayırsan. Beləliklə, "AI onu istehsal etdi" bəhanə deyil, əlavə ehtiyatlılığa bəraət qazandırır. Xüsusilə təhlükəsizlik baxımından kritik sistemlərdə, AI çıxışı heç bir şəraitdə ixtisaslı mühəndis tərəfindən nəzərdən keçirilməsini və təsdiqlənməsini əvəz etmir; Ən çox, AI həmin mühəndisi sürətləndirən bir plan təqdim edir.

İpucu: Komandanızda “AI tərəfindən yaradılan kod üçün doğrulama qapısı” adlandırdığınız qısa yoxlama siyahısı yaradın (qurma + sınaq + təhlükəsizlik skanı + vizual yoxlama). Bu qapı vərdiş halına gələndən sonra sürət itkisi minimal olur və riskin azalması maksimum olur.

Ümumi səhvlər

  • "İşləri" "təhlükəsiz" ilə qarışdırmaq. Testdən keçən kod hücuma məruz qala bilər.
  • Təsdiq etmədən paketdən/API-dən istifadə. Halüsinasiya paketləri həm korlayır, həm də təhlükəsizlik riski yaradır.
  • Avtomatlaşdırılmış alətlərdən yan keçmək. Linter, type checker və SAST insanların əldən verdiyini ucuz başa düşür.
  • Lisenziyaya məhəl qoymamaq. Yanlış lisenziyalı asılılıq paylamada hüquqi yük yaradır.
  • Məsuliyyəti avtomobilin üzərinə qoymaq. Komanda istehsalda kod üçün cavabdehdir; "AI bunu etdi" bəhanə deyil.

Xülasə

AI çıxışını qəbul etmək üç yoxlama səviyyəsini tələb edir: düzgünlük (kompilyasiya, sınaq, vizual yoxlama), təhlükəsizlik (SAST və təhlükəsizlik yönümlü baxış) və mənbə/lisenziya (asılılığın yoxlanılması). İstifadə olunan hər bir paket və API-nin həqiqətən mövcud olduğunu təsdiqləyin, təhlükəsiz nümunələri əvvəldən tətbiq edin və kritik təhlükəsizlik kodunu ixtisaslı mühəndis tərəfindən təsdiq üçün təqdim edin. "İşlər" təhlükəsiz demək deyil və "İstehsal olunan AI" məsuliyyəti aradan qaldırmır. Doğrulama qapısı sürətin deyil, peşəkarlığın qiymətidir.

Tətbiq tapşırığı

Qəsdən süni intellektə həssas bir tapşırıq verin (məsələn, “istifadəçi girişi ilə verilənlər bazasında axtarış aparan funksiya”) bu dəfə təhlükəsiz model tətbiq etmədən. Daxil olan kodu “qəbuldan əvvəl özünü yoxlama” və “təhlükəsizliyə yönəlmiş baxış” şablonları vasitəsilə ötürün: hər hansı bir inyeksiya, basdırılmış sirr, hallüsinasiya edilmiş paket və ya təsdiqlənməmiş daxiletmə varmı? Sonra eyni tapşırığı “təhlükəsiz nümunə tətbiqi” şablonu ilə yenidən soruşun və iki çıxışı müqayisə edin. Mümkünsə, linter/SAST alətini işə salın və tapıntıları AI-nin özünütənzimləməsi ilə müqayisə edin.

yoxlama siyahısı

  • [ ] Mən AI çıxışını üç səviyyədə yoxlayıram: dəqiqlik, təhlükəsizlik və lisenziya.
  • [ ] Təsdiq edirəm ki, istifadə olunan hər bir funksiya, API və paket həqiqətən mövcuddur.
  • [ ] Mən kompilyasiya, test, linter və mümkünsə SAST alətlərini işlədirəm.
  • [ ] Mən əvvəldən təhlükəsiz nümunələri (parametrləşdirilmiş sorğu, girişin doğrulanması, gizli idarəetmə) tətbiq edirəm.
  • [ ] Mən lisenziyalaşdırmanı və yeni asılılıqların tələbini yoxlayıram.
  • [ ] Təhlükəsizliyə dair kritik kodu səlahiyyətli mühəndisin təsdiqi üçün təqdim edirəm və cavabdeh olduğumu başa düşürəm.