Mis on hunniku pihustamine?

Kuhjaga pihustamine on häkkimistehnika, mida kasutatakse arvutitarkvara haavatavuste ärakasutamiseks. See toimib programmi üle kontrolli saamiseks, kasutades ära osa selle mälust. Kui osa mälust on häkkimiskoodiga kontrollitud, saab häkker koodi täitmise kontrolli alla võtta, rakendades mälu hunnikus puhvri ülevoolu. Kõige tavalisem hunniku pihustamise rakendus on veebibrauserite (nt Internet Explorer®) häkkimine.

“Kuhja” on dünaamiline mäluplokk, mille arvuti määrab konkreetsele programmile ja mida nimetatakse seetõttu, et arvuti pühendab programmile virtuaalse hunniku mälu. Seda võib pidada hoiuruumiks kapis või lauas. See mäluhunnik kuulub programmile seni, kuni tarkvara või operatsioonisüsteemi kogukood selle vabastab. Kogumiskood on lihtsalt tõrkekindel seade, mis võtab mälu tagasi, kui programm jookseb kokku või kui tarkvara ise ei suuda pärast kasutamise lõpetamist mälu vabastada.

Kuhja pritsimisel üritab häkker mäluhunnikut konkreetse koodiosaga “pihustada”. Eesmärk on asetada kood programmi mäluhunnikus kindlasse kohta, näiteks kiiluda raudkang ukseraami serva, et pakkuda hooba ukse avamiseks. Pärast seda, kui teave on kuumuse pihustamise kaudu mäluhunnikusse kiilunud, võib häkker kas kuhja või kogu mälupuhvri üle täita, tekitades süsteemis vigu. Kui vead ilmnevad, saab häkker neid ära kasutada, et käivitada süsteemis oma kood.

Kuhja pihustamine töötab tänu süsteemis dünaamilisele mälu jaotamisele. Arvutiprogramm sisuliselt “omab” esialgu kogu mälumahu, nii et häkker teab juba suhtelist asukohta mälus, mille arvuti on programmile määranud. Seetõttu vajab häkker vähe spetsiifilisust, et oma koodi pragudesse kiiluda; ta võib koodi pimesi pihustada, teades, et mäluplokk on alati olemas, kuni programm töötab. Seda võiks võrrelda katsega kinniseotud silmadega lukku valida; ülesanne muutub peaaegu võimatuks, kui lukk ringi liigub, kuid seni, kuni see püsib ühes kindlas kohas – nagu ka süsteemis olev mäluhunnik – on töö võimalik.