Introduktion til heltalsoverløb og understrømme
sårbarheder i heltalsoverløb og understrøm betragtes som den ottende farligste sårbarhed i top 25-listen over almindelige Svaghedstal i 2019. Disse typer af sårbarheder er skabt ved misbrug af variable typer og kan udnyttes til at omgå beskyttelse mod andre typer af sårbarheder, som bufferoverløb.
Variable typer og størrelser
hvert programmeringssprog har begrebet forskellige typer variabler. Et tegn, der kan indeholde tekstdata, er meget forskelligt fra et heltal eller en flyde. Ud over disse generelle typer er der imidlertid yderligere forskelle mellem variabler, og disse forskelle er det, der gør heltalsoverløb og understrømssårbarheder mulige.
de fleste programmeringssprog har begrebet signerede og usignerede heltal. Et underskrevet heltal (som navnet antyder) har et tegn, der gør det muligt at gemme både positive og negative værdier. En usigneret variabel kan derimod kun gemme positive tal.
som vist på billedet ovenfor skrives underskrevne og usignerede variabler af en given størrelse identisk i en computers hukommelse. Den eneste forskel er, hvordan værdien fortolkes. I en signeret værdi betyder en førende et negativt tal, mens i en usigneret værdi betyder en på det første sted bare et stort tal.
den anden hovedskel mellem forskellige “heltal” variabeltyper er størrelsen på den værdi, de kan indeholde. Programmeringssprog har begreberne kort, heltal, langt og videre, som hver især definerer størrelsen på det hukommelsesplads, der er tildelt for den variabel, og det interval af værdier, den kan indeholde.
heltalsoverløb og understrømme
sårbarheder for heltalsoverløb og understrøm koges ned til usikker konvertering mellem signerede og usignerede variabler og heltalsvariabeltyper i forskellige størrelser. Det er generelt tilladt at konvertere mellem disse forskellige typer og i mange tilfælde (Læs mere…)