Ümumi məlumat
- Fənn kodu
- İF-2214y
- Kredit
- 5
- Tələbənin iş yükü
- 90
- Semestr
- Payız semestri
- Akademik il
- 4
- Fənnin tipi
- Məcburi
- Təhsil forması
- Əyani
- Tədris dili
- Azərbaycan
- Auditoriyadaxili saatlar
- a) 30 saat - mühazirə b) 15 saat - seminar c) 15 saat - laboratoriya
- Auditoriyadan kənar saatlar
- a) 30 saat – sərbəst iş b) 60 saat- layihə işi və ya məsləhət saatı
Fənn haqqında
Fənn tələbələrdə proqram təminatının hazırlanması prosesində təhlükəsizlik prinsiplərinin tətbiqi və təhlükəsiz kodlaşdırma üzrə nəzəri bilik və praktiki bacarıqların formalaşdırılmasını nəzərdə tutur. Fənn çərçivəsində ilkin koddan qaynaqlanan təhlükəsizlik zəifliklərinin yaranma səbəbləri, istismar üsulları və onların qarşısının alınması mexanizmləri öyrənilir. Tələbələr `buffer overflow`, `format string`, SQL inyeksiyası, XSS və digər tipik proqram təminatı zəifliklərini, eləcə də SEI CERT təhlükəsiz kodlaşdırma standartlarını araşdırırlar. Təhlükəsiz autentifikasiya və sessiya idarəetməsi, kriptoqrafik API-lərdən düzgün istifadə və kod auditinin əsas prinsipləri nəzərdən keçirilir. Proqram təminatının yaradılmasından istismarına qədər bütün həyat dövrü ərzində təhlükəsizlik tələblərinin tətbiqi, həmçinin statik (SAST) və dinamik (DAST) analiz üsulları öyrənilir. Fənn tələbələrdə laboratoriya mühitinin qurulması, OWASP Top 10 zəifliklərinin araşdırılması, kodun təhlükəsizlik baxımından təhlili və aşkar edilmiş zəifliklərin aradan qaldırılması bacarıqlarının formalaşdırılmasına yönəlmişdir.
Tədris metodları
- mühazirə
- laboratoriya işi
- təqdimatlar
- seminar
- interaktiv müzakirə
- problem-based learning
- komanda işi
- case study
Fənn təlim nəticələri (CLO)
CLO 1: Proqram təminatı təhlükəsizliyinin nə olduğunu hansı səbəblərdən baş verdiyini anlayır.
CLO 2: Kompüterin yaddaşının quruluşunu, yaddaşın dolubdaşması, bu səbəbdən baş verən eksploitlərin necə çalışdığını anlayır.
CLO 3: Proqram təminatının arxitekturasının qurulması zamanı təhlükəsizlik aspektlərini nəzərə almağı, onların qarşısının alınması prinsiplərini bilir.
CLO 4: Proqram təminatı üzrə kod auditi avtomatlaşdırılmış dinamik və statik kod sınaqları üçün vasitələrdən istifadə etməyi bacarır.
CLO 5: Proqram təminatının qurulmasının bütün həyat dövrü ərzində təhlükəsizlik məsələlərinin vacibliyini, onun izlənilməsi prinsiplərini bilir.
CLO 6: Təhlükəsiz kod auditini yerinə yetirməyi bacarır. Dünyada ən çox rastgəlinən proqram təhlükəsizlik boşluqlarından məlumatlıdır.
Mövzu planı
- 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əriMü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ərMü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əsiMü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əhliliMü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əriMü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əriMü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çınmaMü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əriMü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.
Ədəbiyyat
- Robert C. Seacord, Secure Coding in C and C++ (2nd Edition), Addison-Wesley.
- Mark Dowd et al., The Art of Software Security Assessment, Addison-Wesley.
- Gary McGraw, Software Security: Building Security In.
- OWASP Secure Coding Practices – Quick Reference Guide (https://owasp.org)
- Tanya Janca. Alice and Bob Learn Secure Coding. John Wiley & Sons, 2025. 416p.
- OWASP Foundation. OWASP Secure Coding Practices – Quick Reference Guide (Version 2.0.1). 2022. 17p.
- Carnegie Mellon University Software Engineering Institute. SEI CERT C Coding Standard. 2024.
- OWASP Foundation. OWASP Top 10: The Ten Most Critical Web Application Security Risks. 2021.
- National Institute of Standards and Technology. Secure Software Development Framework (SSDF) – SP 800-218. 2022. 44p.
- National Institute of Standards and Technology. Guidelines for Minimizing the Risk of Software Vulnerabilities (SP 800-218A və əlaqəli sənədlər). 2023.
- Tanya Janca — Alice and Bob Learn Secure Coding. John Wiley & Sons, 2025. 416p.
Qiymətləndirmə
| Qiymətləndirmə forması | Açıqlama | Bal | Uyğun FTN |
|---|---|---|---|
| Cari qiymətləndirmə | Cari qiymətləndirmə - fənn üzrə tələbənin semestr müddətində fəaliyyətinin qiymətləndirilməsi olmaqla, mühazirə və məşğələ (laboratoriya) dərs materiallarının mənimsənilmə səviyyəsini qiymətləndirilir. | 30 bal | FTN 1-6 |
| Davamiyyət | Tələbə fənn üzrə dərslərin 25%-dən çoxunda iştirak etmədiyi halda imtahana buraxılmır. | 10 bal | - |
| Tələbənin sərbəst işi | Tələbəyə fənn üzrə semestr ərzində 1 sərbəst işin (zəruri hallarda sərbəst işlərin sayı artırıla bilər) yerinə yetirilməsi tapşırığı verilir. | 10 bal | FTN-- |
| İmtahan | İmtahan şifahi, yazılı, yazılı-elektron, test üsulu ilə keçirilir | 50 bal | FTN 1-6 |