www.wikidata.uk-ua.nina.az
U galuzi komp yuternoyi bezpeki i programuvannya perepovnennya bufera angl buffer overflow abo angl buffer overrun ce yavishe pri yakomu programa pid chas zapisu danih v bufer perezapisuye dani za mezhami bufera Ce mozhe viklikati nespodivanu povedinku vklyuchno z pomilkami dostupu do danih hibnimi rezultatami zboyem programi abo diroyu v sistemi bezpeki Perepovnennya bufera mozhe buti viklikane nedostatnoyu perevirkoyu vhidnih danih Vono ye bazoyu dlya bagatoh urazlivostej v programnih produktah i mozhe buti vikoristane zi zlim namirom Dodatkova perevirka mozhe zapobigti perepovnennyu bufera hocha taka perevirka vpline na shvidkodiyu programi Movi programuvannya zazvichaj zgaduvani u zv yazku z perepovnennyam bufera ce zdebilshogo C ta C Voni ne mayut vbudovanogo mehanizmu proti dostupu abo perezapisuvannya danih u bud yakij chastini pam yati j ne provadyat avtomatichnoyi perevirki danih yaki zapisuyut v masiv na vihid za mezhi masivu Zmist 1 Tehnichnij opis 1 1 Bazovij priklad 2 Vikoristannya 2 1 Vikoristannya steka 2 2 Vikoristannya perepovnennya v kupi 3 Zapobigannya 3 1 Sistemi viyavlennya vtorgnennya 3 2 Zahist vid poshkodzhennya steka 3 3 Zahist prostoru mashinnogo kodu dlya UNIX podibnih sistem 3 4 Zahist prostoru mashinnogo kodu dlya Windows 3 5 Vikoristannya bezpechnih bibliotek 4 Primitki 5 Div takozhTehnichnij opis red Perepovnennya bufera vidbuvayetsya todi koli dani sho zapisuyutsya v bufer cherez nedostatnyu perevirku poshkodzhuyut dani roztashovani za susidnimi do bufera adresami Chasto ce vidbuvayetsya koli kopiyuyetsya ryadok z odnogo bufera v inshij Bazovij priklad red V nastupnomu prikladi programa viznachila dva sumizhni ob yekti v pam yati ryadok 8 bajt zavdovzhki A i dvobajtne cile B Pochatkovo A mistit nulovi bajti a V mistit chislo 1979 Simvoli mayut rozmir odin bajt im ya zminnoyi A Bznachennya porozhnij ryadok 1979shistnadcyatkove znachennya 00 00 00 00 00 00 00 00 07 BBTeper programa namagayetsya zberegti nul terminovanij ryadok excessive v bufer A Cherez vidsutnist perevirki na dopustimu dovzhinu ryadka vin zatiraye znachennya B im ya zminnoyi A Bznachennya e x c e s s i v 25856shistnadcyatkove znachennya 65 78 63 65 73 73 69 76 65 00Hocha programist ne zbiravsya zminyuvati znachennya B ce znachennya bulo perezapisane i teper mistit chislo utvorene chastinoyu ryadka V comu vipadku na big endian sistemi sho vikoristovuye ASCII e i nulovij bajt sformuyut chislo 25856 Yaksho za B sliduye nedostupna dlya zapisu dilyanka pam yati zapis she dovshogo ryadka mozhe prizvesti do pomilki segmentaciyi sho pererve proces Vikoristannya red Tehniki vikoristannya urazlivosti cherez perepovnennya bufera zalezhat vid arhitekturi operacijnoyi sistemi i dilyanki pam yati Napriklad vikoristannya kupi riznitsya vid vikoristannya steka viklikiv Vikoristannya steka red Dokladnishe Perepovnennya stekovogo buferaTehnichno osvidomlenij i zlonamirenij koristuvach mozhe vikoristati stekove perepovnennya bufera tak Dlya perezapisu lokalnoyi zminnoyi zminivshi tim samim perebig programi na vigidnishij dlya napadnika Dlya perezapisu adresi povernennya v stekovomu kadri Koli bude vikonane povernennya z funkciyi vikonannya programi vidnovitsya za adresoyu vkazanoyu napadnikom zazvichaj ce adresa bufera polya vvodu Takij sposib najbilsh rozpovsyudzhenij v arhitekturah de stek roste donizu napriklad v arhitekturi x86 Dlya perezapisiv vkazivnika na funkciyu 1 abo obrobnika vinyatkiv sho budut vikonani zgodom Iz metodom trampolajninga angl trampolining bukvalno stribki na batuti yaksho adresa danih yaku vviv koristuvach nevidoma ale yih misceznahodzhennya zberigayetsya v reyestri todi adresa povernennya mozhe buti perezapisana na adresu opkodu yakij vikonaye perehid do danih vvedenih koristuvachem Yaksho yih mesceznahodzhennya zberigayetsya v reyestri R todi potriben stribok do opkodu dlya stribka R ce vikliche vikonannya koristuvackih danih Roztashuvannya neobhidnih opkodiv abo bajtiv v pam yati mozhe buti znajdeno v dinamichnih bibliotekah abo samij programi Adresi opkodiv mozhut zminyuvatisya mizh zastosunkami i versiyami OS Metasploit Project odna z baz danih potribnih opkodiv dlya Windows 2 Ne varto plutati stekove perepovnennya bufera z perepovnennyam steka Takozh zauvazhimo sho nayavnist takih vrazlivostej zazvichaj pereviryayetsya za dopomogoyu fazzinga 3 Vikoristannya perepovnennya v kupi red Perepovnennya bufera v kupi vikoristovuyetsya vidminno vid perepovnennya v steku Pam yat v kupi dinamichno rozpodilyayetsya zastosunkom pid chas vikonannya i zazvichaj mistit dani programi Vikoristannya vidbuvayetsya cherez poshkodzhennya danih osoblivim chinom sho prizvodit do perezapisu vnutrishnih struktur danih takih yak zv yaznij spisok vkazivnikiv Urazlivist Microsoft GDI pri obrobci JPEGiv priklad naskilki nebezpechnoyu mozhe buti perepovnennya v kupi 4 Zapobigannya red Dlya zmenshennya imovirnosti perepovnennya bufera vikoristovuyutsya nastupni zahodi Sistemi viyavlennya vtorgnennya red Dokladnishe Sistema viyavlennya vtorgnenZa dopomogoyu sistem viyavlennya vtorgnennya SVV mozhna viyaviti i zapobigti sprobam viddalenogo vikoristannya perepovnennya bufera Cherez te sho v bilshosti vipadkiv dani priznacheni dlya perepovnennya bufera mistyat dovgi masivi instrukcij No Operation a href NOP html title NOP NOP a abo NOOP SVV prosto blokuye vsi vhidni paketi sho mistyat veliku kilkist poslidovnih NOP iv Cej sposib zagalom ne efektivnij bo taki masivi mozhut buti zapisani za dopomogoyu velikogo riznomanittya instrukcij movi asemblera Ostannim chasom zlamuvachi dlya ominannya SVV pochali vikoristovuvati kodi obolonki shel kodi z shifruvannyam kodom sho zminyuye sebe sam polimorfnim kodom i abetkovo cifrovim kodom a takozh ataku z povernennyam v biblioteku libc Zahist vid poshkodzhennya steka red Zahist vid poshkodzhennya steka vikoristovuyetsya dlya viyavlennya najbilsh poshirenih pomilok perepovnennya bufera Pri comu pereviryayetsya sho stek viklikiv ne buv zminenij pered vihodom z funkciyi Yaksho vin buv zminenij todi programa zavershuye svoye vikonannya z pomilkoyu segmentaciyi Isnuyut tri taki sistemi Libsafe i StackGuard z Stack Smashing Protector stara nazva ProPolice dvi ostanni ye rozshirennyami kompilyatora gcc Pochinayuchi z gcc 4 1 stage2 SSP buv integrovanij v osnovnij distributiv kompilyatora Gentoo Linux i OpenBSD mayut SSP v skladi rozpovsyudzhuvanogo z nimi gcc Majkrosoftivska funkciya bezpeki po zapobigannyu vikonannyu danih ne dozvolyaye vikonuvati kod z oblasti pam yati z poznachkoyu tilki dlya danih Zahist prostoru mashinnogo kodu dlya UNIX podibnih sistem red Zahist prostoru mashinnogo kodu mozhe pom yakshiti naslidki perepovnennya bufera unemozhlivlyuyuchi bilshist dij zlovmisnika Ce dosyagayetsya randomizaciyeyu adresnogo prostoru ASLR angl Address space layout randomization i abo zaboronoyu odnochasnogo dostupu do pam yati na zapis i vikonannya Stek bez vikonannya zapobigaye bilshosti vrazlivostej kodu obolonki Isnuye dva vipravlennya dlya yadra Linux yaki zabezpechuyut cej zahist PaX i exec shield Zhoden z nih ne ye chastinoyu osnovnogo distributivu yadra OpenBSD pochinayuchi z versiyi 3 3 vklyuchaye sistemu pid nazvoyu W X kotra takozh zabezpechuye kontrol prostoru vikonannya dzherelo Zauvazhimo sho takij sposib zahistu ne zapobigaye poshkodzhennyu steka Tim ne mensh vin chasto zapobigaye uspishne vikonannya korisnogo vantazhu eksplojta Programa ne vzmozi vstaviti kod obolonki v zahishenu vid zapisu pam yat taku yak isnuyuchi segmenti kodu vikonannya Takozh bude nemozhlivo vikonannya instrukcij v pam yati ne dlya vikonannya napriklad v steku abo v kupi ASLR utrudnyuye dlya zlamnika viznachennya adres funkcij v kodi programi za dopomogoyu yakih vin mig bi zdijsniti uspishnu ataku i robit ataki tipu ret2libc duzhe skladnim zavdannyam hocha voni vse she mozhlivi v kontrolovanomu seredovishi yaksho napadnik vgadaye pravilnu adresu dzherelo Deyaki procesori yak ot Sparc vid Sun Efficeon vid Transmeta najnovishi 64 rozryadni x86 procesori firm AMD pochinayuchi z Opteron ta Intel pochinayuchi z versij Pentium 4 Prescott zapobigayut vikonannyu kodu roztashovanogo v oblastyah pam yati yaki poznacheni osoblivim bitom NX AMD nazivaye svoye rishennya NX vid angl No eXecute a Intel svoye XD vid angl eXecute Disabled Zahist prostoru mashinnogo kodu dlya Windows red Zaraz isnuye dekilka riznih rishen priznachenih dlya zahistu vikonuvanogo kodu v sistemah Windows yaki proponuye kompaniya Majkrosoft i storonni kompaniyi Majkrosoft zaproponuvala svoye rishennya pid nazvoyu DEP vid angl Data Execution Prevention zapobigannya vikonannyu danih vklyuchila jogo v paketi onovlen dlya Windows XP ta Windows Server 2003 DEP vikoristovuye dodatkovi mozhlivosti novih procesoriv Intel i AMD dlya podolannya obmezhennya v 4 GiB na mozhlivist adresaciyi pam yati rozmir pam yati pritamanne 32 rozryadnim procesoram Dlya cih cilej sluzhbovi strukturi buli zbilsheni Ci strukturi teper mistyat zarezervovanij bit NX DEP vikoristovuye cej bit dlya zapobigannya atakam pov yazanim zi zminoyu adresi obrobnika vinyatkiv tak zvanij SEH eksplojt DEP zabezpechuye tilki zahist vid SEH eksplojta vin ne zahishaye storinki pam yati z vikonuvanim kodom Do togo Majkrosoft rozrobila mehanizm zahistu steka priznachenij dlya Windows Server 2003 Stek poznachayetsya za dopomogoyu poznachok angl canary cilisnist yakih pereviryayetsya Yaksho taka poznachka bula zminena znachit stek poshkodzheno Isnuyut takozh rishennya vid inshih kompanij yaki zapobigayut vikonannyu koda roztashovanogo v oblastyah pam yati priznachenih dlya danih abo realizuyuchih mehanizm ASLR Vikoristannya bezpechnih bibliotek red Problema perepovnennya bufera harakterna dlya mov programuvannya S ta C bo voni ne prihovuyut detali nizkorivnevogo predstavlennya buferiv yak kontejneriv dlya tipiv danih Takim chinom zadlya uniknennya perepovnennya bufera potribno zabezpechiti visokij riven kontrolyu za stvorennyam i zminoyu programnogo kodu yakij zdijsnyuye keruvannya buferami Vikoristannya bibliotek abstraktnih tipiv danih yaki vikonuyut centralizovane avtomatichne keruvannya buferami i vklyuchayut v sebe perevirku na perepovnennya odin z pidhodiv dlya zapobigannya perepovnennya bufera Dva osnovnih tipi danih yaki dozvolyayut zdijsniti perepovnennya bufera v cih movah ryadki i masivi Takim chinom vikoristannya bibliotek dlya ryadkiv i spiskovih struktur danih yaki buli rozrobleni dlya zapobigannya i abo viyavlennya perepovnen bufera dozvolit uniknuti bagatoh urazlivostej Primitki red CORE 2007 0219 OpenBSD s IPv6 mbufs remote kernel buffer overflow Arhiv originalu za 8 lipnya 2013 Procitovano 15 travnya 2007 The Metasploit Opcode Database Arhiv originalu za 12 travnya 2007 Procitovano 15 travnya 2007 The Exploitant Security info and tutorials Arhiv originalu za 8 lipnya 2013 Procitovano 29 listopada 2009 Microsoft Technet Security Bulletin MS04 028 Arhiv originalu za 8 lipnya 2013 Procitovano 15 travnya 2007 Div takozh red Perepovnennya stekovogo bufera nbsp Ce nezavershena stattya pro programuvannya Vi mozhete dopomogti proyektu vipravivshi abo dopisavshi yiyi Otrimano z https uk wikipedia org w index php title Perepovnennya bufera amp oldid 37737444