Procurando estouro de buffer é uma parte importante de garantir que o seu programa é seguro contra ataques e falhas acidentais. Um buffer overflow ocorre quando os dados são inseridos em uma string ou array sem limites de verificação , eo comprimento de entrada é maior do que o buffer está tentando copiar para . Encontrar pontos onde estouros de buffer pode ocorrer é feito olhando para as funções perigosas , como " fica ", analisando os verificação de limites em funções como " strncpy " e completamente testar seu programa com diferentes tipos de entrada. Instruções
1
Pesquisar o código do seu programa para as funções perigosas, como "pega ", " scanf ", " strcpy ", " strcat ", " sprintf " e " strlen ". Estas funções não têm quaisquer limites internos de verificação e só são apropriados quando 100 por cento dos usuários do programa são confiáveis e crashes ocasionais podem ser tolerados. Fornecer verificação de limites a si mesmo , verificando que o comprimento de entrada não é maior do que o comprimento do buffer disponível.
2
Investigar todas as chamadas para funções como limites " strncpy ", " strncat " e " snprintf verificação " . Certifique-se de que a extremidade da matriz de entrada recebe um byte nulo . Incorrectos verificação de limites pode levar a falta bytes nulos ou um colocado após o final da matriz . Ao combinar cordas , certifique-se que o cheque limites usa o comprimento total seqüência de menos conteúdo pré- existente da corda, em vez de usar todo o comprimento da corda , como os limites verificar.
3
Teste seu programa introduzindo excepcionalmente grandes entradas e ver se ele trava , se corromper ou exibe atividade incomum . Anote o endereço de todos os acidentes para ver se ele corresponde com o local onde o programa processa os dados de entrada . Programas como áspera Ferramenta Auditoria de Segurança , também conhecido como " ratos", pode escanear o código e bandeiras locais que são possivelmente vulneráveis a estouros de buffer.