Co je přetečení zásobníku vyrovnávací paměti?
Přetečení zásobníku zásobníku je to, co se stane, když program provede záznam do paměti počítače, který je delší než přidělené místo. V některých případech to může poškodit jiná data v paměti a způsobit problémy při provozu počítače. V jiných případech může přetečení zásobníku zásobníku zneužít škodlivá aplikace k převzetí kontroly nad ostatními částmi počítače.
Jméno z přetečení zásobníku zásobníku vychází nejprve ze zásobníku, což je ve skutečnosti aktivní seznam, ve kterém jsou data organizována: termín pochází z analogie hromadění fyzických položek. Jednou z verzí tohoto balíčku volání je seznam, který počítačový program používá ke sledování různých částí programu, podprogramů, které fungují v kterémkoli konkrétním okamžiku. Protože zásobník volání funguje dočasně a je třeba k němu rychle přistupovat, je umístěn spíše v paměti počítače než v trvalém úložišti, jako je pevný disk.
Protože moderní operační systémy umožňují spuštění více programů najednou, je třeba uspořádat způsob přidělování paměti, včetně hromad volání. To se provádí efektivně přidělením vyrovnávacích pamětí, což je prostor v paměti navržený tak, aby byl dostatečně velký, aby zvládl maximální prostor požadovaný konkrétní vyrovnávací pamětí. Ve většině případů bude část tohoto prostoru nevyužita, takže funguje jako vyrovnávací paměť mezi daty z různých aplikací a ponechává prostor, aby se vypořádal, pokud někdo najednou vyžaduje více místa. Jedním ze způsobů, jak si představit, by bylo vymyslet knihovnu, která přidělila určité množství prostoru každé oblasti předmětu, přičemž se ujistěte, že necháte nějaký prostor navíc, aby si poradili, kdyby například všechny knihy o jednom předmětu byly v knihovně v ve stejnou dobu, než na kteroukoli z nich.
K přetečení zásobníku zásobníku dochází, když program zapíše data zásobníku volání do zásobníku způsobem, který přesahuje přidělený prostor. K tomu může dojít omylem, obvykle prostřednictvím chyby v programu. Pokud je například aplikace navržena tak, aby uživateli umožňovala zadávat telefonní číslo, ale nemá žádné omezení počtu znaků, které lze zadat, hacker může být schopen použít pole bez omezení k úmyslnému vyvolání přetečení zásobníku zásobníku. . V závislosti na způsobu fungování operačního systému by to mohlo hackerovi umožnit nepřímý přístup k jiné aplikaci nebo k samotnému operačnímu systému.
Existuje několik přístupů ke zmírnění proti účinkům přetečení zásobníku zásobníku. Jeden je známý jako randomizace rozložení adresového prostoru. Tím jsou náhodně uspořádány nejdůležitější oblasti dat v počítači. Myšlenka je, že i když hacker způsobí nebo zneužije přetečení zásobníku zásobníku, nebude schopen spolehlivě zneužít porušení.