Skip to main content

Hva er en stabelbufferoverløp?

En stabelbufferoverløp er det som skjer når et program foretar en inntreden i et datamaskinminne som er lengre enn det tildelte rommet.I noen tilfeller kan dette ødelegge andre data i minnet og forårsake problemer i datamaskinen.I andre tilfeller kan en stabelbufferoverløp utnyttes av en ondsinnet applikasjon for å ta kontroll over andre deler av datamaskinen.

Navnet fra en stabelbufferoverløp stammer først fra stabelen, som effektivt er en aktiv liste der data er organisert: Begrepet kommer fra analogien med å hylle fysiske gjenstander.Én versjon av dette, Call Stack, er listen som et dataprogram bruker for å holde rede på de forskjellige delene av programmet, underrutinene, som fungerer i et bestemt øyeblikk.Ettersom anropsstabelen fungerer midlertidig og må nås raskt, ligger den i datamaskinens minne i stedet for i permanent lagring som harddisken.

fordi moderne operativsystemer gjør det mulig for flere programmer å kjøre samtidig, der derer et behov for å organisere måten minnet blir tildelt, inkludert å ringe stabler.Dette gjøres effektivt ved å tilordne buffere, et rom i minnet designet for å være stort nok til å takle det maksimale rommet som kreves av en bestemt buffer.I de fleste tilfeller vil noe av plassen være ubrukt, så det fungerer som en buffer mellom dataene fra forskjellige applikasjoner, og etterlater rom for å takle hvis man plutselig krever ekstra plass.En måte å visualisere det på ville være å tenke på et bibliotek som tildelte en viss plass til hvert fagområde, og sørg for å legge igjen litt ekstra rom for å takle hvis for eksempel alle bøkene om ett emne var i biblioteket påSamtidig, snarere enn at noen av dem blir sjekket ut.

En stabelbufferoverløp oppstår når et program skriver Call Stack -data til bufferen på en måte som overstiger det tildelte rommet.Dette kan skje ved en feiltakelse, vanligvis gjennom en feil i et program.For eksempel, hvis en applikasjon er designet for å la brukeren skrive inn et telefonnummer, men ikke har noen grense for antall tegn som kan legges inn, kan en hacker være i stand til å bruke det ubegrensede feltet for å med vilje føre til at en stabelbufferoverløp.Avhengig av hvordan operativsystemet fungerer på, kan dette tillate hackeren å indirekte få tilgang til enten en annen applikasjon eller selve operativsystemet.

Det er flere tilnærminger for å dempe mot effekten av en stabelbufferoverløp.Den ene er kjent som adresse romoppsett randomisering.Dette arrangerer de viktigste områdene med data på datamaskinen på en tilfeldig måte.Tanken er at selv om en hacker forårsaker eller utnytter en stabelbufferoverløp, vil han ikke kunne utnytte bruddet på en pålitelig måte.