Mis on virnapuhvri ületäitumine?

Viru puhvri ületäitumine on see, mis juhtub siis, kui programm teeb arvuti mällu kirje, mis on eraldatud ruumist pikem. Mõnel juhul võib see rikkuda muid mälus olevaid andmeid, põhjustades probleeme arvuti töös. Muudel juhtudel võib pahatahtlik rakendus kasutada virnapuhvri ületäitumist arvuti muude osade kontrollimiseks.

Viru puhvri ületäitumise nimi tuleneb kõigepealt virust, mis on tegelikult aktiivne loend, milles andmed on korraldatud: termin tuleneb füüsiliste üksuste kuhjamise analoogiast. Selle üks versioon, kõnepinn, on loend, mida arvutiprogramm kasutab programmi erinevate osade, alamprogrammide jälgimiseks, mis konkreetsel hetkel töötavad. Kuna kõnepinn töötab ajutiselt ja sellele tuleb kiiresti juurde pääseda, asub see pigem arvuti mälus kui alalises mälus, näiteks kõvakettal.

Kuna kaasaegsed operatsioonisüsteemid võimaldavad korraga töötada mitmel programmil, on vaja korraldada mälu eraldamise viise, sealhulgas virnade kutsumiseks. Seda tehakse tõhusalt puhvrite määramisega, mis on mäluruum, mis on piisavalt suur, et tulla toime konkreetse puhvri jaoks vajaliku maksimaalse ruumiga. Enamikul juhtudel jääb osa ruumist kasutamata, seega toimib see puhvrina erinevate rakenduste andmete vahel, jättes ruumi toimetulekuks, kui mõni äkitselt lisaruumi vajab. Üks viis selle visualiseerimiseks oleks mõelda raamatukogule, mis eraldaks igale ainevaldkonnale teatud hulga ruumi, jättes sellega toimetulekuks lisaruumi, kui näiteks kõik ühe teema raamatud oleksid raamatukogus samal ajal, mitte ühtegi neist välja registreerida.

Viru puhvri ületäitumine tekib siis, kui programm kirjutab puhvrisse kõnevirna andmed viisil, mis ületab eraldatud ruumi. See võib juhtuda kogemata, tavaliselt programmi vea tõttu. Näiteks kui rakendus on loodud nii, et kasutaja saaks sisestada telefoninumbri, kuid sellel pole piirangut sisestatavate märkide arvule, võib häkker kasutada piiramatut välja, et tahtlikult põhjustada virnapuhvri ületäitumist. . Olenevalt operatsioonisüsteemi tööviisist võib see võimaldada häkkeril kaudselt juurde pääseda kas teisele rakendusele või operatsioonisüsteemile endale.

Viru puhvri ületäitumise mõju leevendamiseks on mitu lähenemisviisi. Üks on tuntud kui aadressiruumi paigutuse randomiseerimine. See korraldab arvutis juhuslikult kõige olulisemad andmepiirkonnad. Idee seisneb selles, et isegi kui häkker põhjustab või kasutab pinupuhvri ületäitumist, ei saa ta rikkumist usaldusväärselt ära kasutada.