Domov audio Čo je to rozbíjanie zásobníkov? - definícia z technológie

Čo je to rozbíjanie zásobníkov? - definícia z technológie

Obsah:

Anonim

Definícia - Čo znamená Stack Smashing?

Stack smashing je forma zraniteľnosti, pri ktorej je stack počítačovej aplikácie alebo OS nútený pretekať. Môže to viesť k rozvráteniu programu / systému a jeho pádu.


Zásobník, obvod prvého výtoku, je formou medzipamäte, ktorý drží medzivýsledky operácií v ňom. Zjednodušenie ukladania údajov do zásobníka je väčšie, ako je ich kapacita zadržania. Kvalifikovaní hackeri môžu zámerne zaviesť nadmerné množstvo údajov do zásobníka. Prebytočné údaje môžu byť uložené v iných premenných zásobníka vrátane návratovej adresy funkcie. Keď sa funkcia vráti, skočí na škodlivý kód v zásobníku, ktorý by mohol poškodiť celý systém. Susedné údaje v zásobníku sú ovplyvnené a núti program zlyhať.

Techopedia vysvetľuje Stack Smashing

Ak program, ktorého sa týka rozbitie zásobníka, prijíma údaje z nedôveryhodných sietí a beží so zvláštnymi oprávneniami, ide o prípad zabezpečenia zabezpečenia. Ak vyrovnávacia pamäť obsahuje údaje poskytnuté nedôveryhodným používateľom, zásobník sa môže poškodiť vložením spustiteľného kódu do programu, čím sa získa neoprávnený prístup k počítaču. Útočník môže tiež prepísať informácie o riadiacom toku uložené v zásobníku.


Keďže sa rozbíjanie zásobníkov stalo veľmi vážnou zraniteľnosťou, implementujú sa určité technológie na prekonanie katastrofy rozbíjania zásobníkov. Ochrana proti pretečeniu vyrovnávacej pamäte zásobníka mení organizáciu údajov v rámci zásobníka volania funkcie tak, aby obsahovalo hodnoty Kanárske ostrovy. Tieto hodnoty, keď sú zničené, naznačujú, že vyrovnávacia pamäť, ktorá predchádzala pamäti, bola pretečená. Kanárske hodnoty monitorujú pretečenie vyrovnávacej pamäte a sú umiestnené medzi kontrolnými údajmi a vyrovnávacou pamäťou v zásobníku. To zaisťuje, že pretečenie nárazníka najskôr poškodí kanárik. Neúspešné overenie kanárskych údajov znamená pretečenie v zásobníku. Tri typy kanárikov sú Random, Terminator a Random XOR.


Kanál terminátora je založený na skutočnosti, že útok na pretečenie zásobníka závisí od reťazcových operácií končiacich na terminátoroch. Náhodné kanárky sú generované náhodne z démona zhromažďujúceho entropiu, ktorý útočníkom bráni poznať hodnoty. Náhodné kanárky sa generujú pri inicializácii programu a ukladajú sa do globálnych premenných. Náhodné kanistre XOR sú náhodné nosiče, ktoré sú kódované pomocou kontrolných údajov. Je to podobné náhodným kanálom s tým rozdielom, že „metóda načítania zo zásobníka“ na získanie kanála je zložitá. Hacker potrebuje údaje o kanáloch, algoritmoch a kontrolách na vytvorenie pôvodného kanála. Chráni pred útokmi zahŕňajúcimi pretečenie vyrovnávacích pamätí v štruktúre do ukazovateľov, aby zmenili ukazovateľ tak, aby ukazoval na časť kontrolných údajov.

Čo je to rozbíjanie zásobníkov? - definícia z technológie