Nosozliklarni tuzatish
Testlar
Qoplash
Exe
O'nlab yillar davomida biz yaqinda har bir yuqori darajadagi
xavfsizlik konferentsiyasida noaniqlik samaradorligini oshiruvchi
bir nechta maqolalar bilan texnikaning qayta tiklanishini ko'rdik.
Xiralashish g'oyasi juda oddiy: dasturni tasodifiy kiritish bilan
sinov muhitida bajaring va uning ishdan chiqishini aniqlang.
Buzilish jarayoni tabiiy, ammo to'liq emas.
Sinov holatlarini
yaratish va sinovdan o'tayotgan dasturning ishdan chiqishini
kuzatish orqali fuzzing har bir topilgan nosozlik uchun guvoh
beradi. Dinamik sinov usuli sifatida fuzzing to'liq emas, chunki u
cheksiz vaqt davomida ishlagandan tashqari, barcha mumkin
bo'lgan dastur yo'llarini yoki ma'lumotlar oqimi yo'llarini
qamrab
olmaydi. So'nggi yillarda fuzzing xatolarni aniqlash uchun
ishlatiladigan sanoatdan tortib, yangi fuzzing texnikasi ishlab
chiqilgan akademiyagacha katta e'tiborni qaratdi . Noqonuniy
strategiyalar o'z mohiyatiga ko'ra optimallashtirish muammosi
bo'lib, mavjud resurslar imkon qadar ko'proq
xatolarni aniqlash
uchun ishlatiladi va ehtimollik tadqiqot jarayoni orqali iloji boricha
ko'proq dastur funksiyalarini qamrab oladi. Dinamik sinov usuli
sifatida tabiati tufayli fuzzing bir nechta noyob muammolarga duch keladi:
Kirish yaratish
69
Tozalash jarayonining umumiy ko'rinishi.
6
Mudofaa strategiyasi
Machine Translated by Google
Aksariyat dasturlar uchun holat maydoni cheksiz (yaqin)
va fuzzing bu holat fazosida qo'pol kuch qidirishdir.
Qachon, masalan,
boshqa nishonga, yo'lga yoki kirishga
o'tishni hal qilish - bu noaniqlikning muhim jihati. Turli xil
fuzzing usullarini taqqoslash, adolatli taqqoslash uchun
fuzzerning kuchli tomonlarini va asosiy statistik
ma'lumotlarni tushunishni talab qiladi .
• Dasturlarni tayyorlash: kodning ba'zi
jihatlari , masalan,
murakkab API, fayl formatlaridagi nazorat yig'indilari yoki
parolni tekshirish kabi qattiq taqqoslashlar bilan to'qnashuv.
• Tuyg'ulash samaradorligini baholash: noaniq kampaniyaning
samaradorligini baholash uchun ko'rsatkichlarni aniqlash qiyin.
• Kirish yaratish: fuzzerlar yangi holatni o'rganish uchun mutatsiya
strategiyasi asosida kirishlarni hosil qiladi . Asosiy strategiya
fuzzer ma'lum bir holat maydonini qanchalik samarali
o'rganishini aniqlaydi. Yangi boshqaruv oqimi va ma'lumotlar
oqimini o'rganish o'rtasidagi muvozanat kirishni yaratish uchun
qiyinchilikdir .
Fuzzing muhitini tayyorlash fuzzing
samaradorligini oshirish
uchun muhim qadamdir.
• Kamchiliklarni aniqlash: kamchiliklarni aniqlash uchun fuzzerlar
yaxshi va noto'g'ri ijrolarni farqlashi kerak. Har bir xato darhol
segmentatsiya xatosiga olib kelmaydi va holat buzilishini
aniqlash qiyin vazifadir, ayniqsa kod odatda rasmiy model bilan
birga kelmaydi.
6 Mudofaa strategiyasi
70
AFL [36] - mutatsion ma'lumotlarni yaratishdan foydalanadigan eng
zamonaviy fuzzer . AFL novdalar qamrovini kuzatish va oldingisiga
asoslangan noaniq urug'larni mutatsiyalash uchun kulrang quti asboblaridan foydalanadi
Machine Translated by Google
filialni qamrab olish. Filial qamrovi oxirgi ikkita bajarilgan asosiy
bloklarni kuzatib boradi (natijada yo'l
qoplamasi yoshi taxminan
taxmin qilinadi). So'nggi ikki filialning tarixida yangi qamrov
aniqlandi .
6 Mudofaa strategiyasi
71
Do'stlaringiz bilan baham: