vulnerabilidades de estouro de buffer já existem há décadas e são freqüentemente usados por intrusos maliciosos. Os invasores podem comprometer e até mesmo controlar computadores remotos através de ataques de estouro de buffer . Prevenções e soluções alternativas são criadas para impedir a intrusão de estouro de buffer , incluindo hardware e sistemas de prevenção baseados em software e métodos. Primeiro de tudo , os desenvolvedores devem trabalhar para melhorar suas habilidades de codificação deve evitar erros de estouro de buffer nas aplicações . Ambiente de Desenvolvimento
mecanismos de codificação pode evitar vulnerabilidades de estouro de buffer. Abordagens sistemáticas pobres para as questões de segurança ou uso indevido de ferramentas de programação e linguagens inseguros são as causas das vulnerabilidades. Os programadores devem parar de usar linguagens de programação como C inseguros para lidar com a alocação de memória , em vez de usar nova linguagem como C # e Java.
Valores Canárias e Proteção Pointer
valores Canárias são também chamados de cookies de pilha, que é mais um meio impedindo ataques de estouro de buffer. Estes protegem os dados de controle de quadros de pilha , como endereço de retorno e ponteiro do quadro através da inserção de um valor em tempo de compilação . Eles agem como verificação de integridade para os dados de controle. Biscoitos Stack vai parar o programa instantaneamente quando os dados de controle é alterado.
Heap Implementação endurecimento
ataques de estouro de heap também são exploráveis . Da mesma forma, os desenvolvedores podem usar variações canário para parar excessos de pilhas . Os valores canário estão contidas em cada estrutura de informação pedaço . Os programadores podem aplicar os valores canário , colocando-os tanto no início e no final de informações pedaço . Aplicações comparar os canários , no início de cada quadro pedaço ao valor no final para assegurar que nada é alterado.
Não- executável Stack e Heap
Você pode evitar código malicioso seja executado na memória , simplesmente fazendo páginas de memória não-executável . Isto pode ser conseguido por meio de métodos de hardware ou de software . A maioria dos novos sistemas operacionais vêm com pré- instalados, técnicas não- executáveis página de memória. Sistemas operacionais mais recentes da Microsoft, incluindo o Vista, XP SP2 e Server SP1 , apresentam tais precauções de estouro de buffer.