Home

stackbeschadiging

Stackbeschadiging is een vorm van geheugenbeschadiging die de stapel (stack) van een programma aantast. De stapel is een gebied in het geheugen dat wordt gebruikt voor het bewaren van lokale variabelen, functieparameters en return-adressen tijdens functiemelwerkingen. Bij stackbeschadiging kunnen de inhoud en structuur van de stapel zodanig worden aangetast dat de controle-flow of gegevensintegriteit verstoord raken, wat kan leiden tot een crash of tot het mogelijk uitvoeren van kwaadaardige code.

De meeste gevallen ontstaan door buffer-overflows op de stapel, bijvoorbeeld bij ongebonden kopiëren van gegevens naar

Gevolgen variëren van crashes en onverwacht gedrag tot beveiligingsrisico's zoals afstands-gebaseerde uitvoering van code of het

Detectie en mitigatie gebeuren via runtime-boundscontroles en speciale beschermingen zoals stack canaries, die de integriteit van

een
lokale
buffer
(bijv.
char
buf[64];
strcpy(buf,
input);).
Ook
foutieve
pointer-
of
indexberekeningen,
off-by-one
fouten
en
format
string
kwetsbaarheden
kunnen
de
stapel
beschadigen.
Daarnaast
kunnen
exploits
voortkomen
uit
het
overschrijven
van
het
return-adres
of
saved
frame
pointer.
lekken
van
geheime
gegevens.
In
systemen
kan
stackbeschadiging
leiden
tot
kern
dumps
of
beveiligingswaarschuwingen.
het
stapelframe
controleren.
Compiler-opties
zoals
-fstack-protector
(GCC/Clang)
en
opties
voor
MSVC
dragen
bij
aan
detectie,
terwijl
ASLR,
NX/DEP
en
control-flow-guarding
de
kans
op
een
succesvolle
aanval
verkleinen.
Het
vermijden
van
kwetsbare
talen
en
het
toepassen
van
veilige
programmeerpraktijken,
zoals
bounded
arrays
en
het
gebruik
van
veilige
standaardfuncties,
verminderen
het
risico
op
stackbeschadiging.