Arresto buffer overflow aiuta a prevenire crash del programma e gli hacker di rilasciare il codice dannoso che può compromettere un sistema informatico. Un buffer overflow è quando un programma scrive i dati in un buffer , comunemente una stringa o un array, e supera la lunghezza del tampone , la scrittura di codice nella memoria adiacente . Prevenire buffer overflow si ottiene utilizzando librerie di programmazione che la protezione buffer di supporto , avendo la protezione dello spazio eseguibile e scegliendo i linguaggi di programmazione che hanno il controllo dei limiti . Istruzioni
1
Scegliere un linguaggio di programmazione che è dotato di controlli per impedire la scrittura dei dati al di fuori dei confini di un buffer . Linguaggi come C e C + + mancanza built-in controllo di confine . L' . NET Framework e forza ambienti Java il controllo dei limiti . I linguaggi interpretati hanno protezione da buffer overflow .
2
Seleziona librerie e le funzioni che hanno la gestione del buffer e il controllo dei limiti . Le funzioni C di uso comune " strcpy " , " scanf " e " diventa " sono particolarmente vulnerabili a buffer overflow . Alternative più sicure sono le funzioni " strncat " " strncpy " e , che scarta i dati che superano la lunghezza specificata. La cura deve ancora essere presa per specificare la dimensione del buffer corretta . Un esempio di un'alternativa più sicura per la libreria stringa C è il libero scaricabile " The Better String Biblioteca ".
3
installazione eseguibile protezione spazio add-on per aiutare a prevenire i buffer overflow . Codice di tentare di eseguire dallo stack o heap causare un'eccezione. Protezione spazio eseguibile utilizza il " No Execute" ( NX bit) per marcare le regioni della memoria come non eseguibile. Esempi di pacchetti eseguibili protezione spazio per Unix includono OpenWall , Exec Shield e Pax . Componenti aggiuntivi per Windows includono StackDefender e BufferShield . Dal momento che Windows XP Service Pack 2 , Windows offre Execution Prevention ( DEP ) , che fornisce una certa protezione buffer overflow .