Mikä on pinopuskurin ylivuoto?

Pinopuskurin ylivuoto tapahtuu, kun ohjelma tekee tietokoneen muistiin merkinnän, joka on pidempi kuin varattu tila. Joissakin olosuhteissa tämä voi vioittaa muita muistissa olevia tietoja ja aiheuttaa ongelmia tietokoneen käytössä. Muissa tapauksissa haittaohjelma voi hyödyntää pinopuskurin ylivuotoa hallitakseen tietokoneen muita osia.

Nimi pinopuskurin ylivuotosta tulee ensin pinosta, joka on käytännössä aktiivinen luettelo, johon tiedot on järjestetty: termi tulee fyysisten kohteiden kasaamisen analogiasta. Yksi versio tästä, puhelupino, on luettelo, jota tietokoneohjelma käyttää seuratakseen ohjelman eri osia, aliohjelmia, jotka toimivat milloin tahansa. Koska puhelupino toimii tilapäisesti ja siihen on päästävä nopeasti käsiksi, se sijaitsee tietokoneen muistissa eikä pysyvässä tallennustilassa, kuten kiintolevyllä.

Koska nykyaikaiset käyttöjärjestelmät mahdollistavat useiden ohjelmien suorittamisen kerralla, on tarpeen järjestää tapa, jolla muisti jaetaan, mukaan lukien soittopinoille. Tämä tehdään tehokkaasti määrittämällä puskureita, muistissa oleva tila, joka on suunniteltu riittävän suureksi selviytymään tietyn puskurin vaatimasta enimmäistilasta. Useimmissa tapauksissa osa tilasta jää käyttämättä, joten se toimii puskurina eri sovellusten tietojen välillä, jättäen tilaa selviytyä, jos yhtäkkiä tarvitaan lisätilaa. Yksi tapa visualisoida se olisi ajatella kirjastoa, joka myönsi tietyn määrän tilaa kullekin aihealueelle ja varmista, että jätät ylimääräistä tilaa selviytyä, jos esimerkiksi kaikki yhden aiheen kirjat olisivat kirjastossa samaan aikaan sen sijaan, että ketään heistä tarkastettaisiin.

Pinopuskurin ylivuoto tapahtuu, kun ohjelma kirjoittaa puhelupinon tiedot puskuriin tavalla, joka ylittää varatun tilan. Tämä voi tapahtua vahingossa, yleensä ohjelman virheen kautta. Jos esimerkiksi sovellus on suunniteltu sallimaan käyttäjän kirjoittaa puhelinnumero, mutta sillä ei ole rajoitusta syötettävien merkkien määrälle, hakkeri saattaa pystyä käyttämään rajoittamatonta kenttää tarkoituksellisesti aiheuttamaan pinopuskurin ylivuoto . Käyttöjärjestelmän toiminnasta riippuen hakkeri voi välillisesti käyttää toista sovellusta tai itse käyttöjärjestelmää.

On olemassa useita lähestymistapoja pinon puskurin ylivuoton vaikutusten lieventämiseksi. Yksi tunnetaan osoitetilan asettelun satunnaistamisena. Tämä järjestää tietokoneen tärkeimmät tietoalueet satunnaisella tavalla. Ajatuksena on, että vaikka hakkeri aiheuttaa tai hyödyntää pinopuskurin ylivuotoa, hän ei pysty hyödyntämään rikkomusta luotettavasti.