Wat is een stapelbufferoverloop?

Een overloop van een stapelbuffer is wat er gebeurt wanneer een programma een deelneemt in het geheugen van een computer 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 door een kwaadwillende applicatie worden benut om de controle over andere delen van de computer te nemen.

De naam van een stapelbufferoverloop is eerst afgeleid van de stapel, die effectief een actieve lijst is waarin gegevens worden georganiseerd: de term komt voort uit de analogie van het opstellen 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 oproepstapel tijdelijk werkt en snel toegankelijk is, bevindt deze zich in het geheugen van de computer in plaats van in permanente opslag zoals de harde schijf.

Omdat moderne besturingssystemen meerdere programma's tegelijk toestaan, is het nodig 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, en zorgt ervoor dat u wat extra ruimte achterlaat om het hoofd te bieden als bijvoorbeeld alle boeken over één onderwerp tegelijkertijd in de bibliotheek waren, in plaats van dat ze werden 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, uSually 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 voor het aantal tekens dat kan worden ingevoerd, kan een hacker het onbeperkte veld kunnen 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.

ANDERE TALEN