Što je raspršivanje na hrpu?

Raspršivanje hrpom je tehnika hakiranja koja se koristi za iskorištavanje ranjivosti računalnog softvera. Djeluje kako bi stekao kontrolu nad programom iskorištavanjem dijela njegove memorije. Nakon što je dio memorije kontroliran hakirajućim kodom, haker može preuzeti kontrolu nad izvršavanjem koda implementirajući prelijevanje međuspremnika u području hrpe memorije. Najčešća aplikacija za raspršivanje hrpa je hakiranje web preglednika kao što je Internet Explorer®.

“Huma” je dinamički blok memorije koji računalo dodjeljuje određenom programu, nazvan tako jer računalo programu posvećuje virtualnu hrpu memorije. Ovo se može zamisliti kao prostor za pohranu u ormaru ili stolu. Ova hrpa memorije pripada programu sve dok je softver ili kod za prikupljanje operacijskog sustava ne oslobode. Kôd za prikupljanje jednostavno je uređaj siguran od greške koji vraća memoriju ako se program sruši ili sam softver ne uspije osloboditi memoriju nakon što prekine korištenje.

Kod raspršivanja hrpe, haker pokušava “prskati” memorijsku hrpu određenim dijelom koda. Cilj je postaviti kod na određenu poziciju unutar memorijske hrpe programa, kao što je zabijanje poluge u rub okvira vrata kako bi se osigurala poluga za prisilno otvaranje vrata. Nakon što se informacije uglave u memorijsku hrpu raspršivanjem topline, haker tada može preplaviti hrpu ili cijeli memorijski međuspremnik, stvarajući pogreške unutar sustava. Jednom kada se pojave pogreške, haker ih može iskoristiti za izvršavanje vlastitog koda na sustavu.

Raspršivanje na hrpu funkcionira zbog dinamičke dodjele memorije u sustavu. Računalni program u biti trenutno “posjeduje” cijeli dio memorije, tako da haker već zna relativnu lokaciju unutar memorije koju je računalo dodijelilo programu. Stoga, hakeru treba malo specifičnosti kako bi zabio svoj kod u pukotine; on može naslijepo raspršivati ​​kod, znajući da će blok memorije uvijek biti tamo sve dok program nastavi raditi. To bi se moglo usporediti s pokušajem okidanja brave s povezom na očima; zadatak postaje gotovo nemoguć ako se brava pomiče, ali sve dok ostaje na jednom fiksnom mjestu – kao i hrpa memorije u sustavu – posao postaje moguć.