1. Kafedra: Rəqəmsal texnologiyalar və tətbiqi informatika
Müəllim: Məmmədova Ləman
Fənn: Təhlükəsiz Proqramlaşdırma
Mövzu 1. Təhlükəsiz proqramlaşdırmaya giriş və əsas
konsepsiyalar
2. Məqsəd
• ProqramTəminatıTəhlükəsizliyi və Konsepsiyaları.
• Təhlükəsizliyin əsasları olan məxfilik, dürüstlük və əlçatanlıq anlayışlarını
öyrənmək.
• İnformasiya Sisteminə MümkünTəhdidləri Və BuTəhdidlərin Növlərini Öyrənmək.
• Kodlaşdırmanın Səbəb Olduğu ProqramTəminatının Zəiflikləri.
3. Kursun Mövzuları
Təhlükəsiz proqram təminatının inkişafı və əsas anlayışlara giriş
Təhlükəsiz proqram inkişafı prosesi
Əməliyyat sistemi qoruma qalxanları
İnternet əsaslı proqram təminatında təhlükəsizlik
Kiberhücumlar və proqram təminatından qorunma
Təhlükəsiz verilənlər bazası idarəetmə sistemləri
Proqram təminatı sisteminin ehtiyat nüsxəsi və bərpası
4. Təhlükəsizlik zəifliyi
Proqram təminatının təhlükəsizliyini təmin etmək və proqram təminatının
təhlükəsizlik zəifliklərini minimuma endirmək üçün inkişaf mərhələsində
təhlükəsiz kod inkişaf metodlarından istifadə etməklə proqram təminatının
işlənib hazırlanmasını təmin etməkdir.
5. Təhlükəsizlik açığı
ABŞ-da milli zəiflik məlumat
bazasında (nvd) qeydə alınmış
halların sayı Milli Standartlar və
Texnologiyalar İnstitutu (nist)
tərəfindən toplanır və dərc edilir.
Rəqəm təhlükəsizlik tədbirlərinin
illər ərzində artdığını göstərir.
Aşkar edilmiş təhlükəsizlik nist
tərəfindən dərc edilərkən, həllər də
təklif olunur (bax).
6. İnformasiyaTəhlükəsizliyi Xüsusiyyətləri
İnformasiya təhlükəsizliyinin üç əsas xüsusiyyəti var:
Məxfilik,Tamlıq və Əlçatanlıq. Bunlar istənilən
informasiya sistemi üçün əsas gözləntilərdir: yaxşı
təhlükəsizlik o deməkdir ki, məlumat açıqlanmayacaq.
Məlumat və kodlar düzgün şəkildə dəyişdirilməyəcək
(məxfilik) və ya məhv edilməyəcək (tamlıq) və müvafiq
giriş həmişə təmin ediləcək (mövcudluq).
7. Gizlilik
Bu, məlumatların icazəsiz şəxslərə açıqlanmasından qorunma deməkdir.
Potensial olaraq, qorunan məlumatlar haqqında hər hansı bir ipucu verən kiçik
məlumat sızması belə bu siyasəti etibarsız edir və təhlükəsizlik zəifliyinə
səbəb olur.
Məsələn, yalnız ilk hərf və ya hərflərin sayını göstərən ad, digər məlumat və
ya təxminlərlə birlikdə qismən açıqlamanı təmsil edir.
9. Tamlıq (Bütünlük)
Bu, məlumatların icazəsiz yaradılması, dəyişdirilməsi və ya məhv edilməsindən
qorunma deməkdir. Potensial olaraq, hətta məlumatların dəyişdirilə biləcəyi ehtimal
olunan təhlükə də məlumatların bütövlüyündən sui-istifadə hesab edilə bilər.
Məlumatların bütövlüyü;
• Məlumat fayllarının dəyişdirilməsi, məhv edilməsi və ya yeni yaradılması.
• Səhvlərə, nasazlıqlara, qəzalara və ya gözlənilməz davranışa səbəb olacaq
proqram kodunun dəyişdirilməsi.
• Dəyişdirilməsi, silinməsi, dublikat edilməsi, sıranın dəyişdirilməsi və ya əlavə
mesajlar yaradılması.
10. Mövcudluq
Bu, səlahiyyətli tərəflərin sistemə və onun resurslarına lazımi çıxışının olmasını təmin etmək
deməkdir. Əlçatanlığı sabotaj edən hücum növü adətən Xidmətdən imtina hücumlarıdır.
Sistemin və ya onun məlumatlarının məhv edilməsi sistemin yararsız hala düşməsinə səbəb
olur, bu, sistemin deaktivasiyası hesab edilir.
Mövcudluq;
İnternetə qoşulmuş xidməti istəklərlə sıxışdırmaq, onu müştərilər üçün qeyri-işlək etmək.
Müştərilərə xidmət göstərməsinə mane olan serveri sındırmaq.
Aparat və ya proqram təminatı xidməti daxil olmaqla sistemin bir hissəsinin həddən artıq
yüklənməsi.
12. Təhdid: Əgər hadisə baş verərsə, bu, əvvəllər müzakirə etdiyimiz təhlükəsizlik
insidentinə səbəb olacaq. Məsələn: SQL inyeksiyası.
Hücum:Təcavüzkar(lar) tərəfindən real təhlükə tətbiqi. Məsələn: SQL Injection baş
verir, DDOS hücumu.
Zəiflik:Təcavüzkarın hücum həyata keçirmək və sistemə güzəştə getmək üçün
istifadə edə biləcəyi sistemdəki zəiflik. Məsələn: Daxili xidməti təsvir edən
təhlükəsizlik duvarı konfiqurasiyalarında xəta.
Authentication: İstifadəçinin identifikasiyası. İnsan və ya maşın olduğunuzu müəyyən
etmək üçün sistemə daxil olmaqdan əvvəl istifadəçinin identifikasiyası tələb olunur.
Məsələn: İstifadəçi adı və parol, Face ID, Barmaq izi.
Avtorizasiya: Müəyyən bir istifadəçinin sistemdə nə etməyə icazə verildiyini
müəyyən etmək. Məsələn: Xüsusi istifadəçi qeyd yarada bilər, lakin onu silə bilməz.
13. Təhlükəsiz Proqram Nədir?
Proqram təminatı sistem proqram təminatı və ya tətbiqi proqram təminatı olsun, inkişaf
zamanı təhlükəsizlik siyasətlərinin tətbiqini tələb edir.
Təhlükəsizlik dedikdə nəzərdə tutulan həm proqramın, həm də onun verilənlər bazası kimi
komponentlərinin zərərli proqram təminatı və kiberhücumlar nəticəsində mümkün zərərdən
qorunmasıdır.
Buna görə də proqram tərtibatçıları proqram təminatının hazırlanması prosesinə
başlamazdan əvvəl yaxşı planlaşdırma və təhlil etməli və proqram təminatını hazırlayacaqları
mühitin mümkün hücumlarını nəzərə almalıdırlar.
14. Təhlükəsiz Proqram Nədir?
Xüsusilə, zərərli proqramlar, istifadəçilərdən istəmədən bəzən antivirus proqramları tərəfindən yaradılan
firewall və qalxanlardan keçərək kompüterlərdə məskunlaşır, kompüter avadanlıqlarına və ya proqram
təminatına, hətta proqram təminatının istifadə etdiyi verilənlər bazasına da ziyan vurur.
Müvafiq olaraq, bu zərərləri minimuma endirmək üçün təhlükəsiz proqram təminatı hazırlanmalı və inkişaf
etdirilməlidir.
Yuxarıda verilmiş izahatların işığında təhlükəsiz proqram təminatı “zərərli proqram təminatına qarşı effektiv
şəkildə planlaşdırılmış, dizayn edilmiş, kodlaşdırılmış, hazırlanmış və istifadəçi dostu olan bütün etibarlı
proqramlar, prosedurlar, proqramlaşdırma dilləri və skript dilləri” kimi ifadə edilə bilər.
15. Təhlükəsiz Proqram Nədir?
Tərifə əsasən, təhlükəsiz proqram təminatına gəldikdə, daha çox lisenziyalı
proqramlar ağla gəlməlidir.
Çünki həm tanıtım (demo) proqram təminatı, həm də pulsuz proqram (pulsuz
və ya shareware) paylayıcı media (internet) bütün növ zərərli proqramları
ehtiva edə bilər və proqram tərtibatçıları buna görə heç bir məsuliyyət
daşımırlar.
16. Təhlükəsiz Proqram təminatını necə inkişaf
etdirmək olar?
Təhlükəsiz proqram yaxşı planlaşdırma və təhlükəsiz dizayn prinsipləri ilə başlayır.Təhlükəsizlik
risklərin idarə edilməsidir.
Buna görə də, proqram təminatının hazırlanmasından əvvəl riskləri yaxşı təhlil etmək lazımdır,
əks halda təhlükəsiz proqram təminatı yoxdur. Digər tərəfdən, təhlükəsizlik məsələsi proqram
təminatının hazırlanması prosesinin tərkib hissəsi olmalıdır. Buna görə etibarlı bir proqram
inkişaf etdirmək üçün;
Son proqram məhsulunun təhlükəsiz olması üçün lazımi fəaliyyətlərin (məsələn, alfa və beta
testləri) yerinə yetirilməsi
Müxtəlif ölçülərlə inkişaf prosesi boyunca monitorinqvə davamlı təkmilləşdirmə tələb olunur.
17. Təhlükəsiz Proqram təminatını necə inkişaf
etdirmək olar?
Proqram problemi həll etmək üçün hazırlanmışdır. Bununla belə, proqram təminatının təhlükəsizliyinin olmaması bir
problemi həll etməkdən fərqli problemlər yarada bilər.
Bu baxımdan, son proqram məhsulunun texniki xüsusiyyətlərinin inkişaf prosesinin təmin etdiyi təminat baxımından
gözləntilərə cavab verməsini təmin etmək lazımdır.
Proqram təminatı bəzən tək bir proqram tərtibatçısı, bəzən də bir qrup proqram tərtibatçıları tərəfindən hazırlanır.Tək
bir tərtibatçı tərəfindən hazırlanmış proqram təminatı yüksək təhlükəsizlik riskinə malik ola bilər.
Eynilə, bir qrup proqramçı tərəfindən hazırlanmış proqram təminatında həm proqram hissələrinin yığılması, həm də test
işləri zamanı, başqa sözlə, inkişaf prosesində yaşanan təhlükəsizlik problemləri son məhsulda əks oluna bilər.
18. Təhlükəsiz Proqram təminatını necə inkişaf
etdirmək olar?
Buna görə də, proqram təminatının işlənib hazırlanması prosesinin əvvəlindən sonuna qədər, son proqram
təminatının istifadəsi zamanı və ondan sonra proqram tərtibatçıları bütün inkişaf prosesi boyunca
təhlükəsizliyi izləməli və davamlı olaraq təkmilləşdirməli ola bilər.
Davamlı təkmilləşdirməni ehtiva etməyən və istifadəçi rəyindən məhrum olan proqram təminatı
təhlükəsiz proqram kimi təsvir edilə bilməz.
Proqram təminatının inkişaf etdirilməsi prosesinin təmin etdiyi təminat və rəylər təhlükəsizlik baxımından
da əhəmiyyətli görünsə də, zaman zaman gözlənilməz təhlükəsizlik problemləri yarana bilər. Bu, proqram
təminatında davamlı təkmilləşdirmənin və proqram təminatçısı dəstəyinin vacibliyini ortaya qoyur.
19. Təhlükəsiz Proqram təminatını necə inkişaf
etdirmək olar?
Davamlı təkmilləşdirmə proqram təminatının təhlükəsizlik səviyyəsini yüksəltdiyi halda, proqram
təminatçısı dəstəyi mümkün təhlükəsizlik problemlərinin vaxtında aşkar edilməsini və lazımi
yeniləmələrin vaxtında edilməsini təmin edir.
Bundan əlavə, müasir kompüter texnologiyasında və xüsusən də şəbəkə sistemlərinin geniş istifadə
olunduğu sistemlərdə tam təhlükəsiz proqram təminatından danışmaq düzgün deyil. Çünki şəbəkə
mühitindən kompüterlərə və proqram təminatına qədər müxtəlif üsul və üsullardan istifadə edilən
kiberhücumlar hər gün həyata keçirilir.
Bu, təkcə proqram təminatının təhlükəsizliyini deyil, həm də proqram təminatının işlənib hazırlandığı və
işlədildiyi mühitin təhlükəsizliyini tələb edir. Buna görə də, təhlükəsiz proqram təminatı haqqında
danışmaq üçün həm proqram təminatı, həm də proqram təminatının yerləşdiyi mühit təhlükəsiz olmalıdır.
20. Xülasə
Proqram təminatının təhlükəsizliyi həll olunmamış problem olaraq qalır; Hətta tanınmış proqram təminatı
zəiflikləri hələ də təhlükə olaraq qalır.
Təhlükəsizlik terminologiyasının incə mənaları var və terminləri düzgün istifadə etmək vacibdir.
İnformasiya təhlükəsizliyinin əsas xüsusiyyətləri məxfilik, bütövlük və əlçatanlıqdır.
STRIDE informasiya təhlükəsizliyi təhdidlərinin təsnifatının ümumi sistemidir.
Hər bir sistem (və bütün aktivlər) bir çox təhlükələrlə üzləşir.
Proqram təminatının təhlükəsizliyi vacibdir, çünki qeyri-kafi təhlükəsizliyin dəyəri dağıdıcı və yüksək ola
bilər.