0 оценок0% нашли этот документ полезным (0 голосов)
42 просмотров3 страницы
O documento discute o problema de estouro de buffer em linguagens de programação, como o C. Estouro de buffer ocorre quando entrada de dados excede o espaço de memória alocado para variáveis, podendo causar falhas no sistema ou executar código malicioso. As melhores formas de evitar incluem validação de entrada e definir ações para quando ocorre estouro. Corrigir esta vulnerabilidade de forma ampla é difícil devido a sua presença em muitas linguagens e sistemas.
O documento discute o problema de estouro de buffer em linguagens de programação, como o C. Estouro de buffer ocorre quando entrada de dados excede o espaço de memória alocado para variáveis, podendo causar falhas no sistema ou executar código malicioso. As melhores formas de evitar incluem validação de entrada e definir ações para quando ocorre estouro. Corrigir esta vulnerabilidade de forma ampla é difícil devido a sua presença em muitas linguagens e sistemas.
O documento discute o problema de estouro de buffer em linguagens de programação, como o C. Estouro de buffer ocorre quando entrada de dados excede o espaço de memória alocado para variáveis, podendo causar falhas no sistema ou executar código malicioso. As melhores formas de evitar incluem validação de entrada e definir ações para quando ocorre estouro. Corrigir esta vulnerabilidade de forma ampla é difícil devido a sua presença em muitas linguagens e sistemas.
Estouro de buffer uma condio comum a linguagens de programao estruturadas.
Ocorre quando a entrada aplicada a uma varivel maior que o espao de memria destinado a ela. Quando um invasor envia entradas alm do alcance esperado do valor, o sistema-alvo do ataque pode entrar em colapso ou executar o cdigo malicioso inserido pelo agressor. O bug do estouro de buffer foca variveis usadas por funes para armazenar valores. Variveis definidas em uma funo aceitam valores dos usurios ou os geram automaticamente. Essas variveis so associadas a um espao de memria fixo a fim de armazenar os dados a elas atribudos. As melhores formas de evitar ou manejar com um estouro de buffer esto relacionadas programao: manter uma verificao que garanta no haver valor especificado maior que a memria associada varivel e definir a sequncia de passos a ser seguida pelo programa em caso de estouro de buffer. Existem duas categorias principais de estouro de buffer: estouro de pilha e estouro de heap. So trs os passos principais no processo de estouro de buffer tradicional: o hacker busca por uma chance de estourar o buffer, identifica a memria associada varivel e especifica a ela um valor maior que sua capacidade mxima. Dois mtodos menos tradicionais usados para causar condies de estouro de buffer so a codificao conjunto-de-caracteres e a compresso nybble-to-byte. Para que as funes e as variveis que podem levar a um estouro de buffer sejam adequadamente identificadas, deve-se checar a reao da aplicao sempre que um grande conjunto de dados de caracteres for fornecido a qualquer varivel. Se uma explorao de estouro de buffer for detectada, a probabilidade de a mesma vulnerabilidade existir tambm em outras aplicaes do mesmo fornecedor bastante alta. possvel prevenir um estouro de buffer programando funes a fim de que estas executem uma verificao de validade da entrada, fornecendo um terminador NULL depois de aceitos os valores ou usando preferencialmente funes que no sejam to suscetveis a condies de estouro de buffer. Questes de reviso 1. Uma funo na linguagem de programao C limita automaticamente entradas maiores que o buffer de memria? 2. Um terminador NULL previne o estouro de buffer? 3. Que tipo de variveis armazenado em uma pilha? 4. Para que usado um heap? 5. Na execuo de uma explorao de estouro de buffer, o hacker precisa ter uma relao de confiana com o PC alvo do ataque? 6. Que caractere decodificado pela sequncia &# 162? 7. A mensagem de erro "A segmentation fault has occurred" se refere a qu? 8. Como um hacker desmonta a validao do lado do cliente em um formulrio da web? 9. UNIX foi escrito em Java e reescrito posteriormente em C, o que causou muitos problemas de estouro de buffer. Verdadeiro ou falso? 10. Bugs normalmente so resolvidos por meio da programao de funes que executem uma verificao de validade da entrada. Verdadeiro ou falso? 11. As variveis do usurio so armazenadas em pilhas. Verdadeiro ou falso? Projeto prtico ESTOURO DE BUFFER CAPTULO 12 12. Variveis elsticas usadas por mais de uma funo so armazenadas em heaps. Verdadeiro ou falso? 13. Pilhas no podem ser automaticamente aumentadas ou diminudas. Verdadeiro ou falso? 14. Heaps so incrementados automtica e manualmente usando os comandos malloc () e brk (). Verdadeiro ou falso? 15. Voc pode deletar heaps e pilhas ao executar a limpeza de disco. Verdadeiro ou falso? 16. A validao executada no lado do cliente diminui a velocidade de processamento do servidor. Verdadeiro ou falso? As seguintes funes so inseguras e sujeitas a estouros de buffer. Relacione- as lista de funes seguras abaixo. a. strcpy( ) h. gets( ) c. sprintf( ) d. strcat( ) 17. fgets ( ) 18. strncpy ( ) 19. strncat ( ) 20. snprintf ( ) Como a explorao mais famosa na web, o estouro de buffer pode ser a mais difcil de evitar. Por se tratar de uma vulnerabilidade construda no interior de vrias linguagens de programao, incluindo a linguagem C, corrigir o problema de forma global simplesmente impossvel. A linguagem C a base do UNIX, do Linux e do Windows, tendo sido empregada para criar a maioria dos servios que usamos hoje; assim, s o fato de o estouro de buffer ser uma vulnerabilidade inerente a essa linguagem mostra que ele afeta muitos tipos diferentes de sistemas ao redor do mundo. SEGURANA DE COMPUTADORES E TESTE DE INVASO PROJETO 12.1 1. Fornea as informaes que faltam na Tabela 12.4. Na coluna do meio, explique o propsito de cada uma das funes vulnerveis listadas esquerda. Na coluna da direita, identifique as alternativas seguras a essas funes vulnerveis. Todas