Bezpečnost informačních systémů

Buffer overflow

Tento text je založen na anglické verzi Smashing The Stack For Fun And Profit

Úvod

Příklady problematických softwarů, které byly napadnuty jsou syslog, plitvt, sendmail 8.7.5, Linux/FreeBSD mount, Xt library, atd. V následujícím textu se pokusíme vysvětlit přetečení bufferu a taky jak exploity (programy, které testují slabá místa a ve většině případů se snaží toto slabé místo využít ke spuštění kódu) a jejich činnost
Následující text předpokladá použití Intel x86 architektury s operačním systémem Linux.

Nějaké základní informace před začátkem: Buffer je jednoduchý sousední blok počítačové paměti, ve kterém jsou uloženy instance stejných datových typů. Programátoři si to obvykled spojují s poli o velikosti word buffer(pole znaků). Pole můžou být deklarovány jak staticky tak dynamicky.
Statické proměnné jsou alokovány v době spouštění programu.
Dynamické proměnné jsou alokovány v době běhu programu na zásobníku.

Paměťová organizace

                             /------------------\  lower
                             |                  |  memory
                             |       Text       |  addresses
                             |                  |
                             |------------------|
                             |   (Initialized)  |
                             |        Data      |
                             |  (Uninitialized) |
                             |------------------|
                             |                  |
                             |       Stack      |  higher
                             |                  |  memory
                             \------------------/  addresses
 

Reference







© 2010 Marmil (Martin Milička) optimalizace PageRank.cz