introduktion till heltalsspill och underflöden
heltalsspill och underflödessårbarheter anses vara den åttonde farligaste sårbarheten i Common Weakness Enumeration (CWE) topp 25 lista över 2019. Dessa typer av sårbarheter skapas genom missbruk av variabla typer och kan utnyttjas för att kringgå skydd mot andra typer av sårbarheter, som buffertspill.
variabla typer och storlekar
varje programmeringsspråk har begreppet olika typer av variabler. Ett tecken, som kan innehålla textdata, skiljer sig mycket från ett heltal eller en flottör. Utöver dessa allmänna typer finns dock ytterligare skillnader mellan variabler, och dessa skillnader är det som gör heltalsspill och underflödessårbarheter möjliga.
de flesta programmeringsspråk har begreppet signerade och osignerade heltal. Ett signerat heltal (som namnet antyder) har ett tecken, så att det kan lagra både positiva och negativa värden. En osignerad variabel kan å andra sidan bara lagra positiva tal.
som visas i bilden ovan skrivs signerade och osignerade variabler av en given storlek identiskt i en dators minne. Den enda skillnaden är hur värdet tolkas. I ett signerat värde betyder en ledande ett negativt tal, medan i ett osignerat värde betyder en på första platsen bara ett stort antal.
den andra huvudskillnaden mellan olika ”heltal” variabla typer är storleken på det värde som de kan innehålla. Programmeringsspråk har begreppen kort, heltal, lång och bortom, som var och en definierar storleken på minnesutrymmet som tilldelats för den variabeln och det värdeområde som den kan innehålla.
heltalsspill och underflöden
heltalsspill och underflöde sårbarheter koka ner till osäker konvertering mellan signerade och osignerade variabler och heltal variabla typer av olika storlekar. Det är i allmänhet tillåtet att konvertera mellan dessa olika typer och i många fall (Läs mer…)