Prevenção de estouro de buffer é fundamental para proteger a segurança de seu computador eo servidor conectado e são o resultado de validação de entrada pobres. Você pode proteger seu sistema contra ataques de estouro de buffer , seguindo alguns passos simples e tomar a ação apropriada. Identificar e atender às questões em C programação do seu sistema é o foco principal para a prevenção de estouro de buffer no futuro. Usando um não-executável Stack
Este método de prevenção estouro inclui uma pilha que está configurado para não realizar qualquer código executável. Obter um patch kernal para sistemas Linux e Solaris para configurar a pilha não- executável. No Windows XP , você pode definir os perímetros de prevenção de execução de dados com o sistema operacional ( OS) para também proteger a pilha contra estouro de buffer. O site Palisade adverte , no entanto, que transborda baseados em heap e estouros segmento de dados estático não pode ser impedido por esta técnica.
Dinâmico Runtime
Prevent buffer overflow através da implementação de um processo de prevenção dinâmica em tempo de execução em seu sistema. São detectadas condições de estouro de buffer e riscos durante a execução do programa real neste método , evitando assim um ataque de estouro de ocorrer. Processos de execução diferentes incluem " canário " --- que adiciona a linha " canário " a codificação do seu programa --- e copiar endereço de retorno do programa. O último método serve como um backup de informações como um meio para regenerar a funcionalidade do programa uma vez que um ataque de estouro foi resolvido.
Versões seguras de funções
buffer overflows também pode ser evitada através da utilização de uma versão " mais seguras ", ou mais estável de uma função de programa . Por exemplo, o strncpy funções e snprintf são mais seguros e mais estável do que o strcpy mais velho e língua sprint. Como você continuar a criar novas aplicações em seu programa, garantir que alternativa , funções de código mais seguros são usados por toda parte.
Outros exemplos de funções instáveis
Evitar "inseguro" ou instável funcionalidade completamente também pode evitar estouro de buffer. Sempre que possível , evite usar as seguintes funções ao escrever o seu programa : strcpy () , strcat () , sprintf ( ) , scanf () , sscanf () , fscanf () , vfscanf () , vsprintf , vscanf () , vsscanf () , streadd () , strecpy () e strtrns ().