Mikä on kasasuihkutus?

Kasasuihkutus on hakkerointitekniikka, jota käytetään tietokoneohjelmistojen haavoittuvuuksien hyödyntämiseen. Se toimii hallitakseen ohjelmaa hyödyntämällä osan sen muistista. Kun hakkerointikoodi ohjaa osaa muistista, hakkeri voi hallita koodin suorittamista toteuttamalla puskurin ylivuoton muistin kasa -alueelle. Yleisin kasasuihkutus on Internet -selainten, kuten Internet Explorer®, hakkerointi.

“Kasa” on dynaaminen muistilohko, jonka tietokone määrittää tietylle ohjelmalle, joten se on nimetty siksi, että tietokone omistaa ohjelmalle virtuaalisen kasan muistia. Tätä voidaan ajatella kuin säilytystilaa kaapissa tai työpöydällä. Tämä kasa muistia kuuluu ohjelmaan, kunnes joko ohjelmisto tai käyttöjärjestelmän kokoelma vapauttaa sen. Keräyskoodi on yksinkertaisesti vikaturvallinen laite, joka palauttaa muistin, jos ohjelma kaatuu tai ohjelmisto itse ei vapauta muistia käytön lopettamisen jälkeen.

Kasasuihkutuksessa hakkeri yrittää “suihkuttaa” muistikasan tietyllä koodiosalla. Tavoitteena on sijoittaa koodi tiettyyn paikkaan ohjelman muistikammioon, kuten kiilaamalla sulkuterä ovenkarmin reunaan, jotta vipu pakottaisi oven auki. Kun tiedot on kiinnitetty muistikammioon lämpöruiskutuksen avulla, hakkeri voi sitten ylittää joko kasan tai koko muistipuskurin ja aiheuttaa virheitä järjestelmässä. Kun virheitä ilmenee, hakkeri voi hyödyntää niitä suorittaakseen oman koodinsa järjestelmässä.

Kasasuihkutus toimii järjestelmän muistin dynaamisen varaamisen vuoksi. Tietokoneohjelma “omistaa” olennaisesti toistaiseksi koko muistin, joten hakkeri tietää jo suhteellisen sijainnin muistissa, jonka tietokone on määrittänyt ohjelmalle. Siksi hakkeri tarvitsee vähän tarkkuutta kiilatakseen koodinsa halkeamiin; hän voi sumuttaa koodin sokeasti tietäen, että muistilohko on aina olemassa niin kauan kuin ohjelma jatkuu. Tätä voitaisiin verrata siihen, että yritetään valita lukko silmät; tehtävä muuttuu lähes mahdottomaksi, jos lukko liikkuu ympäri, mutta niin kauan kuin se pysyy yhdessä kiinteässä paikassa – samoin kuin järjestelmän muistikasa – työstä tulee mahdollista.