Bufferoverløb forårsage uventet program adfærd som følge af en uhensigtsmæssig overskrive hukommelsen. En puffer er en sammenhængende blok af hukommelse af en fast størrelse, der anvendes til at lagre data , såsom en streng af tegn . C programmeringssprog tillader dig at skrive data til bufferen , selv om det er for large.In over at gøre dit program ned, kan hackere bruge bufferoverløb at udføre ondsindet kode på systemer, der kører dit program. Trods alle forsøg på at beskytte mod buffer overflow exploits , er det stadig en almindeligt udnyttet angreb vector.In C , kan bufferoverløb afbødes ved at følge bedste praksis for sikker kodning. Instruktioner
1
Undgå C bibliotek funktioner strcpy , strcat , sprtinf , vsprintf , får og scanf . Disse funktioner er usikre og ikke udfører kontrol af grænser , før du skriver input til eller læsning fra en buffer , hvilket resulterer i buffer overflow . Bounds kontrol er en metode til at bruge betingede udsagn - såsom hvis , så - for at kontrollere, om en læse eller skrive er inden for bundet af bufferen
2
afkræfter kode eksekveres fra stakken . . Stakken er, hvor hukommelsen , såsom buffere gemmes mens din ansøgning udfører . Skadelig eksekveres ved at skrive det ind i stakken , hvor det derefter udføres . Selv om gennemførelsen kan være svært, en version af Linux og GNU C Compiler ( GCC) er til rådighed, kan forhindre dette.
3
Brug en compilar der vil kontrollere for potentielle buffer overflow forhold. Udvidelser og patches er tilgængelige for C compilere , såsom C , der advarer dig, når du bruger usikker funktion og forsøger at udføre kontrol af grænser i din kode .
4
bruge gratis programmer såsom Stack Shield og Stack Guard at opdage og beskytte mod buffer overflow . ( Se Resources ).