Ricerca di buffer overflow è una parte importante di garantire che il vostro programma è al sicuro da attacchi e urti accidentali . Un buffer overflow si verifica quando i dati vengono inseriti in una stringa o un array senza controllare confini , e la lunghezza di ingresso è maggiore del buffer è di tentare di copiare in . Trovare punti in cui possono verificarsi buffer overflow è fatto con la ricerca di funzioni non sicure come " cambiato", analizzando i limiti di controllo su funzioni quali " strncpy " e accuratamente testare il programma con diversi tipi di input. Istruzioni
1
Cerca il codice del programma per le funzioni pericolose come " si ", " scanf ", " strcpy ", " strcat ", " sprintf " e " strlen ". Queste funzioni non hanno alcun controllo limiti incorporato e sono adatti solo quando il 100 per cento degli utenti del programma sono fidato e crash occasionali può essere tollerato. Fornire il controllo dei limiti stessi controllando che la lunghezza di input non è maggiore della lunghezza del buffer disponibile .
2
Indagare eventuali chiamate al limite funzioni quali " strncpy ", " strncat " e " snprintf di controllo . " Assicurarsi che la fine della matrice di input riceve un byte null . Limiti sbagliato Controllo possono portare a mancanti byte nulli o uno posta dopo la fine della matrice . Quando si combinano le stringhe , verificare che l'assegno limiti utilizza la stringa di lunghezza totale meno contenuto pre - esistente della stringa , anziché utilizzare l'intera lunghezza della stringa di verificare i limiti .
3
test il programma inserendo eccezionalmente grandi ingressi e vedere se si blocca , diventa corrotto o visualizza l'attività insolite . Annotare l'indirizzo di eventuali crash per vedere se corrisponde con cui il programma elabora i dati di input. Programmi come ruvida Auditing Tool per la sicurezza , anche conosciuto come "topi ", possono eseguire la scansione del codice e le posizioni di bandiera , che sono forse vulnerabili a buffer overflow .