Buffer overflow forårsake uventet programmet atferd som følge av feilaktig overskriver minne. En buffer er en sammenhengende blokk med minne om en fast størrelse som brukes til å lagre data , for eksempel en streng med tegn . Programmeringsspråket C kan du skrive noen data til buffer, selv om det er for large.In tillegg til å gjøre programmet krasjer, kan angripere bruke buffer overflow å kjøre ondsinnet kode på systemer som kjører programmet . Til tross for alle forsøk på å beskytte mot buffer overflow utnytter, er det fortsatt en vanlig utnyttet angrepet vector.In C , kan buffer overflow reduseres ved å følge beste praksis for sikker koding . Instruksjoner
en
Unngå C-biblioteket funksjoner strcpy , strcat , sprtinf , vsprintf , får og scanf . Disse funksjonene er usikre og ikke utfør grensekontroll før du skriver inn til eller lese fra en buffer , noe som resulterer i buffer overflow . Grensekontroll er en metode for å bruke betinget utsagn - som om , da - for å sjekke om en lese eller skrive er innenfor grensen av buffer
2
ugyldig kode kjøres fra bunken . . Stabelen er der minnet som buffere lagres mens søknaden blir utført. Skadelig kode utføres ved å skrive den inn i stabelen, hvor det da er utført. Selv om gjennomføring kan være vanskelig, noen versjon av Linux og Gnu C Compiler ( GCC ) er tilgjengelig som kan forhindre dette .
3
Bruk en compilar som vil se etter potensielle buffer overflow forhold. Utvidelser og oppdateringer er tilgjengelige for C -kompilatorer , for eksempel C , advarer om at du når du bruker usikre funksjon og forsøk på å utføre grensekontroll i koden.
4
Bruk gratis programmer som Stack Shield og Stack vokte å oppdage og beskytte mot buffer overflow . ( Se Resources . )