Topshiriq: Dasturiy ta’minot talablarini ishlab chiqish va ularni tasdiqdash.
Amaliy ish 10: Dastur kodni qayta ko’rib chiqish va qayta ishlash
Ishdan maqsad: Dastur kodni tekshirish va qayta ishlash ko’nikmalarini hosil qilishdan iborat
topshiriq: Dastur kodni tekshirish va qayta ishlash. Manba kodini qayta ko'rib chiqish yondashuvlari usullarni o'z ichiga oladi. Dastur ishlab chiqishda statik tahlilni qo'llash izoh
Hozirgi vaqtda dasturiy ta'minotning zaif tomonlarini qidirishni avtomatlashtirish uchun juda ko'p vositalar ishlab chiqilgan. Ushbu maqolada ulardan ba'zilari muhokama qilinadi.
Kirish
Statik kod tahlili - bu dasturlarning dastlabki kodida amalga oshiriladigan va o'rganilayotgan dasturni amalda bajarmasdan amalga oshiriladigan dasturiy tahlil.
Dastur ko'pincha dastur kodidagi xatolar tufayli turli zaifliklarni o'z ichiga oladi. Dasturlarni ishlab chiqishda yo'l qo'yilgan xatolar, ba'zi hollarda, dasturning ishdan chiqishiga olib keladi va shuning uchun dasturning normal ishlashi buziladi: bu holda ma'lumotlar tez-tez o'zgartiriladi va buziladi, dastur yoki hatto tizim to'xtaydi. . Zaifliklarning aksariyati tashqaridan olingan ma'lumotlarni noto'g'ri qayta ishlash yoki ularning etarli darajada qat'iy tekshirilmaganligi bilan bog'liq.
Zaifliklarni aniqlash uchun turli xil vositalar, masalan, dasturning manba kodining statik analizatorlari qo'llaniladi, ularning umumiy ko'rinishi ushbu maqolada keltirilgan.
Xavfsizlik zaifliklarining tasnifi
Dasturning barcha mumkin bo'lgan kirish ma'lumotlari bo'yicha to'g'ri ishlashi talabi buzilganda, xavfsizlik zaifliklari (xavfsizlik zaifligi) paydo bo'lishi mumkin. Xavfsizlik zaifliklari butun tizimning xavfsizlik cheklovlarini yengish uchun bitta dasturdan foydalanishga olib kelishi mumkin.
Xavfsizlik zaifliklarining tasnifiga qarab dasturiy ta'minotdagi xatolar:
Bufer to'lib ketishi. Ushbu zaiflik dasturni bajarish vaqtida xotirada chegaradan tashqari massiv ustidan nazoratning yo'qligi tufayli yuzaga keladi. Haddan tashqari katta bo'lgan ma'lumotlar paketi cheklangan buferni to'ldirganda, begona xotira kataklarining tarkibi qayta yoziladi va dastur ishdan chiqadi va ishdan chiqadi. Buferning jarayon xotirasidagi joylashuviga ko'ra, buferning to'lib ketishi stekda (stek buferining to'lib ketishi), uyada (uyma buferning to'lib ketishi) va statik ma'lumotlar maydonida (bss buferining to'lib ketishi) farqlanadi.
Zaifliklar (buzilgan kirish zaifligi). Zaifliklar foydalanuvchi kiritgan ma'lumotlar ba'zi bir tashqi til (odatda Unix shell yoki SQL tili) tarjimoniga yetarlicha nazoratsiz uzatilganda paydo bo'lishi mumkin. Bunday holda, foydalanuvchi kiritilgan ma'lumotlarni shunday belgilashi mumkinki, ishga tushirilgan tarjimon zaif dastur mualliflari tomonidan mo'ljallanganidan butunlay boshqacha buyruqni bajaradi.
Format satrining zaifligi. Ushbu turdagi xavfsizlik zaifligi zaiflikning pastki sinfidir. Bu C standart kutubxonasining printf, fprintf, scanf va boshqalar formatidagi kiritish-chiqarish funksiyalaridan foydalanilganda parametrlarni boshqarishning etarli emasligidan kelib chiqadi. Ushbu funktsiyalar parametrlardan biri sifatida keyingi funktsiya argumentlari uchun kirish yoki chiqish formatini belgilaydigan belgilar qatorini oladi. Agar foydalanuvchi formatlash turini o'zi o'rnata olsa, bu zaiflik string formatlash funksiyalarining muvaffaqiyatsiz qo'llanilishi natijasida yuzaga kelishi mumkin.
Sinxronizatsiya xatolari natijasida zaifliklar (poyga shartlari). Ko'p vazifalarni bajarish bilan bog'liq muammolar quyidagi holatlarga olib keladi: ko'p vazifali muhitda ishlash uchun mo'ljallanmagan dastur, masalan, ishlayotganda foydalanadigan fayllarni boshqa dastur tomonidan o'zgartirilmasligiga ishonishi mumkin. Natijada, ushbu ishchi fayllarning mazmunini o'z vaqtida almashtirgan tajovuzkor dasturni muayyan harakatlarni bajarishga majbur qilishi mumkin.
Albatta, sanab o'tilganlarga qo'shimcha ravishda, xavfsizlik zaifliklarining boshqa sinflari ham mavjud.
Do'stlaringiz bilan baham: |