Buffertspill orsaka oväntade program beteende som en följd av olämpligt överskrivning minne . En buffert är ett sammanhängande block av minne av en fast storlek används för att lagra data, till exempel en sträng av tecken . Programspråket C kan du skriva data till bufferten , även om det är för large.In Förutom att göra ditt program kraschar , kan angripare använda buffertspill för att köra skadlig kod på datorer med ditt program . Trots alla försök att skydda från attacker buffer overflow , är det fortfarande ett vanligt utnyttjade attack vector.In C , kan buffertspill mildras genom att följa bästa praxis för säkra kodning . Instruktioner
1
Undvik C-biblioteksfunktionerna strcpy , strcat , sprtinf , vsprintf , får och scanf . Dessa funktioner är osäkra och inte utför gränskontroll innan du skriver in till eller läser från en buffert , vilket resulterar i buffertspill . Gränskontroller är en metod att använda villkorssatser - som om , då - för att kontrollera om en läsa eller skriva är inom gränsen för bufferten
2
ogiltig kod exekveras från stapeln . . Stacken är där minnet såsom buffertar lagras medan programmet körs . Skadlig kod exekveras genom att skriva in i stapeln , där den senare kan exekveras. Även om genomförandet kan vara svårt , någon version av Linux och GNU C kompilatorn ( GCC ) är tillgängliga som kan förhindra detta .
3
Använd en compilar som kommer att kontrollera för potentiella förhållanden buffer overflow . Extensions och patchar finns tillgängliga för C -kompilatorer , såsom C , som varnar dig när du använder osäker funktion och försöker utföra gränskontroll i din kod .
4
använda gratis program som stack Shield och Stack vakt för att upptäcka och skydda mot buffertspill . ( Se Resurser . ) Katalog