Fənn · İnformasiya təhlükəsizliyi
Təhlükəsiz proqramlaşdırmaMövzu planı
Mövzu planı
Fənn üzrə mövzular və hər mövzunun təlim nəticələri.
1. Təhlükəsiz proqramlaşdırmaya giriş, proqram təminatında təhlükələrin təsnifatı
MühazirəMövzu çərçivəsində təhlükəsiz proqramlaşdırmanın əsas anlayışları, məqsədi və proqram təminatının hazırlanmasında rolu öyrənilir. Proqram təminatında təhlükəsizlik zəifliklərinin yaranmasına səbəb olan əsas amillər və proqram kodundan qaynaqlanan təhlükələr nəzərdən keçirilir. Proqram təminatına yönəlmiş təhlükələrin mənşəyinə, təsirinə və istismar xüsusiyyətlərinə görə təsnifatı izah edilir. Həmçinin təhlükəsizlik tələblərinin proqram təminatının hazırlanmasının ilkin mərhələlərindən etibarən nəzərə alınmasının əhəmiyyəti araşdırılır.
2. Kod zəifliklərinin əsas növləri
MühazirəMövzu çərçivəsində proqram kodunda yaranan əsas təhlükəsizlik zəiflikləri və onların yaranma səbəbləri öyrənilir. Buffer overflow, integer overflow, use-after-free və digər geniş yayılmış yaddaş və verilənlərin emalı ilə bağlı zəifliklərin mahiyyəti nəzərdən keçirilir. Bu zəifliklərin proqramın işləmə məntiqinə, yaddaşın idarə olunmasına və sistem təhlükəsizliyinə mümkün təsirləri izah edilir. Həmçinin kod səviyyəsində zəifliklərin müəyyən edilməsi və onların qarşısının alınması üçün təhlükəsiz proqramlaşdırma prinsipləri araşdırılır.
3. CERT təhlükəsizlik standartlarına giriş. SEI CERT Coding Standards (C/C++)
MühazirəMövzu çərçivəsində CERT təhlükəsiz kodlaşdırma standartlarının məqsədi, strukturu və proqram təminatının təhlükəsiz hazırlanmasındakı rolu öyrənilir. SEI CERT Coding Standards çərçivəsində C və C++ proqramlaşdırma dilləri üçün müəyyən edilmiş əsas təhlükəsiz kodlaşdırma qaydaları və tövsiyələr nəzərdən keçirilir. Yaddaşın idarə olunması, verilənlərin tipləri, giriş məlumatlarının emalı, göstəricilər, tam ədədlər və digər kodlaşdırma sahələrində təhlükəsizlik tələbləri izah edilir. Həmçinin CERT qaydalarının kod zəifliklərinin qarşısının alınması və təhlükəsiz proqramlaşdırma təcrübələrinin formalaşdırılmasında tətbiqi araşdırılır.
4. Təhlükəli funksiyalar və onların alternativləri. C/C++ proqramlaşdırmada yaxşı təcrübələr
MühazirəMövzu çərçivəsində C və C++ proqramlaşdırma dillərində təhlükəsizlik zəifliklərinin yaranmasına səbəb ola bilən təhlükəli funksiyalar və onların təhlükəsiz alternativləri öyrənilir. Yaddaşın idarə olunması, sətirlərin emalı, giriş məlumatlarının qəbulu və məlumatların köçürülməsi zamanı risk yaradan funksiyaların istifadə xüsusiyyətləri nəzərdən keçirilir. Bu funksiyaların əvəzinə istifadə edilə bilən daha təhlükəsiz yanaşmalar və proqramlaşdırma vasitələri izah edilir. Həmçinin C/C++ proqramlaşdırmada giriş məlumatlarının yoxlanılması, yaddaşın təhlükəsiz idarə olunması, sərhəd yoxlamalarının aparılması, resursların düzgün idarə edilməsi və təhlükəsiz kodlaşdırma üzrə yaxşı təcrübələr araşdırılır.
5. İstisnaların və səhvlərin idarə olunması. Giriş doğrulaması və çıxış filtrləməsi
MühazirəMövzu çərçivəsində proqram təminatında istisnaların və səhvlərin təhlükəsiz idarə olunması, eləcə də istifadəçi və xarici mənbələrdən daxil olan məlumatların yoxlanılması prinsipləri öyrənilir. Səhvlərin düzgün emal edilməməsi nəticəsində yarana biləcək məlumat sızması, proqramın gözlənilməz davranışı və digər təhlükəsizlik riskləri nəzərdən keçirilir. Giriş məlumatlarının tip, format, uzunluq və icazə verilən dəyərlər baxımından doğrulanması, etibarsız məlumatların emalının qarşısının alınması üsulları izah edilir. Həmçinin məlumatların təqdim edildiyi kontekstə uyğun çıxış filtrləməsi və kodlaşdırılması vasitəsilə inyeksiya və digər tətbiq səviyyəli hücumların qarşısının alınması yanaşmaları araşdırılır.
6. Format string zəiflikləri və onlardan qorunma üsulları
MühazirəMövzu çərçivəsində format string zəifliklərinin mahiyyəti, yaranma səbəbləri və proqram təminatının təhlükəsizliyinə təsiri öyrənilir. İstifadəçi tərəfindən daxil edilən məlumatların format sətri kimi nəzarətsiz şəkildə istifadə olunması nəticəsində yaranan təhlükəsizlik riskləri nəzərdən keçirilir. Bu zəifliklərin yaddaşdakı məlumatların icazəsiz oxunmasına, dəyişdirilməsinə, proqramın işinin pozulmasına və digər təhlükəsizlik problemlərinə səbəb olma mexanizmləri izah edilir. Həmçinin format funksiyalarından təhlükəsiz istifadə, sabit format sətirlərinin tətbiqi, giriş məlumatlarının yoxlanılması və kompilyatorun təhlükəsizlik mexanizmlərindən istifadə vasitəsilə format string zəifliklərindən qorunma üsulları araşdırılır.
7. Sənaye nümunəsi: Heartbleed və Spectre zəifliklərinin kod səviyyəsində təhlili
MühazirəMövzu çərçivəsində real sənaye nümunələri əsasında proqram təminatında yaranan ciddi təhlükəsizlik zəifliklərinin kod səviyyəsində təhlili öyrənilir. Heartbleed zəifliyinin yaddaşın düzgün yoxlanılmaması və sərhəd nəzarətinin aparılmaması nəticəsində necə meydana çıxdığı izah edilir. Spectre zəifliyinin prosessor səviyyəsində spekulyativ icra mexanizmləri ilə əlaqəsi və proqram təminatı təhlükəsizliyinə təsiri nəzərdən keçirilir. Həmçinin bu zəifliklərdən çıxarılan dərslər əsasında təhlükəsiz kodlaşdırma, giriş yoxlaması, yaddaşın qorunması və müdafiə mexanizmlərinin tətbiqi məsələləri araşdırılır.
8. Dinamik və statik analiz alətləri
MühazirəMövzu çərçivəsində proqram təminatında təhlükəsizlik zəifliklərinin aşkarlanması üçün istifadə olunan statik və dinamik analiz yanaşmaları öyrənilir. Statik analiz vasitəsilə proqram kodunun icra edilmədən, dinamik analiz vasitəsilə isə proqramın icrası zamanı təhlil edilməsi prinsipləri nəzərdən keçirilir. AddressSanitizer və Valgrind vasitəsilə yaddaş xətalarının və icra zamanı yaranan problemlərin, Coverity və SonarQube vasitəsilə isə kod keyfiyyəti və təhlükəsizlik zəifliklərinin aşkarlanması imkanları izah edilir. Həmçinin müxtəlif analiz alətlərinin istifadə məqsədləri, üstünlükləri, məhdudiyyətləri və proqram təminatının hazırlanması prosesində tətbiqi araşdırılır.
9. Veb proqramlaşdırmada təhlükəsiz kodlaşdırma: XSS, SQL injection və qorunma mexanizmləri
MühazirəMövzu çərçivəsində veb proqramlaşdırmada təhlükəsiz kodlaşdırma prinsipləri və geniş yayılmış tətbiq səviyyəli zəifliklər öyrənilir. XSS və SQL injection zəifliklərinin yaranma səbəbləri, tətbiqin giriş məlumatlarını təhlükəsiz emal etməməsi ilə əlaqəsi və proqram təminatına mümkün təsirləri nəzərdən keçirilir. İstifadəçi girişlərinin doğrulanması, kontekstə uyğun çıxış kodlaşdırması, parametrli sorğular və hazırlanmış ifadələr (prepared statements) kimi əsas qorunma mexanizmləri izah edilir. Həmçinin təhlükəsiz kodlaşdırma yanaşmalarının veb tətbiqlərin hazırlanması prosesinə inteqrasiyası və zəifliklərin kod səviyyəsində qarşısının alınması prinsipləri araşdırılır.
10. Kriptoqrafik API-lərlə düzgün işləmə və təhlükəli nümunələrdən qaçınma
MühazirəMövzu çərçivəsində proqram təminatında kriptoqrafik API-lərdən təhlükəsiz istifadə prinsipləri öyrənilir. Şifrələmə, heşləmə, rəqəmsal imza və açarların idarə edilməsi funksiyalarının proqram koduna düzgün inteqrasiyası məsələləri nəzərdən keçirilir. Zəif və köhnəlmiş kriptoqrafik alqoritmlərdən istifadə, açar və parolların kod daxilində saxlanılması, təsadüfi ədədlərin təhlükəsiz yaradılmaması, şifrələmə parametrlərinin yanlış seçilməsi və sertifikat yoxlamalarının deaktiv edilməsi kimi təhlükəli proqramlaşdırma nümunələri izah edilir. Həmçinin etibarlı kriptoqrafik kitabxanalardan istifadə, açarların təhlükəsiz idarə edilməsi və təhlükəsiz standart konfiqurasiyaların tətbiqi prinsipləri araşdırılır.
11. Təhlükəsiz autentifikasiya və sessiya idarəetməsi prinsipləri
MühazirəMövzu çərçivəsində proqram təminatında istifadəçilərin təhlükəsiz autentifikasiyası və sessiyaların idarə edilməsi prinsipləri öyrənilir. İstifadəçi identifikasiyası və autentifikasiyası, parolların təhlükəsiz saxlanılması, çoxfaktorlu autentifikasiya və autentifikasiya məlumatlarının qorunması məsələləri nəzərdən keçirilir. Sessiya identifikatorlarının təhlükəsiz yaradılması, saxlanılması, ötürülməsi və etibarsızlaşdırılması, eləcə də sessiya müddətinin və istifadəçi çıxışının düzgün idarə olunması prinsipləri izah edilir. Həmçinin zəif autentifikasiya və sessiya idarəetməsindən qaynaqlanan hesabların ələ keçirilməsi, sessiyanın oğurlanması və sessiyanın sabitlənməsi kimi təhlükəsizlik riskləri və onların qarşısının alınması üsulları araşdırılır.
12. Kod auditinin əsas prinsipləri. Kod icmalının aparılması
MühazirəMövzu çərçivəsində proqram kodunun təhlükəsizlik baxımından audit edilməsi və sistemli kod icmalının aparılması prinsipləri öyrənilir. Kod auditinin məqsədi, əhatə dairəsi və əsas mərhələləri, eləcə də təhlükəsizlik zəifliklərinin və təhlükəli proqramlaşdırma nümunələrinin müəyyən edilməsi yanaşmaları nəzərdən keçirilir. Kod icmalı zamanı giriş məlumatlarının emalı, autentifikasiya və avtorizasiya mexanizmləri, yaddaşın idarə olunması, səhvlərin emalı və kriptoqrafik funksiyaların istifadəsi kimi təhlükəsizlik baxımından kritik sahələrin yoxlanılması prinsipləri izah edilir. Həmçinin manual kod icmalı, avtomatlaşdırılmış analiz nəticələrinin qiymətləndirilməsi, aşkar edilmiş problemlərin sənədləşdirilməsi və aradan qaldırılması üzrə tövsiyələrin hazırlanması məsələləri araşdırılır.
13. Təhlükəsiz DevOps və CI/CD proseslərində təhlükəsizliyin inteqrasiyası
MühazirəMövzu çərçivəsində DevOps və CI/CD proseslərinə təhlükəsizliyin inteqrasiyası prinsipləri öyrənilir. Təhlükəsizlik yoxlamalarının proqram təminatının hazırlanması, qurulması, test edilməsi və yerləşdirilməsi mərhələlərinə daxil edilməsi yanaşmaları nəzərdən keçirilir. CI/CD boru xəttində statik və dinamik təhlükəsizlik testlərinin, asılılıqların və məxfi məlumatların yoxlanılmasının, eləcə də təhlükəsizlik nəzarətlərinin avtomatlaşdırılmasının rolu izah edilir. Həmçinin DevSecOps yanaşması, təhlükəsizlik problemlərinin erkən mərhələdə aşkarlanması və proqram təminatının həyat dövrü boyunca davamlı təhlükəsizliyin təmin edilməsi məsələləri araşdırılır.
14. OWASP Top 10 zəiflikləri və onların kod səviyyəsində aradan qaldırılması
MühazirəMövzu çərçivəsində veb tətbiqlərdə geniş yayılmış təhlükəsizlik riskləri və onların kod səviyyəsində qarşısının alınması prinsipləri öyrənilir. OWASP Top 10 çərçivəsində müəyyən edilən əsas zəiflik kateqoriyalarının yaranma səbəbləri, istismar xüsusiyyətləri və proqram təminatına mümkün təsirləri nəzərdən keçirilir. Girişə nəzarət, inyeksiya, autentifikasiya, təhlükəsizlik konfiqurasiyası, kriptoqrafik qorunma və digər kritik sahələrlə bağlı təhlükəli kodlaşdırma nümunələri təhlil edilir. Həmçinin təhlükəsiz kodlaşdırma prinsipləri, giriş məlumatlarının doğrulanması, çıxış məlumatlarının kodlaşdırılması, parametrli sorğular, təhlükəsiz autentifikasiya və digər müdafiə mexanizmləri vasitəsilə zəifliklərin kod səviyyəsində aradan qaldırılması yanaşmaları araşdırılır.