Buferin daşması – buferə və ya verilənləri saxlama sahəsinə ayrılmış həcmdən çox informasiya yerləşdirilməsidir. Bu, proqramın çökməsinə, gözlənilməz davranışlara və ya hətta zərərli kodun icra olunmasına səbəb ola bilər.
İzah:
Buferlər proqramlar tərəfindən verilənləri müvəqqəti saxlamaq üçün istifadə olunan yaddaş sahələridir. Hər bir buferin müəyyən bir həcmi vardır. Əgər proqram bu həcmi aşaraq buferə daha çox məlumat yazmağa cəhd etsə, buferin daşması baş verir. Bu, yaxınlıqda yerləşən yaddaş sahələrinə yazılmasına və proqramın düzgün işləməsinin pozulmasına səbəb olur.
Nəticələr:
- Proqramın çökməsi (crash)
- Gözlənilməz davranışlar
- Verilənlərin korlanması
- Sistemin qeyri-sabitliyi
- Təhlükəsizlik zəiflikləri: Zərərli kodun icra olunması (məsələn, buffer overflow vasitəsilə sistemə nüfuz etmək və zərərli əməliyyatlar həyata keçirmək)
İstifadə sahələri:
- Kompüter elmi: Proqramlaşdırma, əməliyyat sistemləri, kompüter təhlükəsizliyi
- İnformasiya texnologiyaları: Sistem administrasiyası, şəbəkə təhlükəsizliyi
- Kiber təhlükəsizlik: Zərərli proqram yazımı və müdafiəsi
Qorunma üsulları:
Buferin daşmasını qarşısını almaq üçün aşağıdakı üsullardan istifadə edilə bilər:
- Girişin yoxlanılması: Proqrama daxil olan verilənlərin həcminin yoxlanılması
- Güvənli proqramlaşdırma texnikalarından istifadə: Məsələn,
fgets()
funksiyasındangets()
funksiyası əvəzinə istifadə etmək - Buferin ölçüsünün düzgün təyin edilməsi
- Xüsusi proqram vasitələrinin tətbiqi: Buferin daşmasını aşkarlamaq və qarşısını almaq üçün hazırlanmış vasitələr