April 10
Prevenire buffer overflow è fondamentale per proteggere la sicurezza dei computer e server connesso e sono il risultato di una cattiva convalida dell'input. È possibile proteggere il sistema da attacchi di buffer overflow, seguendo pochi semplici passi e prendere i provvedimenti del caso. L'identificazione e la partecipazione alle problematiche della programmazione C del sistema è l'obiettivo principale per la prevenzione buffer overflow in futuro.
Questo metodo di prevenzione di overflow include uno stack che è configurato non tenere alcun codice eseguibile. Ottenere una patch kernal per i sistemi Linux e Solaris per configurare lo stack non eseguibile. In Windows XP, è possibile impostare i perimetri Data Execution Prevention con il sistema operativo (OS) per proteggere anche lo stack contro buffer overflow. Il sito Palisade avverte, tuttavia, che gli overflow heap-based e overflow segmento dati statici non può essere impedito da questa tecnica.
Prevenire buffer overflow mediante l'attuazione di un processo di prevenzione runtime dinamico sul sistema. condizioni di overflow buffer e rischi vengono rilevati durante l'esecuzione del programma stesso in questo metodo, impedendo così un attacco di overflow a verificarsi. Diversi processi di runtime includono "canarino" --- che aggiunge la linea "canarino" per la codifica del vostro programma --- e copiare l'indirizzo di ritorno del programma. Quest'ultimo metodo serve come un backup informazioni come mezzo per rigenerare la funzionalità programma dopo un attacco overflow è stato risolto.
buffer overflow possono anche essere evitati utilizzando una versione "più sicuro" o più stabile di una funzione programma. Ad esempio, la funzione strncpy e snprintf sono più sicuri e più stabile rispetto al strcpy e Sprint lingua più anziani. Come si continua creazione di nuove applicazioni nel programma, in modo che alternativa, le funzioni di codice più sicuro sono utilizzati in tutto.
Evitando "non sicuro" o la funzionalità del tutto instabile può anche prevenire overflow del buffer. Quando possibile, evitare di utilizzare le seguenti funzioni quando si scrive il programma: strcpy (), strcat (), sprintf (), scanf (), sscanf (), fscanf (), vfscanf (), vsprintf, vscanf (), vsscanf () , streadd (), strecpy () e strtrns ().