Բուֆերի գերլցման պաշտպանություն
From Wikipedia, the free encyclopedia
Remove ads
Բուֆերի գերլցման պաշտպանությունը (անգլերեն՝ Buffer overflow protection) հղվում է տարբեր մեթոդների վրա, որոնք ծրագրի իրականացման ժամանակ օգտագործվում են կատարվող ծրագրերի անվտանգությունը բարելավելու համար, անմիջապես հայտնաբերելով ստեկում փոփոխականներին հատկացված հիշողության բուֆերի գերլցումը։ Գոյություն ունեն բուֆերային հիշող սարքի գերլցման պաշտպանության մի քանի իրականացումներ։
Այս հոդվածն աղբյուրների կարիք ունի։ Դուք կարող եք բարելավել հոդվածը՝ գտնելով բերված տեղեկությունների հաստատումը վստահելի աղբյուրներում և ավելացնելով դրանց հղումները հոդվածին։ Անհիմն հղումները ենթակա են հեռացման։ |
Այս հոդվածը նվիրված է ստեկի գերլցմանը․ նման պաշտպանություն գոյություն ունի նաև heap-ի գերլցման դեպքում։
Remove ads
Աշխատանքի սկզբունքը
Բուֆերի գերլցման պաշտպանությունը փոփոխում է տվյալների կազմակերպումը ֆունկցիայի կանչի ստեկում, ներառելով “canary” արժեքը, որը ոչնչանալիս, ցույց է տալիս, որ հիշողության մեջ նրան նախորդող բուֆերը գերլցված է եղել։
Canaries
Canaries կամ canary բառերը հայտնի արժեքներ են, որոնք տեղադրվում են ստեկում բուֆերի և ղեկավարման տվյալների միջև բուֆերի գերլցումները վերահսկելու նպատակով։ Երբ բուֆերը գերլցվում է, canary-ն է առաջին վնասվող տվյալը և canary տվյալի ստուգման ձախողումը գերլցման ազդանշան է, որն այնուհետև կարելի է ֆիքսել, օրինակ, չեղյալ համարելով վնասված տվյալները։
Canary տերմինը կապված է ածխահանքերում դեղձանիկների օգտագործման պատմության հետ։ Լինելով ավելի զգայուն թունավոր գազերի նկատմամբ, քան հանքագործները, նրանք ապահովում են կենսաբանական զգուշացման համակարգ։
Օգտագործվում են երեք տեսակի canary-ներ՝ Terminator, Random և Random XOR։ StackGuard-ի ընթացիկ տարբերակները ապահովում են այս երեք տեսակները, մինչ ProPolice-ն ապահովում է միայն Terminator-ը և Random canary-ները։
Remove ads
Տես նաև
- PaX
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads