Co je rozprašování haldy?
Hromadné stříkání je technika hackování používaná k zneužití zranitelnosti v počítačovém softwaru. Působí tak, že získá kontrolu nad programem využitím části jeho paměti. Jakmile je část paměti řízena hackerským kódem, může hacker převzít kontrolu nad prováděním kódu implementací přetečení vyrovnávací paměti v oblasti haldy paměti. Nejběžnější aplikací pro stříkání haldy jsou hackování webových prohlížečů, jako je Internet Explorer®.
"Halda" je dynamický blok paměti, který počítač přiřadí konkrétnímu programu, tak pojmenovaný, protože počítač věnuje programu virtuální hromadu paměti. To lze považovat za úložný prostor ve skříni nebo na stole. Tato hromada paměti patří do programu, dokud ji neuvolní software nebo kód kolekce operačního systému. Kód kolekce je jednoduše zabezpečené zařízení, které v případě havárie programu nebo selhání softwaru po ukončení používání uvolní paměť.
Při stříkání haldy se hacker pokouší „sprejovat“ hromadu paměti konkrétní částí kódu. Cílem je umístit kód na konkrétní místo v paměti hromady programu, jako je zaklínění páčidla do okraje zárubně, aby se zajistil pákový efekt, aby se dveře otevřely. Poté, co jsou informace vloženy do haldy paměti pomocí tepelného postřiku, může hacker přetečit haldu nebo celou vyrovnávací paměť paměti a generovat chyby v systému. Jakmile dojde k chybám, hacker je může využít k provedení vlastního kódu v systému.
Stříkání haldy funguje kvůli dynamickému přidělování paměti v systému. Počítačový program zatím v podstatě „vlastní“ celý blok paměti, takže hacker již zná relativní umístění v paměti, které počítač přidělil programu. Hacker proto potřebuje jen malou specifičnost, aby mohl zaklínit svůj kód do trhlin; umí slepě stříkat kód s vědomím, že blok paměti bude vždy existovat, dokud bude program pokračovat. To by se dalo přirovnat k pokusu vybrat si zámek se zavázanýma očima; úkol se stává téměř nemožným, pokud se zámek pohybuje kolem, ale dokud zůstane na jednom pevném místě - stejně jako hromada paměti v systému - úloha bude možná.