Modi per prevenire overflow del buffer

April 10

Modi per prevenire overflow del buffer


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.

Utilizzando un non eseguibili Stack

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.

Runtime dinamica

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.

Versioni sicuro delle funzioni

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.

Altri esempi di funzioni instabili

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 ().