See also ebooksgratis.com: no banners, no cookies, totally FREE.

CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
Privacy Policy Cookie Policy Terms and Conditions
Heap overflow - Wikipedia, wolna encyklopedia

Heap overflow

Z Wikipedii

Heap overflow – to nazwa jednego z rodzajów błędu przepełnienia bufora, mającego miejsce na stercie. Sterta jest obszarem pamięci procesu na którym dynamicznie alokowanebufory na dane. Jeśli błędnie napisana aplikacja dokona próby zapisania większej porcji danych, niż wcześniej przeznaczono na ten cel pamięci, nadpisane mogą zostać struktury kontrolne aplikacji, i możliwe jest naruszenie integralności danego programu.

Spis treści

[edytuj] Szczegóły techniczne

Błąd przepełnienia bufora na stercie, podobnie jak inne błędy z tej grupy, może zostać wykorzystany przez osoby trzecie do przejęcia kontroli nad podatną aplikacją, albo do spowodowania ataku typu DoS.

Wykorzystanie tego typu podatności polega na doprowadzeniu do stanu, gdy zapisywane na stercie dane procesu nadpiszą struktury kontrolne alokatora pamięci zarządzającego stertą procesu, albo inne dane kontrolne specyficzne dla atakowanego programu. Taka sytuacja najczęściej prowadzi do zakończenia działania procesu przez jądro systemu operacyjnego na skutek naruszenia ochrony pamięci przy najbliższej próbie posłużenia się uszkodzonymi danymi. Przez odpowiednią manipulację zapisanymi do pamięci wartościami, jest jednak często możliwe przejęcie kontroli nad aplikacją.

[edytuj] Obrona

W celu obrony przed tego typu błędami należy unikać technik programistycznych, które przy zapisie obszarów pamięci nie weryfikują długości docelowego bufora danych (np. użycie funkcji biblioteki języka C: strcpy, strcat, sprintf).

Dodatkowo, możliwe jest zabezpieczenie aplikacji przez taką konstrukcję alokatora pamięci, która weryfikuje przed użyciem struktury kontrole pod względem ich integralności i poprawności. W tym przypadku, naruszenie struktur kontrolnych alokatora pamięci skutkuje zakończeniem działania procesu.

[edytuj] Zobacz też

[edytuj] Linki zewnętrzne

W innych językach


aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -