Skip to main content

Wat is een stapelbufferoverloop?

Een stapelbufferoverloop is wat er gebeurt wanneer een programma een deelneemt in een computersgeheugen dat langer is dan de toegewezen ruimte.In sommige omstandigheden kunnen dit andere gegevens in het geheugen beschadigen, waardoor problemen bij de run van de computer kunnen worden veroorzaakt.In andere gevallen kan een stapelbufferoverloop worden benut door een kwaadaardige applicatie om de controle over andere delen van de computer te nemen.

De naam van een stapelbufferoverloop komt eerst af van de stapel, wat effectief een actieve lijst is waarin gegevens zijn georganiseerd: De term komt van de analogie van het opstapelen van fysieke items.Een versie hiervan, de call stack, is de lijst die een computerprogramma gebruikt om de verschillende delen van het programma bij te houden, de subroutines, die op een bepaald moment werken.Aangezien de call -stack op tijdelijke basis werkt en snel moet worden toegankelijk, bevindt deze zich in het computersgeheugen in plaats van in permanente opslag zoals de harde schijf.

omdat moderne besturingssystemen mogelijk maken dat meerdere programma's meteen worden uitgevoerd, daar, daar, daar, daaris een behoefte om de manier waarop geheugen wordt toegewezen te organiseren, inclusief om stapels te bellen.Dit wordt efficiënt gedaan door buffers toe te wijzen, een ruimte in het geheugen dat is ontworpen om groot genoeg te zijn om het hoofd te bieden aan de maximale ruimte die een bepaalde buffer vereist.In de meeste gevallen zal een deel van de ruimte ongebruikt zijn, dus het fungeert als een buffer tussen de gegevens van verschillende toepassingen, waardoor ruimte wordt om het hoofd te bieden als men plotseling extra ruimte vereist.Een manier om te visualiseren zou zijn om aan een bibliotheek te denken die een bepaalde hoeveelheid ruimte aan elk vakgebied heeft toegewezen, waardoor u wat extra ruimte overlaat om het hoofd te bieden als bijvoorbeeld alle boeken over één onderwerp in de bibliotheek in de bibliotheek warendezelfde tijd, in plaats van dat een van hen wordt uitgecheckt.

Een stapelbufferoverloop treedt op wanneer een programma call stack -gegevens naar de buffer schrijft op een manier die de toegewezen ruimte overschrijdt.Dit kan per ongeluk gebeuren, meestal via een bug in een programma.Als een applicatie bijvoorbeeld is ontworpen om de gebruiker in staat te stellen een telefoonnummer in te typen, maar geen limiet heeft op het aantal tekens dat kan worden ingevoerd, kan een hacker het onbeperkte veld gebruiken om opzettelijk een stapelbufferoverloop te veroorzaken.Afhankelijk van de manier waarop het besturingssysteem werkt, kan dit de hacker in staat stellen indirect toegang te krijgen tot een andere applicatie of het besturingssysteem zelf.

Er zijn verschillende benaderingen om de effecten van een stapelbufferoverloop te verzachten.Eén staat bekend als randomisatie van de adresruimte.Dit rangschikt de belangrijkste gegevensgebieden op een willekeurige manier op de computer.Het idee is dat zelfs als een hacker een stapelbufferoverloop veroorzaakt of exploiteert, hij de inbreuk niet op een betrouwbare manier zal kunnen exploiteren.