Søker etter bufferoverflyter er en viktig del av å sikre at programmet er trygt fra angrep og utilsiktede krasjer. En buffer overflow oppstår når data settes inn i en streng eller array uten grenser kontroll, og inn- lengden er større enn bufferen det forsøker å kopiere inn . Finne stedene der buffer overflow kan oppstå er gjort ved å se etter usikre funksjoner som "får ", som analyserer grensekontroll på funksjoner som " strncpy " og grundig testing program med ulike typer innspill . Instruksjoner
en
Søk programmets kode for farlige funksjoner som "får ", " scanf ", " strcpy ", " strcat ", " sprintf " og " strlen . " Disse funksjonene mangler noen innebygde grensekontroller og er bare aktuelt når 100 prosent av programmets brukere er klarert og sporadiske krasjer kan tolereres . Gi grensekontroll deg selv ved å sjekke at inngangen lengden er ikke større enn tilgjengelig buffer lengde.
2
Undersøke eventuelle samtaler til grensekontroll funksjoner som " strncpy ", " strncat " og " snprintf . " Sørg for at enden av inndatatabell mottar en null byte . Uriktige grensekontroller kan føre til manglende null byte eller en plassert etter slutten av tabellen . Når man kombinerer strykere, sørge for at grensene sjekken bruker total strenglengde minus strengens eksisterende innhold , i motsetning til å bruke hele strenglengde som grensene sjekke.
3
Test programmet ved å skrive eksepsjonelt store innganger og se om det krasjer, blir skadet eller viser uvanlig aktivitet . Merk deg adressen til noen krasjer for å se om det samsvarer med hvor programmet behandler inndata . Programmer som Rough revisjon verktøy for sikkerhet , også kjent som " rotter ", kan skanne koden og flagg steder som er muligens utsatt for buffer overflow .